mirror of
https://gitee.com/dromara/sa-token.git
synced 2025-09-20 02:29:27 +08:00
Merge pull request #606 from CuiGeekYoung/dev
兼容请求/oauth2/token接口时Basic中携带clientId和clientSecret的场景
This commit is contained in:
@@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package cn.dev33.satoken.oauth2.logic;
|
package cn.dev33.satoken.oauth2.logic;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.basic.SaBasicUtil;
|
||||||
import cn.dev33.satoken.context.SaHolder;
|
import cn.dev33.satoken.context.SaHolder;
|
||||||
import cn.dev33.satoken.context.model.SaRequest;
|
import cn.dev33.satoken.context.model.SaRequest;
|
||||||
import cn.dev33.satoken.context.model.SaResponse;
|
import cn.dev33.satoken.context.model.SaResponse;
|
||||||
@@ -32,6 +33,7 @@ import cn.dev33.satoken.oauth2.model.CodeModel;
|
|||||||
import cn.dev33.satoken.oauth2.model.RequestAuthModel;
|
import cn.dev33.satoken.oauth2.model.RequestAuthModel;
|
||||||
import cn.dev33.satoken.oauth2.model.SaClientModel;
|
import cn.dev33.satoken.oauth2.model.SaClientModel;
|
||||||
import cn.dev33.satoken.stp.StpUtil;
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
|
import cn.dev33.satoken.util.SaFoxUtil;
|
||||||
import cn.dev33.satoken.util.SaResult;
|
import cn.dev33.satoken.util.SaResult;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -177,9 +179,20 @@ public class SaOAuth2Handle {
|
|||||||
*/
|
*/
|
||||||
public static Object token(SaRequest req, SaResponse res, SaOAuth2Config cfg) {
|
public static Object token(SaRequest req, SaResponse res, SaOAuth2Config cfg) {
|
||||||
// 获取参数
|
// 获取参数
|
||||||
|
String authorizationValue = SaBasicUtil.getAuthorizationValue();
|
||||||
|
String clientId;
|
||||||
|
String clientSecret;
|
||||||
|
// gitlab回调token接口时,按照的是标准的oauth2协议的basic请求头,basic中会包含client_id和client_secret的信息
|
||||||
|
if(SaFoxUtil.isEmpty(authorizationValue)){
|
||||||
|
clientId = req.getParamNotNull(Param.client_id);
|
||||||
|
clientSecret = req.getParamNotNull(Param.client_secret);
|
||||||
|
} else {
|
||||||
|
String[] clientIdAndSecret = authorizationValue.split(":");
|
||||||
|
clientId = clientIdAndSecret[0];
|
||||||
|
clientSecret = clientIdAndSecret[1];
|
||||||
|
}
|
||||||
|
|
||||||
String code = req.getParamNotNull(Param.code);
|
String code = req.getParamNotNull(Param.code);
|
||||||
String clientId = req.getParamNotNull(Param.client_id);
|
|
||||||
String clientSecret = req.getParamNotNull(Param.client_secret);
|
|
||||||
String redirectUri = req.getParam(Param.redirect_uri);
|
String redirectUri = req.getParam(Param.redirect_uri);
|
||||||
|
|
||||||
// 校验参数
|
// 校验参数
|
||||||
|
Reference in New Issue
Block a user