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