gpt4 book ai didi

spring - 如何使用 spring 生成没有密码的 oauth token

转载 作者:行者123 更新时间:2023-12-02 08:28:11 25 4
gpt4 key购买 nike

我正在尝试在 Spring Boot 应用程序中为用户创建额外的访问 token 。我不知道他们的密码,但用户已被授权使用该应用程序。据我所知,我需要调用类似的东西

OAuth2AccessToken accessToken = tokenServices.createAccessTokenForUser(authenticationRequest, user);

其中 tokenServices 可能是 DefaultTokenServices 的实例。问题是如何获取对已配置 token 服务的引用?我看到它已连接到 AuthorizationServerEndpointsConfigurer 中,但我无法自动连接它。我正在使用 JWT 进行身份验证,因此确实在寻找一种生成 JWT token 的方法。

正在尝试实现 Spring OAuth2 - Manually creating an access token in the token store 中概述的流程

最佳答案

在我的 spring-security-config.xml 中我有这个:

    <bean id="tokenServices" class="de.hybris.platform.ycommercewebservices.oauth2.token.provider.HybrisOAuthTokenServices">
<property name="tokenStore" ref="tokenStore" />
<property name="supportRefreshToken" value="true" />
<property name="refreshTokenValiditySeconds" value="2592000" />
<!-- 60*60*24*30 = 30d -->
<property name="accessTokenValiditySeconds" value="43200" />
<!-- 60*60*12 = 12h -->
</bean>

我可以在哪里配置我的自定义 token 服务

public class HybrisOAuthTokenServices extends DefaultTokenServices{

@Override
public OAuth2AccessToken createAccessToken(final OAuth2Authentication authentication) throws AuthenticationException{
try{
return super.createAccessToken(authentication);
}catch (final ModelSavingException e) {
//in case when other client was faster in saving access token - try to get token again
return super.createAccessToken(authentication);
}catch (final ModelRemovalException e) {
//in case when other client was faster in removing expired token - try to get token again
return super.createAccessToken(authentication);
}
}

}

关于spring - 如何使用 spring 生成没有密码的 oauth token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32183554/

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