我有一个要求,其中所有调用都需要通过JWT / Filters进行身份验证,但是现在我希望所有具有/ restexternal /的调用都应该绕过jwt身份验证,并且应该使用基本身份验证。是否可以有2个Web安全配置器或其他?我们如何实现这一目标?
我能够从JWT身份验证中排除特定的url,但是如何要求spring进行基本身份验证? TIA
如果将两种身份验证放在一起,将始终将JWT称为基本身份验证。
@SpringBootApplication
public class SpringBootJwtApplication {
@Bean
public FilterRegistrationBean jwtFilter() {
final FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setFilter(new JwtFilter());
registrationBean.addUrlPatterns("/secure/*");
registrationBean.setFilter(new BasicAuth());
registrationBean.addUrlPatterns("/restexternal/*");
return registrationBean;
}
public static void main(String[] args) {
SpringApplication.run(SpringBootJwtApplication.class, args);
}
具有路径Urls
的secure
将被JwtFilter
过滤,restexternal
被BasicAuth
过滤。
您可以针对不同的API地址针对不同的身份验证参考以下内容:spring-multiple-authentication-methods-for-different-api-endpoints