From 9b4433fddf5b401edb0aace8a404ac733b122702 Mon Sep 17 00:00:00 2001
From: 田源 <tianyuan@vci-tech.com>
Date: 星期四, 03 四月 2025 14:35:02 +0800
Subject: [PATCH] 添加非密字段显示

---
 Source/BladeX-Tool/blade-starter-social/src/main/java/org/springblade/core/social/utils/SocialUtil.java |  168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 168 insertions(+), 0 deletions(-)

diff --git a/Source/BladeX-Tool/blade-starter-social/src/main/java/org/springblade/core/social/utils/SocialUtil.java b/Source/BladeX-Tool/blade-starter-social/src/main/java/org/springblade/core/social/utils/SocialUtil.java
new file mode 100644
index 0000000..f1ae83b
--- /dev/null
+++ b/Source/BladeX-Tool/blade-starter-social/src/main/java/org/springblade/core/social/utils/SocialUtil.java
@@ -0,0 +1,168 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 搴勯獮 (smallchill@163.com)
+ */
+package org.springblade.core.social.utils;
+
+import me.zhyd.oauth.cache.AuthStateCache;
+import me.zhyd.oauth.config.AuthConfig;
+import me.zhyd.oauth.config.AuthDefaultSource;
+import me.zhyd.oauth.exception.AuthException;
+import me.zhyd.oauth.request.*;
+import org.springblade.core.social.props.SocialProperties;
+import org.springblade.core.tool.utils.SpringUtil;
+
+import java.util.Objects;
+
+/**
+ * SocialUtil
+ *
+ * @author Chill
+ */
+public class SocialUtil {
+
+	/**
+	 * 鑷畾涔塻tate缂撳瓨
+	 */
+	private static AuthStateCache authStateCache;
+
+	public static AuthStateCache getAuthStateCache() {
+		if (authStateCache == null) {
+			authStateCache = SpringUtil.getBean(AuthStateCache.class);
+		}
+		return authStateCache;
+	}
+
+	/**
+	 * 鏍规嵁鍏蜂綋鐨勬巿鏉冩潵婧愶紝鑾峰彇鎺堟潈璇锋眰宸ュ叿绫�
+	 *
+	 * @param source 鎺堟潈鏉ユ簮
+	 * @return AuthRequest
+	 */
+	public static AuthRequest getAuthRequest(String source, SocialProperties socialProperties) {
+		AuthDefaultSource authSource = Objects.requireNonNull(AuthDefaultSource.valueOf(source.toUpperCase()));
+		AuthConfig authConfig = socialProperties.getOauth().get(authSource);
+		if (authConfig == null) {
+			throw new AuthException("鏈幏鍙栧埌鏈夋晥鐨凙uth閰嶇疆");
+		}
+		AuthRequest authRequest = null;
+		switch (authSource) {
+			case GITHUB:
+				authRequest = new AuthGithubRequest(authConfig, getAuthStateCache());
+				break;
+			case GITEE:
+				authRequest = new AuthGiteeRequest(authConfig, getAuthStateCache());
+				break;
+			case OSCHINA:
+				authRequest = new AuthOschinaRequest(authConfig, getAuthStateCache());
+				break;
+			case QQ:
+				authRequest = new AuthQqRequest(authConfig, getAuthStateCache());
+				break;
+			case WECHAT_OPEN:
+				authRequest = new AuthWeChatOpenRequest(authConfig, getAuthStateCache());
+				break;
+			case WECHAT_ENTERPRISE:
+				authRequest = new AuthWeChatEnterpriseQrcodeRequest(authConfig, getAuthStateCache());
+				break;
+			case WECHAT_ENTERPRISE_WEB:
+				authRequest = new AuthWeChatEnterpriseWebRequest(authConfig, getAuthStateCache());
+				break;
+			case WECHAT_MP:
+				authRequest = new AuthWeChatMpRequest(authConfig, getAuthStateCache());
+				break;
+			case DINGTALK:
+				authRequest = new AuthDingTalkRequest(authConfig, getAuthStateCache());
+				break;
+			case ALIPAY:
+				// 鏀粯瀹濆湪鍒涘缓鍥炶皟鍦板潃鏃讹紝涓嶅厑璁镐娇鐢╨ocalhost鎴栬��127.0.0.1锛屾墍浠ヨ繖鍎跨殑鍥炶皟鍦板潃浣跨敤鐨勫眬鍩熺綉鍐呯殑ip
+				authRequest = new AuthAlipayRequest(authConfig, getAuthStateCache());
+				break;
+			case BAIDU:
+				authRequest = new AuthBaiduRequest(authConfig, getAuthStateCache());
+				break;
+			case WEIBO:
+				authRequest = new AuthWeiboRequest(authConfig, getAuthStateCache());
+				break;
+			case CODING:
+				authRequest = new AuthCodingRequest(authConfig, getAuthStateCache());
+				break;
+			case CSDN:
+				authRequest = new AuthCsdnRequest(authConfig, getAuthStateCache());
+				break;
+			case TAOBAO:
+				authRequest = new AuthTaobaoRequest(authConfig, getAuthStateCache());
+				break;
+			case GOOGLE:
+				authRequest = new AuthGoogleRequest(authConfig, getAuthStateCache());
+				break;
+			case FACEBOOK:
+				authRequest = new AuthFacebookRequest(authConfig, getAuthStateCache());
+				break;
+			case DOUYIN:
+				authRequest = new AuthDouyinRequest(authConfig, getAuthStateCache());
+				break;
+			case LINKEDIN:
+				authRequest = new AuthLinkedinRequest(authConfig, getAuthStateCache());
+				break;
+			case MICROSOFT:
+				authRequest = new AuthMicrosoftRequest(authConfig, getAuthStateCache());
+				break;
+			case MI:
+				authRequest = new AuthMiRequest(authConfig, getAuthStateCache());
+				break;
+			case TOUTIAO:
+				authRequest = new AuthToutiaoRequest(authConfig, getAuthStateCache());
+				break;
+			case TEAMBITION:
+				authRequest = new AuthTeambitionRequest(authConfig, getAuthStateCache());
+				break;
+			case PINTEREST:
+				authRequest = new AuthPinterestRequest(authConfig, getAuthStateCache());
+				break;
+			case RENREN:
+				authRequest = new AuthRenrenRequest(authConfig, getAuthStateCache());
+				break;
+			case STACK_OVERFLOW:
+				authRequest = new AuthStackOverflowRequest(authConfig, getAuthStateCache());
+				break;
+			case HUAWEI:
+				authRequest = new AuthHuaweiRequest(authConfig, getAuthStateCache());
+				break;
+			case KUJIALE:
+				authRequest = new AuthKujialeRequest(authConfig, getAuthStateCache());
+				break;
+			case GITLAB:
+				authRequest = new AuthGitlabRequest(authConfig, getAuthStateCache());
+				break;
+			case MEITUAN:
+				authRequest = new AuthMeituanRequest(authConfig, getAuthStateCache());
+				break;
+			case ELEME:
+				authRequest = new AuthElemeRequest(authConfig, getAuthStateCache());
+				break;
+			case TWITTER:
+				authRequest = new AuthTwitterRequest(authConfig, getAuthStateCache());
+				break;
+			default:
+				break;
+		}
+		if (null == authRequest) {
+			throw new AuthException("鏈幏鍙栧埌鏈夋晥鐨凙uth閰嶇疆");
+		}
+		return authRequest;
+	}
+
+}

--
Gitblit v1.9.3