1
0
mirror of synced 2026-05-22 14:43:15 +00:00

!346 修改ClientIdSecretModel的读取构建逻辑

Merge pull request !346 from ziy001/dev
This commit is contained in:
刘潇
2026-02-28 22:39:02 +00:00
committed by Gitee
@@ -51,14 +51,22 @@ public class SaOAuth2DataResolverDefaultImpl implements SaOAuth2DataResolver {
@Override @Override
public ClientIdAndSecretModel readClientIdAndSecret(SaRequest request) { public ClientIdAndSecretModel readClientIdAndSecret(SaRequest request) {
// 优先从请求参数中获取 // 优先从请求参数中获取
String clientId = request.getParam(Param.client_id); String clientId = request.getParam(SaOAuth2Consts.Param.client_id);
String clientSecret = request.getParam(Param.client_secret); String clientSecret = request.getParam(SaOAuth2Consts.Param.client_secret);
String authorizationValue = SaHttpBasicUtil.getAuthorizationValue();
if(SaFoxUtil.isNotEmpty(clientId)) { if(SaFoxUtil.isNotEmpty(clientId)) {
// 如果请求参数中没有提供 client_secret 参数,则尝试从 Authorization 中获取
// 防止请求参数只存在client_id,而client_secret只存在Authorization中的场景导致的获取client_secret失败
if (SaFoxUtil.isEmpty(clientSecret) && SaFoxUtil.isNotEmpty(authorizationValue)) {
int index = authorizationValue.indexOf(StrUtil.COLON);
if (index >= 0) {
clientSecret = authorizationValue.substring(index + 1);
}
}
return new ClientIdAndSecretModel(clientId, clientSecret); return new ClientIdAndSecretModel(clientId, clientSecret);
} }
// 如果请求参数中没有提供 client_id 参数,则尝试从 Authorization 中获取 // 如果请求参数中没有提供 client_id 参数,则尝试从 Authorization 中获取
String authorizationValue = SaHttpBasicUtil.getAuthorizationValue();
if(SaFoxUtil.isNotEmpty(authorizationValue)) { if(SaFoxUtil.isNotEmpty(authorizationValue)) {
String[] arr = authorizationValue.split(":"); String[] arr = authorizationValue.split(":");
clientId = arr[0]; clientId = arr[0];