我们如何在同一个 spring 应用程序中同时添加 JWT 和基本身份验证?
How can we add JWT and basic authentication simultaneously in same spring application?
我有一个要求,所有调用都使用 JWT/Filters 进行身份验证,但现在我希望所有具有 /retextternal/ 的调用都应该绕过 jwt 身份验证并且应该使用基本身份验证。是否有可能有 2 个网络安全配置器或其他东西?我们如何才能做到这一点?
我可以从 JWT 身份验证中排除特定的 url,但我如何才能要求 spring 进行基本身份验证? TIA
Spring 安全也支持多重认证。可以参考here
不同的API地址可以参考这个进行不同的认证:
是的,您的应用程序中可以有多个过滤器。
@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);
}
其中具有路径 secure
的 Urls
将被 JwtFilter
过滤,restexternal
将被 BasicAuth
过滤。
我们不能同时进行。我有一个场景,我必须对我的一个项目使用基本身份验证,对另一个项目使用 JWT,并且两个包都在具有不同端点的单个项目中。
如果将两种身份验证放在一起,JWT 将始终被称为基本身份验证。
我有一个要求,所有调用都使用 JWT/Filters 进行身份验证,但现在我希望所有具有 /retextternal/ 的调用都应该绕过 jwt 身份验证并且应该使用基本身份验证。是否有可能有 2 个网络安全配置器或其他东西?我们如何才能做到这一点?
我可以从 JWT 身份验证中排除特定的 url,但我如何才能要求 spring 进行基本身份验证? TIA
Spring 安全也支持多重认证。可以参考here
不同的API地址可以参考这个进行不同的认证:
是的,您的应用程序中可以有多个过滤器。
@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);
}
其中具有路径 secure
的 Urls
将被 JwtFilter
过滤,restexternal
将被 BasicAuth
过滤。
我们不能同时进行。我有一个场景,我必须对我的一个项目使用基本身份验证,对另一个项目使用 JWT,并且两个包都在具有不同端点的单个项目中。
如果将两种身份验证放在一起,JWT 将始终被称为基本身份验证。