【发布时间】:2018-07-14 23:33:56
【问题描述】:
出于某种原因,我的团队使用 Spring XML 配置而不是 Java 配置。当我实现一个新的CorsFilter 时,我用谷歌搜索并找到了示例 Java Config,如下所示:
@Component
public class CorsFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(final HttpServletRequest request,
final HttpServletResponse response,
final FilterChain filterChain) throws ServletException, IOException {
response.addHeader("Access-Control-Allow-Origin", "*");
response
.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT, PATCH, HEAD, OPTIONS");
response.addHeader("Access-Control-Allow-Headers",
"Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");
response.addHeader("Access-Control-Expose-Headers",
"Access-Control-Allow-Origin, Access-Control-Allow-Credentials");
response.addHeader("Access-Control-Allow-Credentials", "true");
response.addIntHeader("Access-Control-Max-Age", 10);
filterChain.doFilter(request, response);
}
}
但是如何转换成等效的 Spring XML 配置呢?我知道我们可以创建一个名为corsFilter 的bean 并设置一些属性值。但是如何在 XML 配置中覆盖父方法并执行带有副作用的操作呢? (如在上面添加标题)
【问题讨论】: