【发布时间】:2019-10-10 23:12:51
【问题描述】:
我有基于 Spring Boot 2 的安全网关执行 OAuth2 身份验证,位于 GUI 应用程序和后端之前。 它的配置类似于
@Configuration
@EnableOAuth2Client
@EnableWebSecurity
public class SecurityGatewayConfig extends WebSecurityConfigurerAdapter{
@Bean
public SecurityGatewayAuthenticationFilter filter() {
return new SecurityGatewayAuthenticationFilter("/login");
}
@Override
public void configure(HttpSecurity http) {
http
.addFilterAfter(new OAuth2ClientContextFilter(), AbstractPreAuthenticatedProcessingFilter.class)
.addFilterAfter(filter(), OAuth2ClientContextFilter.class)
.httpBasic().authenticationEntryPoint(new LoginUrlAuthenticationEntryPoint("/login"))
.and()
...
它将请求重定向到 /login 和 SecurityGatewayAuthenticationFilter 对外部 OAuth2 提供者执行身份验证。
这对 GIU 应用程序很好。但是,在访问后端服务时(它们在路径中有 /api/)我需要不同的行为:如果请求未经过身份验证,则不要重定向,而是立即返回 401 错误。
任何想法,如何为此配置 Spring Security?
【问题讨论】:
标签: spring spring-security spring-security-oauth2