!346 修改ClientIdSecretModel的读取构建逻辑
Merge pull request !346 from ziy001/dev
This commit is contained in:
+11
-3
@@ -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];
|
||||||
|
|||||||
Reference in New Issue
Block a user