I have SpringBootApplication
:
@ServletComponentScan
@SpringBootApplication
public class ExampleApplication extends SpringBootServletInitializer {
Properties file contains:
server.contextPath=/example
And filter:
@WebFilter(urlPatterns = { "/example/*" })
public class AuthorizationFilter implements Filter {
When I execute REST method GET /example/test
:
@RestController
public class ExampleController {
@GetMapping("/test")
public String getTest(){
WebFilter
does not catch it.
But if I change to:
@WebFilter(urlPatterns = { "/*" })
public class AuthorizationFilter implements Filter {
WebFilter catches all requests.
If I add @Component
:
@Component
@WebFilter(urlPatterns = { "/example/*" })
public class AuthorizationFilter implements Filter {
During startup I get:
st-startStop-38] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'authorizationFilter' to: [/*]
Why does it happen? How to filter by specific (context) path?