我正在从事springboot项目,我们正在使用openId密钥斗篷进行身份验证。我也很喜欢Multitenancy概念。我想发送自定义标头作为请求或响应,并且应该在APM中将其作为元数据捕获。我当前的方法如下:
public class PreAuthFilter extends KeycloakPreAuthActionsFilter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
((HttpServletResponse) response).addHeader("X-Realm",realm);
super.doFilter(request, response, chain);
}
http.response.headers.X-Realm.0
http.response.headers.X-Realm.1
http.response.headers.X-Realm.2
http.response.headers.X-Realm = "value"
我认为SimpleHttpFacade在解决部署多次过程中被初始化,因此增加了响应。
需要建议
感谢
看来这可能是问题更可能与您的应用程序上下文弹簧和过滤器有关。
由于是春天,你可以尝试OncePerRequestFilter
吗?
import org.springframework.web.filter.OncePerRequestFilter;
@Named
public class ApmFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
// do apm things
filterChain.doFilter(request, response);
}
@Override
public void destroy() {
}
}