@@ -8,6 +8,7 @@ import me.zhyd.oauth.model.AuthResponse;
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				import   me.zhyd.oauth.model.AuthUser ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				import   me.zhyd.oauth.request.* ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				import   org.dromara.common.core.domain.model.LoginBody ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				import   org.dromara.common.core.utils.SpringUtils ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				import   org.dromara.common.social.config.properties.SocialLoginConfigProperties ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				import   org.dromara.common.social.config.properties.SocialProperties ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
	
		
			
				
					
					
						
					 
				
			
			 
			 
			
				@@ -18,6 +19,8 @@ import org.dromara.common.social.config.properties.SocialProperties;
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				 */ 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				public   class  SocialUtils    { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     private   static   final   AuthRedisStateCache   STATE_CACHE   =   SpringUtils . getBean ( AuthRedisStateCache . class ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     @SuppressWarnings ( " unchecked " ) 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     public   static   AuthResponse < AuthUser >   loginAuth ( LoginBody   loginBody ,   SocialProperties   socialProperties )   throws   AuthException   { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				         AuthRequest   authRequest   =   getAuthRequest ( loginBody . getSource ( ) ,   socialProperties ) ; 
 
			
		 
		
	
	
		
			
				
					
					
						
					 
				
			
			 
			 
			
				@@ -36,28 +39,28 @@ public class SocialUtils  {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				         String   clientSecret   =   obj . getClientSecret ( ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				         String   redirectUri   =   obj . getRedirectUri ( ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				         return   switch   ( source . toLowerCase ( ) )   { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " dingtalk "   - >   new   AuthDingTalkRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " baidu "   - >   new   AuthBaiduRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " github "   - >   new   AuthGithubRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " gitee "   - >   new   AuthGiteeRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " weibo "   - >   new   AuthWeiboRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " coding "   - >   new   AuthCodingRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " oschina "   - >   new   AuthOschinaRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " dingtalk "   - >   new   AuthDingTalkRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ,   STATE_CACHE  ); 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " baidu "   - >   new   AuthBaiduRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ,   STATE_CACHE  ); 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " github "   - >   new   AuthGithubRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ,   STATE_CACHE  ); 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " gitee "   - >   new   AuthGiteeRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ,   STATE_CACHE  ); 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " weibo "   - >   new   AuthWeiboRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ,   STATE_CACHE  ); 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " coding "   - >   new   AuthCodingRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ,   STATE_CACHE  ); 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " oschina "   - >   new   AuthOschinaRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ,   STATE_CACHE  ); 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             // 支付宝在创建回调地址时,  不允许使用localhost或者127.0.0.1,  所以这儿的回调地址使用的局域网内的ip 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " alipay "   - >   new   AuthAlipayRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ,   socialProperties . getType ( ) . get ( " alipay " ) . getAlipayPublicKey ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " qq "   - >   new   AuthQqRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " wechat_open "   - >   new   AuthWeChatOpenRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " taobao "   - >   new   AuthTaobaoRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " douyin "   - >   new   AuthDouyinRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " linkedin "   - >   new   AuthLinkedinRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " microsoft "   - >   new   AuthMicrosoftRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " renren "   - >   new   AuthRenrenRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " stack_overflow "   - >   new   AuthStackOverflowRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . stackOverflowKey ( " " ) . build ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " huawei "   - >   new   AuthHuaweiRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " wechat_enterprise "   - >   new   AuthWeChatEnterpriseQrcodeRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . agentId ( " " ) . build ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " gitlab "   - >   new   AuthGitlabRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " wechat_mp "   - >   new   AuthWeChatMpRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " aliyun "   - >   new   AuthAliyunRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " alipay "   - >   new   AuthAlipayRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ,   socialProperties . getType ( ) . get ( " alipay " ) . getAlipayPublicKey ( ) ,   STATE_CACHE  ); 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " qq "   - >   new   AuthQqRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ,   STATE_CACHE  ); 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " wechat_open "   - >   new   AuthWeChatOpenRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ,   STATE_CACHE  ); 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " taobao "   - >   new   AuthTaobaoRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ,   STATE_CACHE  ); 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " douyin "   - >   new   AuthDouyinRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ,   STATE_CACHE  ); 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " linkedin "   - >   new   AuthLinkedinRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ,   STATE_CACHE  ); 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " microsoft "   - >   new   AuthMicrosoftRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ,   STATE_CACHE  ); 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " renren "   - >   new   AuthRenrenRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ,   STATE_CACHE  ); 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " stack_overflow "   - >   new   AuthStackOverflowRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . stackOverflowKey ( " " ) . build ( ) ,   STATE_CACHE  ); 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " huawei "   - >   new   AuthHuaweiRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ,   STATE_CACHE  ); 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " wechat_enterprise "   - >   new   AuthWeChatEnterpriseQrcodeRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . agentId ( " " ) . build ( ) ,   STATE_CACHE  ); 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " gitlab "   - >   new   AuthGitlabRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ,   STATE_CACHE  ); 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " wechat_mp "   - >   new   AuthWeChatMpRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ,   STATE_CACHE  ); 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             case   " aliyun "   - >   new   AuthAliyunRequest ( AuthConfig . builder ( ) . clientId ( clientId ) . clientSecret ( clientSecret ) . redirectUri ( redirectUri ) . build ( ) ,   STATE_CACHE  ); 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             default   - >   throw   new   AuthException ( " 未获取到有效的Auth配置 " ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				         } ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     }