gpt4 book ai didi

java - 如何在spring security oauth2中分离访问 token 和刷新 token 端点

转载 作者:行者123 更新时间:2023-12-03 23:19:35 24 4
gpt4 key购买 nike

在spring security oauth2中,获取访问 token 和刷新 token 使用相同的端点'/oauth/token',并通过参数识别授予类型 “代码”或“刷新 token ”。

        if (isAuthCodeRequest(parameters)) {
// The scope was requested or determined during the authorization step
if (!tokenRequest.getScope().isEmpty()) {
logger.debug("Clearing scope of incoming token request");
tokenRequest.setScope(Collections.<String> emptySet());
}
}

if (isRefreshTokenRequest(parameters)) {
// A refresh token has its own default scopes, so we should ignore any added by the factory here.
tokenRequest.setScope(OAuth2Utils.parseParameterList(parameters.get(OAuth2Utils.SCOPE)));
}


但我想将此端点分成两部分,例如用于获取访问 token 的“oauth/access_token”和用于刷新访问 token 的“oauth/refresh_token”。我该怎么做 ?

我尝试编写自定义端点类,并注册 bean 以覆盖默认的 TokenEndpoint ,但似乎效果不佳。

最佳答案

您可以为访问 token 和刷新 token 创建两个休息 Controller 方法,并使用休息模板在相关 Controller 方法内对 oauth/token 端点进行标准调用。

@RestController
public class TokenController {

@RequestMapping("oauth/access_token")
public TokenResponse getAccessToken() {
//use rest template or httpclient to call to oauth/token and return converted TokenResponse
}

@RequestMapping("oauth/refresh_token")
public TokenResponse getRefreshToken() {
//use rest template or httpclient to call to oauth/token and return converted TokenResponse
}
}

关于java - 如何在spring security oauth2中分离访问 token 和刷新 token 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59539141/

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