Piy*_*ari 6 spring spring-mvc filter spring-boot spring-restcontroller
我想在我的 Spring Boot Rest API 项目上实现过滤器,但是我的过滤器没有被调用。我为此添加了以下实现。
public class AutorizationFilter implements Filter{
Logger log = LoggerFactory.getLogger(AutorizationFilter.class);
@Override
public void init(FilterConfig filterConfig) throws ServletException {
log.info("**** Start ****");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
log.info("**** doFilter ****");
chain.doFilter(request, response);
}
@Override
public void destroy() {
log.info("**** end ****");
}}
Run Code Online (Sandbox Code Playgroud)
init和destroy方法正在工作,但doFilter方法未调用。
@Configuration
public class RestApiConfig {
@Bean
public FilterRegistrationBean<AutorizationFilter> filterRegistrationBean(){
FilterRegistrationBean<AutorizationFilter> registrationBean = new FilterRegistrationBean<>();
registrationBean.setFilter(new AutorizationFilter());
registrationBean.addUrlPatterns("/**");
return registrationBean;
}}
Run Code Online (Sandbox Code Playgroud)
我的控制器如下:
@RestController
@RequestMapping("/home")
public class HomeController {
@RequestMapping(value="/hello",method=RequestMethod.GET)
public ResponseEntity<Object> hello() {
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("data","called home controller");
return new ResponseEntity<>(resultMap,HttpStatus.OK);
}
}
Run Code Online (Sandbox Code Playgroud)
任何人请帮助我为什么dofilter方法不起作用。
最后我找到了解决方案,我需要替换registrationBean.addUrlPatterns("/**")它registrationBean.addUrlPatterns("/*"),它对我来说工作得很好。
| 归档时间: |
|
| 查看次数: |
6910 次 |
| 最近记录: |