Spring Filter添加到特定的RestController

问题描述 投票:0回答:1

我有一个@RestController,我想添加一个Spring Filter,在处理请求之前添加一个检查,扩展OncePerRequestFilter

此外,我不想将它添加到所有控制器,我最后的办法是将它添加到特定路径上的一般WebApplicationInitializeronStartup

public void onStartup(ServletContext container) throws ServletException {
    FilterRegistration corsFilterReg = servletContext.addFilter("CorsFilter", CorsFilter.class);
   corsFilterReg.addMappingForUrlPatterns(null, false, "/servlet/cors/*");

有没有其他方法将Spring Filter连接到特定的Spring RestController?

在Spring REST中使用过滤器拦截器是错误的吗?

过滤器应仅连接到URL吗?

java spring servlet-filters spring-restcontroller spring-filter
1个回答
1
投票

你可以使用@WebFilter annotation

例:

@WebFilter(filterName = "Filter", urlPatterns = { "/filter/*" })
public class WebFilter implements Filter {
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
         .......
    }

   .......
  }
© www.soinside.com 2019 - 2024. All rights reserved.