Piyush Chaudhari
Piyush Chaudhari

Reputation: 1012

Spring Boot Rest API filter not invoked

I want to implement filter on my Spring Boot Rest API project but some how my filter not invoked. I have added below implementation for that.

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 ****");
}}

init and destroy method are working but doFilter method not invoke.

@Configuration
public class RestApiConfig {
@Bean
public FilterRegistrationBean<AutorizationFilter> filterRegistrationBean(){
    FilterRegistrationBean<AutorizationFilter> registrationBean = new FilterRegistrationBean<>();
    registrationBean.setFilter(new AutorizationFilter());
    registrationBean.addUrlPatterns("/**");
    return registrationBean;    
}}

My controller is as below:

@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);
 }
}

Any one please help me why dofilter method is not working.

Upvotes: 6

Views: 7866

Answers (1)

1615903
1615903

Reputation: 34733

finally i found the solution, I need to replace registrationBean.addUrlPatterns("/**") with registrationBean.addUrlPatterns("/*") and it's working fine for me.

Upvotes: 5

Related Questions