How to register a filter bean of same type on second time in spring boot FilterRegistrationBean?
I have a scenario, where I need to register a same type of filter bean twice for different url patterns. Say IAMFilterBean1 of type IAMFilterBean was built with one auth key for internal user identifications. And IAMFilterBean2 of same type IAMFilterBean was built with different auth key for external user identifications. Now I need to register both these IAMFilterBean1 and IAMFilterBean2 with spring boot FilterRegistrationBean for filtering different url patterns!
I tried like below,
@Bean
public Filter iamFilterBean1() {
return new IamFilterBean("auth_key_1");
}
@Bean
public Filter iamFilterBean2() {
return new IamFilterBean("auth_key_2");
}
@Bean
public FilterRegistrationBean filterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(iamFilterBean1());
registration.setName("iamFilterBean1");
List<String> urlPatterns = new ArrayList<>();
urlPatterns.add("/api/internal/auth");
registration.setUrlPatterns(urlPatterns);
return registration;
}
@Bean
public FilterRegistrationBean filterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(iamFilterBean2());
registration.setName("iamFilterBean2");
List<String> urlPatterns = new ArrayList<>();
urlPatterns.add("/api/external/auth");
registration.setUrlPatterns(urlPatterns);
return registration;
}
But it doesn't work for me! it filters all my requests not only the defined ones? Can you please help me on resolving this.
To register two filters of one type you will need to name them (or name at least one):
@Bean(name="filterRegistrationBean2")
public FilterRegistrationBean filterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(iamFilterBean2());
registration.setName("iamFilterBean2");
List<String> urlPatterns = new ArrayList<>();
urlPatterns.add("/api/external/auth");
registration.setUrlPatterns(urlPatterns);
return registration;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With