gpt4 book ai didi

Spring OAuth 过滤器链和 Java 配置

转载 作者:行者123 更新时间:2023-12-04 13:59:57 27 4
gpt4 key购买 nike

我正在尝试将 spring-security-oauth 添加到具有 spring-security 的现有应用程序中。我正在使用Java配置。

我有一个现有的修改过滤器链(添加了一些自定义过滤器),但对“/oauth/token”的请求没有使用它,而是使用“默认”过滤器链。我如何才能访问保护 oauth 端点的过滤器链,以便我也可以在那里使用自定义过滤器,或者我可以将 OAuth 端点连接到现有设置中?

最佳答案

使用界面AuthorizationServerConfigurer确实有一种更流畅的方式.
你可以坚持注解 @EnableAuthorizationServer并在您的配置文件中实现上述接口(interface)。这将使您能够通过执行以下操作来更改 oauth2-filter-chain:

@Configuration
@EnableWebSecurity
@EnableAuthorizationServer
public class SecurityConfig extends WebSecurityConfigurerAdapter
implements AuthorizationServerConfigurer
// some configuration ...

public void configure(AuthorizationServerSecurityConfigurer oauthSecurity) throws Exception {
oauthSecurity.addTokenEndpointAuthenticationFilter(new YourFilter());
}

// more configuration ...
}

addFilterXYX 相比- HttpSecurity 的方法您在这里没有细粒度的影响,过滤器将在过滤器链中的位置。 addTokenEndpointAuthenticationFilter 添加的任何过滤器将插入到 BasicAuthenticationFilter 之前.

如果您需要以更详细的方式控制过滤器的位置,您可以创建一个扩展 AuthorizationServerConfigurerAdapter 的 bean。而不是使用注解 @EnableAuthorizationServer .我没有尝试过,但我想你可以扩展 AuthorizationServerSecurityConfiguration就像 systemfreund 建议的那样,无需指定 @Order(-1)因为只有您的自定义配置会被导入。可能您还必须 @Import AuthorizationServerEndpointsConfiguration就像在便利注释 @EnableAuthorizationServer 中所做的那样.

关于Spring OAuth 过滤器链和 Java 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31949878/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com