我们如何在同一spring应用程序中同时添加JWT和基本身份验证?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我们如何在同一spring应用程序中同时添加JWT和基本身份验证?相关的知识,希望对你有一定的参考价值。
我有一个要求,其中所有调用都需要通过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
以上是关于我们如何在同一spring应用程序中同时添加JWT和基本身份验证?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法在同一个项目中同时使用 auth0-spring-security-api 和 java-jwt?
如何在使用 Spring Boot 的 JWT 令牌时禁用同一用户帐户的多个登录
如何在 Spring 中使用 OAuth2 和 JWT 令牌代表特定用户调用受保护的资源?
如何使用 Webflux 在 Spring API 处理程序方法中访问 JWT 声明?