!618 update 适配 TOPAIM 2.0 单点登录

Merge pull request !618 from 马铃薯头/dev
This commit is contained in:
疯狂的狮子Li 2024-12-16 11:27:49 +00:00 committed by Gitee
commit 60af92ed2d
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
2 changed files with 15 additions and 2 deletions

View File

@ -200,7 +200,7 @@ justauth:
redirect-uri: ${justauth.address}/social-callback?source=maxkey redirect-uri: ${justauth.address}/social-callback?source=maxkey
topiam: topiam:
# topiam 服务器地址 # topiam 服务器地址
server-url: http://127.0.0.1:1989/api/v1/authorize/y0q************spq***********8ol server-url: http://127.0.0.1:1898/api/v1/authorize/y0q************spq***********8ol
client-id: 449c4*********937************759 client-id: 449c4*********937************759
client-secret: ac7***********1e0************28d client-secret: ac7***********1e0************28d
redirect-uri: ${justauth.address}/social-callback?source=topiam redirect-uri: ${justauth.address}/social-callback?source=topiam

View File

@ -1,7 +1,10 @@
package org.dromara.common.social.topiam; package org.dromara.common.social.topiam;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.lang.Dict; import cn.hutool.core.lang.Dict;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import com.xkcoding.http.support.HttpHeader; import com.xkcoding.http.support.HttpHeader;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.cache.AuthStateCache;
@ -70,6 +73,16 @@ public class AuthTopIamRequest extends AuthDefaultRequest {
.build(); .build();
} }
@Override
protected String doPostAuthorizationCode(String code) {
HttpRequest request = HttpRequest.post(source.accessToken())
.header("Authorization", "Basic " + Base64.encode("%s:%s".formatted(config.getClientId(), config.getClientSecret())))
.form("grant_type", "authorization_code")
.form("code", code)
.form("redirect_uri", config.getRedirectUri());
HttpResponse response = request.execute();
return response.body();
}
@Override @Override
protected String doGetUserInfo(AuthToken authToken) { protected String doGetUserInfo(AuthToken authToken) {
@ -86,7 +99,7 @@ public class AuthTopIamRequest extends AuthDefaultRequest {
.build(); .build();
} }
public static void checkResponse(Dict object) { private static void checkResponse(Dict object) {
// oauth/token 验证异常 // oauth/token 验证异常
if (object.containsKey("error")) { if (object.containsKey("error")) {
throw new AuthException(object.getStr("error_description")); throw new AuthException(object.getStr("error_description"));