我创建了一个Spring Boot过滤器-使用GenericFilterBean
注释实现@Component
。
@Component
public class MyAuthenticationFilter extends GenericFilterBean {
...
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
...
}
}
该过滤器由Spring Boot Framework自动识别,并且对所有REST API都适用。我希望此过滤器仅应用于特定的URL路径,例如
/api/secure/*
,但找不到正确的方法。我尝试了
@WebFilter
,但没有成功。我没有使用XML配置或servlet初始化程序-只是注释。
使它正常工作的正确方法是什么?
最佳答案
您可以添加这样的过滤器:
@Bean
public FilterRegistrationBean someFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(someFilter());
registration.addUrlPatterns("/url/*");
registration.addInitParameter("paramName", "paramValue");
registration.setName("someFilter");
registration.setOrder(1);
return registration;
}
@Bean(name = "someFilter")
public Filter someFilter() {
return new SomeFilter();
}
关于java - 如何基于URL模式应用Spring Boot过滤器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39710526/