AuthUtils.java 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package org.dromara.common.auth.utils;
  2. import me.zhyd.oauth.cache.AuthStateCache;
  3. import me.zhyd.oauth.config.AuthConfig;
  4. import me.zhyd.oauth.exception.AuthException;
  5. import me.zhyd.oauth.request.*;
  6. /**
  7. * 认证授权工具类
  8. *
  9. * @author ruoyi
  10. */
  11. public class AuthUtils {
  12. public static AuthRequest getAuthRequest(String source, String clientId, String clientSecret, String redirectUri,
  13. AuthStateCache authStateCache)
  14. {
  15. AuthRequest authRequest = null;
  16. switch (source.toLowerCase()) {
  17. case "dingtalk" ->
  18. authRequest = new AuthDingTalkRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  19. .redirectUri(redirectUri).build(), authStateCache);
  20. case "baidu" ->
  21. authRequest = new AuthBaiduRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  22. .redirectUri(redirectUri).build(), authStateCache);
  23. case "github" ->
  24. authRequest = new AuthGithubRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  25. .redirectUri(redirectUri).build(), authStateCache);
  26. case "gitee" ->
  27. authRequest = new AuthGiteeRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  28. .redirectUri(redirectUri).build(), authStateCache);
  29. case "weibo" ->
  30. authRequest = new AuthWeiboRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  31. .redirectUri(redirectUri).build(), authStateCache);
  32. case "coding" ->
  33. authRequest = new AuthCodingRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  34. .redirectUri(redirectUri).codingGroupName("").build(), authStateCache);
  35. case "oschina" ->
  36. authRequest = new AuthOschinaRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  37. .redirectUri(redirectUri).build(), authStateCache);
  38. case "alipay" ->
  39. // 支付宝在创建回调地址时,不允许使用localhost或者127.0.0.1,所以这儿的回调地址使用的局域网内的ip
  40. authRequest = new AuthAlipayRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  41. .alipayPublicKey("").redirectUri(redirectUri).build(), authStateCache);
  42. case "qq" ->
  43. authRequest = new AuthQqRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  44. .redirectUri(redirectUri).build(), authStateCache);
  45. case "wechat_open" -> authRequest = new AuthWeChatOpenRequest(AuthConfig.builder().clientId(clientId)
  46. .clientSecret(clientSecret).redirectUri(redirectUri).build(), authStateCache);
  47. case "csdn" ->
  48. authRequest = new AuthCsdnRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  49. .redirectUri(redirectUri).build(), authStateCache);
  50. case "taobao" ->
  51. authRequest = new AuthTaobaoRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  52. .redirectUri(redirectUri).build(), authStateCache);
  53. case "douyin" ->
  54. authRequest = new AuthDouyinRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  55. .redirectUri(redirectUri).build(), authStateCache);
  56. case "linkedin" ->
  57. authRequest = new AuthLinkedinRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  58. .redirectUri(redirectUri).build(), authStateCache);
  59. case "microsoft" -> authRequest = new AuthMicrosoftRequest(AuthConfig.builder().clientId(clientId)
  60. .clientSecret(clientSecret).redirectUri(redirectUri).build(), authStateCache);
  61. case "mi" ->
  62. authRequest = new AuthMiRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  63. .redirectUri(redirectUri).build(), authStateCache);
  64. case "toutiao" ->
  65. authRequest = new AuthToutiaoRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  66. .redirectUri(redirectUri).build(), authStateCache);
  67. case "teambition" -> authRequest = new AuthTeambitionRequest(AuthConfig.builder().clientId(clientId)
  68. .clientSecret(clientSecret).redirectUri(redirectUri).build(), authStateCache);
  69. case "pinterest" -> authRequest = new AuthPinterestRequest(AuthConfig.builder().clientId(clientId)
  70. .clientSecret(clientSecret).redirectUri(redirectUri).build(), authStateCache);
  71. case "renren" ->
  72. authRequest = new AuthRenrenRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  73. .redirectUri(redirectUri).build(), authStateCache);
  74. case "stack_overflow" -> authRequest = new AuthStackOverflowRequest(AuthConfig.builder().clientId(clientId)
  75. .clientSecret(clientSecret).redirectUri(redirectUri).stackOverflowKey("").build(),
  76. authStateCache);
  77. case "huawei" ->
  78. authRequest = new AuthHuaweiRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  79. .redirectUri(redirectUri).build(), authStateCache);
  80. case "wechat_enterprise" ->
  81. authRequest = new AuthWeChatEnterpriseRequest(AuthConfig.builder().clientId(clientId)
  82. .clientSecret(clientSecret).redirectUri(redirectUri).agentId("").build(), authStateCache);
  83. case "kujiale" ->
  84. authRequest = new AuthKujialeRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  85. .redirectUri(redirectUri).build(), authStateCache);
  86. case "gitlab" ->
  87. authRequest = new AuthGitlabRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  88. .redirectUri(redirectUri).build(), authStateCache);
  89. case "meituan" ->
  90. authRequest = new AuthMeituanRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  91. .redirectUri(redirectUri).build(), authStateCache);
  92. case "eleme" ->
  93. authRequest = new AuthElemeRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  94. .redirectUri(redirectUri).build());
  95. case "wechat_mp" ->
  96. authRequest = new AuthWeChatMpRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  97. .redirectUri(redirectUri).build(), authStateCache);
  98. case "aliyun" ->
  99. authRequest = new AuthAliyunRequest(AuthConfig.builder().clientId(clientId).clientSecret(clientSecret)
  100. .redirectUri(redirectUri).build(), authStateCache);
  101. default -> {
  102. }
  103. }
  104. if (null == authRequest)
  105. {
  106. throw new AuthException("未获取到有效的Auth配置");
  107. }
  108. return authRequest;
  109. }
  110. }