Spring 添加到特定 RestController 的过滤器
Spring Filter added to specific RestController
我有一个 @RestController
,我想给它添加一个 Spring 过滤器,以便在处理扩展 OncePerRequestFilter
的请求之前添加一个检查
我也不想将它添加到所有控制器,我最后的办法是将它添加到 特定路径 [=27] 上的通用 WebApplicationInitializer
的 onStartup
=]:
public void onStartup(ServletContext container) throws ServletException {
FilterRegistration corsFilterReg = servletContext.addFilter("CorsFilter", CorsFilter.class);
corsFilterReg.addMappingForUrlPatterns(null, false, "/servlet/cors/*");
是否有其他方法将 Spring 过滤器连接到特定的 Spring RestController?
在 Spring REST 中使用过滤器拦截器是错误的吗?
过滤器应该只连接到 URL 吗?
您可以使用 @WebFilter annotation
.
示例:
@WebFilter(filterName = "Filter", urlPatterns = { "/filter/*" })
public class WebFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
.......
}
.......
}
我有一个 @RestController
,我想给它添加一个 Spring 过滤器,以便在处理扩展 OncePerRequestFilter
我也不想将它添加到所有控制器,我最后的办法是将它添加到 特定路径 [=27] 上的通用 WebApplicationInitializer
的 onStartup
=]:
public void onStartup(ServletContext container) throws ServletException {
FilterRegistration corsFilterReg = servletContext.addFilter("CorsFilter", CorsFilter.class);
corsFilterReg.addMappingForUrlPatterns(null, false, "/servlet/cors/*");
是否有其他方法将 Spring 过滤器连接到特定的 Spring RestController?
在 Spring REST 中使用过滤器拦截器是错误的吗?
过滤器应该只连接到 URL 吗?
您可以使用 @WebFilter annotation
.
示例:
@WebFilter(filterName = "Filter", urlPatterns = { "/filter/*" })
public class WebFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
.......
}
.......
}