gpt4 book ai didi

java - Spring Security OAuth2 与版本 2.0.+ 中的自定义 TokenGranter

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:31:46 25 4
gpt4 key购买 nike

在以前的 OAuth2 版本中,可以通过将自定义 token 授予者添加到 <authorization-server> 中的 xml 配置中来添加自定义 token 授予者。元素。

我想知道如何使用 AuthorizationServerConfigurerAdapter 使用 Java Config 扩展授权服务器,而不丢失默认配置,其中包含隐式、客户端凭据、刷新 token 和授权代码授权类型。

第一次尝试是使用 @Component 创建 TokenGranter:

@Component("customTokenGranter")
public class CustomTokenGranter {
//implementation
}

这会导致依赖解析异常,因为构建 Granter 所需的 tokenServices 无法 Autowiring 。

第二次尝试使用配置方法

@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception
{
endpoints
.tokenGranter(new CustomTokenGranter(endpoints.getTokenServices(),
endpoints.getClientDetailsService(), endpoints.getOAuth2RequestFactory()));

}

使用这个,默认的授权类型将不会被注册。

我还尝试了较低阶的第二种配置,但没有成功。我还能做些什么来添加我的自定义授权类型?

最佳答案

您还需要添加默认值,例如使用 CompositeTokenGranter:

        List<TokenGranter> tokenGranters = getTokenGranters(); // implementation up to you
tokenGranter = new CompositeTokenGranter(tokenGranters);
endpoints.tokenGranter(tokenGranter);

关于java - Spring Security OAuth2 与版本 2.0.+ 中的自定义 TokenGranter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25264358/

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