¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | * 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 { |
| | | |
| | | /** |
| | | * èªå®ä¹stateç¼å |
| | | */ |
| | | 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("æªè·åå°ææçAuthé
ç½®"); |
| | | } |
| | | 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: |
| | | // æ¯ä»å®å¨å建åè°å°åæ¶ï¼ä¸å
许使ç¨localhostæè
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("æªè·åå°ææçAuthé
ç½®"); |
| | | } |
| | | return authRequest; |
| | | } |
| | | |
| | | } |