From 02f9f833e6b1e725fb5abdd123f6f6cf09ce5399 Mon Sep 17 00:00:00 2001 From: "yadong.zhang" Date: Fri, 6 Sep 2019 22:19:02 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E6=8F=90=E5=8F=96=E5=85=AC?= =?UTF-8?q?=E5=85=B1=E7=9A=84Source=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E8=87=AA=E5=AE=9A=E4=B9=89=E6=89=A9=E5=B1=95=E7=AC=AC?= =?UTF-8?q?=E4=B8=89=E6=96=B9=E5=B9=B3=E5=8F=B0=E7=9A=84=E6=8E=88=E6=9D=83?= =?UTF-8?q?=E7=99=BB=E5=BD=95=EF=BC=8C=E5=85=B7=E4=BD=93=E6=89=A9=E5=B1=95?= =?UTF-8?q?=E4=BE=8B=E5=AD=90=E5=8F=AF=E5=8F=82=E8=80=83AuthExtendRequest?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhyd/oauth/config/AuthDefaultSource.java | 677 +++++++++++++++++ .../java/me/zhyd/oauth/config/AuthSource.java | 693 +----------------- .../zhyd/oauth/enums/AuthResponseStatus.java | 2 +- .../java/me/zhyd/oauth/model/AuthUser.java | 3 +- .../zhyd/oauth/request/AuthAlipayRequest.java | 12 +- .../zhyd/oauth/request/AuthBaiduRequest.java | 8 +- .../zhyd/oauth/request/AuthCodingRequest.java | 8 +- .../zhyd/oauth/request/AuthCsdnRequest.java | 8 +- .../oauth/request/AuthDingTalkRequest.java | 8 +- .../zhyd/oauth/request/AuthDouyinRequest.java | 8 +- .../zhyd/oauth/request/AuthElemeRequest.java | 8 +- .../oauth/request/AuthFacebookRequest.java | 8 +- .../zhyd/oauth/request/AuthGiteeRequest.java | 8 +- .../zhyd/oauth/request/AuthGithubRequest.java | 8 +- .../zhyd/oauth/request/AuthGitlabRequest.java | 8 +- .../zhyd/oauth/request/AuthGoogleRequest.java | 8 +- .../zhyd/oauth/request/AuthHuaweiRequest.java | 8 +- .../oauth/request/AuthKujialeRequest.java | 8 +- .../oauth/request/AuthLinkedinRequest.java | 8 +- .../oauth/request/AuthMeituanRequest.java | 8 +- .../me/zhyd/oauth/request/AuthMiRequest.java | 8 +- .../oauth/request/AuthMicrosoftRequest.java | 8 +- .../oauth/request/AuthOschinaRequest.java | 8 +- .../oauth/request/AuthPinterestRequest.java | 4 +- .../me/zhyd/oauth/request/AuthQqRequest.java | 8 +- .../zhyd/oauth/request/AuthRenrenRequest.java | 4 +- .../request/AuthStackOverflowRequest.java | 4 +- .../zhyd/oauth/request/AuthTaobaoRequest.java | 8 +- .../oauth/request/AuthTeambitionRequest.java | 8 +- .../request/AuthTencentCloudRequest.java | 8 +- .../oauth/request/AuthToutiaoRequest.java | 8 +- .../request/AuthWeChatEnterpriseRequest.java | 8 +- .../zhyd/oauth/request/AuthWeChatRequest.java | 8 +- .../zhyd/oauth/request/AuthWeiboRequest.java | 8 +- .../java/me/zhyd/oauth/utils/AuthChecker.java | 15 +- .../zhyd/oauth/config/AuthExtendSource.java | 63 ++ .../me/zhyd/oauth/model/AuthUserTest.java | 24 + .../zhyd/oauth/request/AuthExtendRequest.java | 105 +++ .../oauth/request/AuthExtendRequestTest.java | 81 ++ .../oauth/{ => request}/AuthRequestTest.java | 2 +- .../me/zhyd/oauth/utils/UrlBuilderTest.java | 4 +- 41 files changed, 1100 insertions(+), 801 deletions(-) create mode 100644 src/main/java/me/zhyd/oauth/config/AuthDefaultSource.java create mode 100644 src/test/java/me/zhyd/oauth/config/AuthExtendSource.java create mode 100644 src/test/java/me/zhyd/oauth/request/AuthExtendRequest.java create mode 100644 src/test/java/me/zhyd/oauth/request/AuthExtendRequestTest.java rename src/test/java/me/zhyd/oauth/{ => request}/AuthRequestTest.java (99%) diff --git a/src/main/java/me/zhyd/oauth/config/AuthDefaultSource.java b/src/main/java/me/zhyd/oauth/config/AuthDefaultSource.java new file mode 100644 index 0000000..9b239e1 --- /dev/null +++ b/src/main/java/me/zhyd/oauth/config/AuthDefaultSource.java @@ -0,0 +1,677 @@ +package me.zhyd.oauth.config; + +import me.zhyd.oauth.enums.AuthResponseStatus; +import me.zhyd.oauth.exception.AuthException; + +/** + * JustAuth内置的各api需要的url, 用枚举类分平台类型管理 + * + * @author yadong.zhang (yadong.zhang0415(a)gmail.com) + * @since 1.0 + */ +public enum AuthDefaultSource implements AuthSource { + /** + * Github + */ + GITHUB { + @Override + public String authorize() { + return "https://github.com/login/oauth/authorize"; + } + + @Override + public String accessToken() { + return "https://github.com/login/oauth/access_token"; + } + + @Override + public String userInfo() { + return "https://api.github.com/user"; + } + }, + /** + * 新浪微博 + */ + WEIBO { + @Override + public String authorize() { + return "https://api.weibo.com/oauth2/authorize"; + } + + @Override + public String accessToken() { + return "https://api.weibo.com/oauth2/access_token"; + } + + @Override + public String userInfo() { + return "https://api.weibo.com/2/users/show.json"; + } + }, + /** + * gitee + */ + GITEE { + @Override + public String authorize() { + return "https://gitee.com/oauth/authorize"; + } + + @Override + public String accessToken() { + return "https://gitee.com/oauth/token"; + } + + @Override + public String userInfo() { + return "https://gitee.com/api/v5/user"; + } + }, + /** + * 钉钉 + */ + DINGTALK { + @Override + public String authorize() { + return "https://oapi.dingtalk.com/connect/qrconnect"; + } + + @Override + public String accessToken() { + throw new AuthException(AuthResponseStatus.UNSUPPORTED); + } + + @Override + public String userInfo() { + return "https://oapi.dingtalk.com/sns/getuserinfo_bycode"; + } + }, + /** + * 百度 + */ + BAIDU { + @Override + public String authorize() { + return "https://openapi.baidu.com/oauth/2.0/authorize"; + } + + @Override + public String accessToken() { + return "https://openapi.baidu.com/oauth/2.0/token"; + } + + @Override + public String userInfo() { + return "https://openapi.baidu.com/rest/2.0/passport/users/getInfo"; + } + + @Override + public String revoke() { + return "https://openapi.baidu.com/rest/2.0/passport/auth/revokeAuthorization"; + } + + @Override + public String refresh() { + return "https://openapi.baidu.com/oauth/2.0/token"; + } + }, + /** + * csdn + */ + CSDN { + @Override + public String authorize() { + return "https://api.csdn.net/oauth2/authorize"; + } + + @Override + public String accessToken() { + return "https://api.csdn.net/oauth2/access_token"; + } + + @Override + public String userInfo() { + return "https://api.csdn.net/user/getinfo"; + } + }, + /** + * Coding + */ + CODING { + @Override + public String authorize() { + return "https://coding.net/oauth_authorize.html"; + } + + @Override + public String accessToken() { + return "https://coding.net/api/oauth/access_token"; + } + + @Override + public String userInfo() { + return "https://coding.net/api/account/current_user"; + } + }, + /** + * 腾讯云开发者平台(coding升级后就变成腾讯云开发者平台了) + */ + TENCENT_CLOUD { + @Override + public String authorize() { + return "https://dev.tencent.com/oauth_authorize.html"; + } + + @Override + public String accessToken() { + return "https://dev.tencent.com/api/oauth/access_token"; + } + + @Override + public String userInfo() { + return "https://dev.tencent.com/api/account/current_user"; + } + }, + /** + * oschina 开源中国 + */ + OSCHINA { + @Override + public String authorize() { + return "https://www.oschina.net/action/oauth2/authorize"; + } + + @Override + public String accessToken() { + return "https://www.oschina.net/action/openapi/token"; + } + + @Override + public String userInfo() { + return "https://www.oschina.net/action/openapi/user"; + } + }, + /** + * 支付宝 + */ + ALIPAY { + @Override + public String authorize() { + return "https://openauth.alipay.com/oauth2/publicAppAuthorize.htm"; + } + + @Override + public String accessToken() { + return "https://openapi.alipay.com/gateway.do"; + } + + @Override + public String userInfo() { + return "https://openapi.alipay.com/gateway.do"; + } + }, + /** + * QQ + */ + QQ { + @Override + public String authorize() { + return "https://graph.qq.com/oauth2.0/authorize"; + } + + @Override + public String accessToken() { + return "https://graph.qq.com/oauth2.0/token"; + } + + @Override + public String userInfo() { + return "https://graph.qq.com/user/get_user_info"; + } + + @Override + public String refresh() { + return "https://graph.qq.com/oauth2.0/token"; + } + }, + /** + * 微信 + */ + WECHAT { + @Override + public String authorize() { + return "https://open.weixin.qq.com/connect/qrconnect"; + } + + @Override + public String accessToken() { + return "https://api.weixin.qq.com/sns/oauth2/access_token"; + } + + @Override + public String userInfo() { + return "https://api.weixin.qq.com/sns/userinfo"; + } + + @Override + public String refresh() { + return "https://api.weixin.qq.com/sns/oauth2/refresh_token"; + } + }, + /** + * 淘宝 + */ + TAOBAO { + @Override + public String authorize() { + return "https://oauth.taobao.com/authorize"; + } + + @Override + public String accessToken() { + return "https://oauth.taobao.com/token"; + } + + @Override + public String userInfo() { + throw new AuthException(AuthResponseStatus.UNSUPPORTED); + } + }, + /** + * Google + */ + GOOGLE { + @Override + public String authorize() { + return "https://accounts.google.com/o/oauth2/v2/auth"; + } + + @Override + public String accessToken() { + return "https://www.googleapis.com/oauth2/v4/token"; + } + + @Override + public String userInfo() { + return "https://www.googleapis.com/oauth2/v3/userinfo"; + } + }, + /** + * Facebook + */ + FACEBOOK { + @Override + public String authorize() { + return "https://www.facebook.com/v3.3/dialog/oauth"; + } + + @Override + public String accessToken() { + return "https://graph.facebook.com/v3.3/oauth/access_token"; + } + + @Override + public String userInfo() { + return "https://graph.facebook.com/v3.3/me"; + } + }, + /** + * 抖音 + */ + DOUYIN { + @Override + public String authorize() { + return "https://open.douyin.com/platform/oauth/connect"; + } + + @Override + public String accessToken() { + return "https://open.douyin.com/oauth/access_token/"; + } + + @Override + public String userInfo() { + return "https://open.douyin.com/oauth/userinfo/"; + } + + @Override + public String refresh() { + return "https://open.douyin.com/oauth/refresh_token/"; + } + }, + /** + * 领英 + */ + LINKEDIN { + @Override + public String authorize() { + return "https://www.linkedin.com/oauth/v2/authorization"; + } + + @Override + public String accessToken() { + return "https://www.linkedin.com/oauth/v2/accessToken"; + } + + @Override + public String userInfo() { + return "https://api.linkedin.com/v2/me"; + } + + @Override + public String refresh() { + return "https://www.linkedin.com/oauth/v2/accessToken"; + } + }, + /** + * 微软 + */ + MICROSOFT { + @Override + public String authorize() { + return "https://login.microsoftonline.com/common/oauth2/v2.0/authorize"; + } + + @Override + public String accessToken() { + return "https://login.microsoftonline.com/common/oauth2/v2.0/token"; + } + + @Override + public String userInfo() { + return "https://graph.microsoft.com/v1.0/me"; + } + + @Override + public String refresh() { + return "https://login.microsoftonline.com/common/oauth2/v2.0/token"; + } + }, + /** + * 小米 + */ + MI { + @Override + public String authorize() { + return "https://account.xiaomi.com/oauth2/authorize"; + } + + @Override + public String accessToken() { + return "https://account.xiaomi.com/oauth2/token"; + } + + @Override + public String userInfo() { + return "https://open.account.xiaomi.com/user/profile"; + } + + @Override + public String refresh() { + return "https://account.xiaomi.com/oauth2/token"; + } + }, + /** + * 今日头条 + */ + TOUTIAO { + @Override + public String authorize() { + return "https://open.snssdk.com/auth/authorize"; + } + + @Override + public String accessToken() { + return "https://open.snssdk.com/auth/token"; + } + + @Override + public String userInfo() { + return "https://open.snssdk.com/data/user_profile"; + } + }, + /** + * Teambition + */ + TEAMBITION { + @Override + public String authorize() { + return "https://account.teambition.com/oauth2/authorize"; + } + + @Override + public String accessToken() { + return "https://account.teambition.com/oauth2/access_token"; + } + + @Override + public String refresh() { + return "https://account.teambition.com/oauth2/refresh_token"; + } + + @Override + public String userInfo() { + return "https://api.teambition.com/users/me"; + } + }, + + /** + * 人人网 + */ + RENREN { + @Override + public String authorize() { + return "https://graph.renren.com/oauth/authorize"; + } + + @Override + public String accessToken() { + return "https://graph.renren.com/oauth/token"; + } + + @Override + public String refresh() { + return "https://graph.renren.com/oauth/token"; + } + + @Override + public String userInfo() { + return "https://api.renren.com/v2/user/get"; + } + }, + + /** + * Pinterest + */ + PINTEREST { + @Override + public String authorize() { + return "https://api.pinterest.com/oauth"; + } + + @Override + public String accessToken() { + return "https://api.pinterest.com/v1/oauth/token"; + } + + @Override + public String userInfo() { + return "https://api.pinterest.com/v1/me"; + } + }, + + /** + * Stack Overflow + */ + STACK_OVERFLOW { + @Override + public String authorize() { + return "https://stackoverflow.com/oauth"; + } + + @Override + public String accessToken() { + return "https://stackoverflow.com/oauth/access_token/json"; + } + + @Override + public String userInfo() { + return "https://api.stackexchange.com/2.2/me"; + } + }, + + /** + * 华为 + * + * @since 1.10.0 + */ + HUAWEI { + @Override + public String authorize() { + return "https://oauth-login.cloud.huawei.com/oauth2/v2/authorize"; + } + + @Override + public String accessToken() { + return "https://oauth-login.cloud.huawei.com/oauth2/v2/token"; + } + + @Override + public String userInfo() { + return "https://api.vmall.com/rest.php"; + } + + @Override + public String refresh() { + return "https://oauth-login.cloud.huawei.com/oauth2/v2/token"; + } + }, + + /** + * 企业微信 + * + * @since 1.10.0 + */ + WECHAT_ENTERPRISE { + @Override + public String authorize() { + return "https://open.work.weixin.qq.com/wwopen/sso/qrConnect"; + } + + @Override + public String accessToken() { + return "https://qyapi.weixin.qq.com/cgi-bin/gettoken"; + } + + @Override + public String userInfo() { + return "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo"; + } + }, + + /** + * 酷家乐 + * + * @since 1.11.0 + */ + KUJIALE { + @Override + public String authorize() { + return "https://oauth.kujiale.com/oauth2/show"; + } + + @Override + public String accessToken() { + return "https://oauth.kujiale.com/oauth2/auth/token"; + } + + @Override + public String userInfo() { + return "https://oauth.kujiale.com/oauth2/openapi/user"; + } + + @Override + public String refresh() { + return "https://oauth.kujiale.com/oauth2/auth/token/refresh"; + } + }, + + /** + * Gitlab + * + * @since 1.11.0 + */ + GITLAB { + @Override + public String authorize() { + return "https://gitlab.com/oauth/authorize"; + } + + @Override + public String accessToken() { + return "https://gitlab.com/oauth/token"; + } + + @Override + public String userInfo() { + return "https://gitlab.com/api/v4/user"; + } + }, + + /** + * 美团 + * + * @since 1.12.0 + */ + MEITUAN { + @Override + public String authorize() { + return "https://openapi.waimai.meituan.com/oauth/authorize"; + } + + @Override + public String accessToken() { + return "https://openapi.waimai.meituan.com/oauth/access_token"; + } + + @Override + public String userInfo() { + return "https://openapi.waimai.meituan.com/oauth/userinfo"; + } + + @Override + public String refresh() { + return "https://openapi.waimai.meituan.com/oauth/refresh_token"; + } + }, + + /** + * 饿了么 + *

+ * 注:集成的是正式环境,非沙箱环境 + * + * @since 1.12.0 + */ + ELEME { + @Override + public String authorize() { + return "https://open-api.shop.ele.me/authorize"; + } + + @Override + public String accessToken() { + return "https://open-api.shop.ele.me/token"; + } + + @Override + public String userInfo() { + return "https://open-api.shop.ele.me/api/v1/"; + } + + @Override + public String refresh() { + return "https://open-api.shop.ele.me/token"; + } + } + +} diff --git a/src/main/java/me/zhyd/oauth/config/AuthSource.java b/src/main/java/me/zhyd/oauth/config/AuthSource.java index f4ecf5e..5fb77e0 100644 --- a/src/main/java/me/zhyd/oauth/config/AuthSource.java +++ b/src/main/java/me/zhyd/oauth/config/AuthSource.java @@ -2,705 +2,55 @@ package me.zhyd.oauth.config; import me.zhyd.oauth.enums.AuthResponseStatus; import me.zhyd.oauth.exception.AuthException; +import me.zhyd.oauth.model.AuthCallback; /** - * 各api需要的url, 用枚举类分平台类型管理 + * OAuth平台的API管理类的统一接口,提供以下接口: + * 1) {@link AuthSource#authorize()}: 获取授权api. 必须实现 + * 2) {@link AuthSource#accessToken()}: 获取授权api. 必须实现 + * 3) {@link AuthSource#userInfo()}: 获取授权api. 必须实现 + * 4) {@link AuthSource#revoke()}: 获取授权api. 非必须实现接口(部分平台不支持) + * 5) {@link AuthSource#refresh()} ()}: 获取授权api. 非必须实现接口(部分平台不支持) + *

+ * 注: + * ①、如需通过JustAuth扩展实现第三方授权,请参考{@link AuthDefaultSource}自行创建对应的枚举类并实现{@link AuthSource}接口 + * ②、如果不是使用的枚举类,那么在授权成功后获取用户信息时,需要单独处理{@link me.zhyd.oauth.model.AuthUser#setSource}字段的赋值 + * ③、如果扩展了对应枚举类时,在{@link me.zhyd.oauth.request.AuthRequest#login(AuthCallback)}中可以通过{@code xx.toString()}获取对应的source * * @author yadong.zhang (yadong.zhang0415(a)gmail.com) - * @since 1.0 + * @version 1.0 + * @date 2019/9/6 21:17 + * @since 1.8 */ -public enum AuthSource { - /** - * Github - */ - GITHUB { - @Override - public String authorize() { - return "https://github.com/login/oauth/authorize"; - } - - @Override - public String accessToken() { - return "https://github.com/login/oauth/access_token"; - } - - @Override - public String userInfo() { - return "https://api.github.com/user"; - } - }, - /** - * 新浪微博 - */ - WEIBO { - @Override - public String authorize() { - return "https://api.weibo.com/oauth2/authorize"; - } - - @Override - public String accessToken() { - return "https://api.weibo.com/oauth2/access_token"; - } - - @Override - public String userInfo() { - return "https://api.weibo.com/2/users/show.json"; - } - }, - /** - * gitee - */ - GITEE { - @Override - public String authorize() { - return "https://gitee.com/oauth/authorize"; - } - - @Override - public String accessToken() { - return "https://gitee.com/oauth/token"; - } - - @Override - public String userInfo() { - return "https://gitee.com/api/v5/user"; - } - }, - /** - * 钉钉 - */ - DINGTALK { - @Override - public String authorize() { - return "https://oapi.dingtalk.com/connect/qrconnect"; - } - - @Override - public String accessToken() { - throw new AuthException(AuthResponseStatus.UNSUPPORTED); - } - - @Override - public String userInfo() { - return "https://oapi.dingtalk.com/sns/getuserinfo_bycode"; - } - }, - /** - * 百度 - */ - BAIDU { - @Override - public String authorize() { - return "https://openapi.baidu.com/oauth/2.0/authorize"; - } - - @Override - public String accessToken() { - return "https://openapi.baidu.com/oauth/2.0/token"; - } - - @Override - public String userInfo() { - return "https://openapi.baidu.com/rest/2.0/passport/users/getInfo"; - } - - @Override - public String revoke() { - return "https://openapi.baidu.com/rest/2.0/passport/auth/revokeAuthorization"; - } - - @Override - public String refresh() { - return "https://openapi.baidu.com/oauth/2.0/token"; - } - }, - /** - * csdn - */ - CSDN { - @Override - public String authorize() { - return "https://api.csdn.net/oauth2/authorize"; - } - - @Override - public String accessToken() { - return "https://api.csdn.net/oauth2/access_token"; - } - - @Override - public String userInfo() { - return "https://api.csdn.net/user/getinfo"; - } - }, - /** - * Coding - */ - CODING { - @Override - public String authorize() { - return "https://coding.net/oauth_authorize.html"; - } - - @Override - public String accessToken() { - return "https://coding.net/api/oauth/access_token"; - } - - @Override - public String userInfo() { - return "https://coding.net/api/account/current_user"; - } - }, - /** - * 腾讯云开发者平台(coding升级后就变成腾讯云开发者平台了) - */ - TENCENT_CLOUD { - @Override - public String authorize() { - return "https://dev.tencent.com/oauth_authorize.html"; - } - - @Override - public String accessToken() { - return "https://dev.tencent.com/api/oauth/access_token"; - } - - @Override - public String userInfo() { - return "https://dev.tencent.com/api/account/current_user"; - } - }, - /** - * oschina 开源中国 - */ - OSCHINA { - @Override - public String authorize() { - return "https://www.oschina.net/action/oauth2/authorize"; - } - - @Override - public String accessToken() { - return "https://www.oschina.net/action/openapi/token"; - } - - @Override - public String userInfo() { - return "https://www.oschina.net/action/openapi/user"; - } - }, - /** - * 支付宝 - */ - ALIPAY { - @Override - public String authorize() { - return "https://openauth.alipay.com/oauth2/publicAppAuthorize.htm"; - } - - @Override - public String accessToken() { - return "https://openapi.alipay.com/gateway.do"; - } - - @Override - public String userInfo() { - return "https://openapi.alipay.com/gateway.do"; - } - }, - /** - * QQ - */ - QQ { - @Override - public String authorize() { - return "https://graph.qq.com/oauth2.0/authorize"; - } - - @Override - public String accessToken() { - return "https://graph.qq.com/oauth2.0/token"; - } - - @Override - public String userInfo() { - return "https://graph.qq.com/user/get_user_info"; - } - - @Override - public String refresh() { - return "https://graph.qq.com/oauth2.0/token"; - } - }, - /** - * 微信 - */ - WECHAT { - @Override - public String authorize() { - return "https://open.weixin.qq.com/connect/qrconnect"; - } - - @Override - public String accessToken() { - return "https://api.weixin.qq.com/sns/oauth2/access_token"; - } - - @Override - public String userInfo() { - return "https://api.weixin.qq.com/sns/userinfo"; - } - - @Override - public String refresh() { - return "https://api.weixin.qq.com/sns/oauth2/refresh_token"; - } - }, - /** - * 淘宝 - */ - TAOBAO { - @Override - public String authorize() { - return "https://oauth.taobao.com/authorize"; - } - - @Override - public String accessToken() { - return "https://oauth.taobao.com/token"; - } - - @Override - public String userInfo() { - throw new AuthException(AuthResponseStatus.UNSUPPORTED); - } - }, - /** - * Google - */ - GOOGLE { - @Override - public String authorize() { - return "https://accounts.google.com/o/oauth2/v2/auth"; - } - - @Override - public String accessToken() { - return "https://www.googleapis.com/oauth2/v4/token"; - } - - @Override - public String userInfo() { - return "https://www.googleapis.com/oauth2/v3/userinfo"; - } - }, - /** - * Facebook - */ - FACEBOOK { - @Override - public String authorize() { - return "https://www.facebook.com/v3.3/dialog/oauth"; - } - - @Override - public String accessToken() { - return "https://graph.facebook.com/v3.3/oauth/access_token"; - } - - @Override - public String userInfo() { - return "https://graph.facebook.com/v3.3/me"; - } - }, - /** - * 抖音 - */ - DOUYIN { - @Override - public String authorize() { - return "https://open.douyin.com/platform/oauth/connect"; - } - - @Override - public String accessToken() { - return "https://open.douyin.com/oauth/access_token/"; - } - - @Override - public String userInfo() { - return "https://open.douyin.com/oauth/userinfo/"; - } - - @Override - public String refresh() { - return "https://open.douyin.com/oauth/refresh_token/"; - } - }, - /** - * 领英 - */ - LINKEDIN { - @Override - public String authorize() { - return "https://www.linkedin.com/oauth/v2/authorization"; - } - - @Override - public String accessToken() { - return "https://www.linkedin.com/oauth/v2/accessToken"; - } - - @Override - public String userInfo() { - return "https://api.linkedin.com/v2/me"; - } - - @Override - public String refresh() { - return "https://www.linkedin.com/oauth/v2/accessToken"; - } - }, - /** - * 微软 - */ - MICROSOFT { - @Override - public String authorize() { - return "https://login.microsoftonline.com/common/oauth2/v2.0/authorize"; - } - - @Override - public String accessToken() { - return "https://login.microsoftonline.com/common/oauth2/v2.0/token"; - } - - @Override - public String userInfo() { - return "https://graph.microsoft.com/v1.0/me"; - } - - @Override - public String refresh() { - return "https://login.microsoftonline.com/common/oauth2/v2.0/token"; - } - }, - /** - * 小米 - */ - MI { - @Override - public String authorize() { - return "https://account.xiaomi.com/oauth2/authorize"; - } - - @Override - public String accessToken() { - return "https://account.xiaomi.com/oauth2/token"; - } - - @Override - public String userInfo() { - return "https://open.account.xiaomi.com/user/profile"; - } - - @Override - public String refresh() { - return "https://account.xiaomi.com/oauth2/token"; - } - }, - /** - * 今日头条 - */ - TOUTIAO { - @Override - public String authorize() { - return "https://open.snssdk.com/auth/authorize"; - } - - @Override - public String accessToken() { - return "https://open.snssdk.com/auth/token"; - } - - @Override - public String userInfo() { - return "https://open.snssdk.com/data/user_profile"; - } - }, - /** - * Teambition - */ - TEAMBITION { - @Override - public String authorize() { - return "https://account.teambition.com/oauth2/authorize"; - } - - @Override - public String accessToken() { - return "https://account.teambition.com/oauth2/access_token"; - } - - @Override - public String refresh() { - return "https://account.teambition.com/oauth2/refresh_token"; - } - - @Override - public String userInfo() { - return "https://api.teambition.com/users/me"; - } - }, - - /** - * 人人网 - */ - RENREN { - @Override - public String authorize() { - return "https://graph.renren.com/oauth/authorize"; - } - - @Override - public String accessToken() { - return "https://graph.renren.com/oauth/token"; - } - - @Override - public String refresh() { - return "https://graph.renren.com/oauth/token"; - } - - @Override - public String userInfo() { - return "https://api.renren.com/v2/user/get"; - } - }, - - /** - * Pinterest - */ - PINTEREST { - @Override - public String authorize() { - return "https://api.pinterest.com/oauth"; - } - - @Override - public String accessToken() { - return "https://api.pinterest.com/v1/oauth/token"; - } - - @Override - public String userInfo() { - return "https://api.pinterest.com/v1/me"; - } - }, - - /** - * Stack Overflow - */ - STACK_OVERFLOW { - @Override - public String authorize() { - return "https://stackoverflow.com/oauth"; - } - - @Override - public String accessToken() { - return "https://stackoverflow.com/oauth/access_token/json"; - } - - @Override - public String userInfo() { - return "https://api.stackexchange.com/2.2/me"; - } - }, - - /** - * 华为 - * - * @since 1.10.0 - */ - HUAWEI { - @Override - public String authorize() { - return "https://oauth-login.cloud.huawei.com/oauth2/v2/authorize"; - } - - @Override - public String accessToken() { - return "https://oauth-login.cloud.huawei.com/oauth2/v2/token"; - } - - @Override - public String userInfo() { - return "https://api.vmall.com/rest.php"; - } - - @Override - public String refresh() { - return "https://oauth-login.cloud.huawei.com/oauth2/v2/token"; - } - }, - - /** - * 企业微信 - * - * @since 1.10.0 - */ - WECHAT_ENTERPRISE { - @Override - public String authorize() { - return "https://open.work.weixin.qq.com/wwopen/sso/qrConnect"; - } - - @Override - public String accessToken() { - return "https://qyapi.weixin.qq.com/cgi-bin/gettoken"; - } - - @Override - public String userInfo() { - return "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo"; - } - }, - - /** - * 酷家乐 - * - * @since 1.11.0 - */ - KUJIALE { - @Override - public String authorize() { - return "https://oauth.kujiale.com/oauth2/show"; - } - - @Override - public String accessToken() { - return "https://oauth.kujiale.com/oauth2/auth/token"; - } - - @Override - public String userInfo() { - return "https://oauth.kujiale.com/oauth2/openapi/user"; - } - - @Override - public String refresh() { - return "https://oauth.kujiale.com/oauth2/auth/token/refresh"; - } - }, - - /** - * Gitlab - * - * @since 1.11.0 - */ - GITLAB { - @Override - public String authorize() { - return "https://gitlab.com/oauth/authorize"; - } - - @Override - public String accessToken() { - return "https://gitlab.com/oauth/token"; - } - - @Override - public String userInfo() { - return "https://gitlab.com/api/v4/user"; - } - }, - - /** - * 美团 - * - * @since 1.12.0 - */ - MEITUAN { - @Override - public String authorize() { - return "https://openapi.waimai.meituan.com/oauth/authorize"; - } - - @Override - public String accessToken() { - return "https://openapi.waimai.meituan.com/oauth/access_token"; - } - - @Override - public String userInfo() { - return "https://openapi.waimai.meituan.com/oauth/userinfo"; - } - - @Override - public String refresh() { - return "https://openapi.waimai.meituan.com/oauth/refresh_token"; - } - }, - - /** - * 饿了么 - *

- * 注:集成的是正式环境,非沙箱环境 - * - * @since 1.12.0 - */ - ELEME { - @Override - public String authorize() { - return "https://open-api.shop.ele.me/authorize"; - } - - @Override - public String accessToken() { - return "https://open-api.shop.ele.me/token"; - } - - @Override - public String userInfo() { - return "https://open-api.shop.ele.me/api/v1/"; - } - - @Override - public String refresh() { - return "https://open-api.shop.ele.me/token"; - } - }; +public interface AuthSource { /** * 授权的api * * @return url */ - public abstract String authorize(); + String authorize(); /** * 获取accessToken的api * * @return url */ - public abstract String accessToken(); + String accessToken(); /** * 获取用户信息的api * * @return url */ - public abstract String userInfo(); + String userInfo(); /** * 取消授权的api * * @return url */ - public String revoke() { + default String revoke() { throw new AuthException(AuthResponseStatus.UNSUPPORTED); } @@ -709,8 +59,7 @@ public enum AuthSource { * * @return url */ - public String refresh() { + default String refresh() { throw new AuthException(AuthResponseStatus.UNSUPPORTED); } - } diff --git a/src/main/java/me/zhyd/oauth/enums/AuthResponseStatus.java b/src/main/java/me/zhyd/oauth/enums/AuthResponseStatus.java index bc27736..9e9155f 100644 --- a/src/main/java/me/zhyd/oauth/enums/AuthResponseStatus.java +++ b/src/main/java/me/zhyd/oauth/enums/AuthResponseStatus.java @@ -21,7 +21,7 @@ public enum AuthResponseStatus { NOT_IMPLEMENTED(5001, "Not Implemented"), PARAMETER_INCOMPLETE(5002, "Parameter incomplete"), UNSUPPORTED(5003, "Unsupported operation"), - NO_AUTH_SOURCE(5004, "AuthSource cannot be null"), + NO_AUTH_SOURCE(5004, "AuthDefaultSource cannot be null"), UNIDENTIFIED_PLATFORM(5005, "Unidentified platform"), ILLEGAL_REDIRECT_URI(5006, "Illegal redirect uri"), ILLEGAL_REQUEST(5007, "Illegal request"), diff --git a/src/main/java/me/zhyd/oauth/model/AuthUser.java b/src/main/java/me/zhyd/oauth/model/AuthUser.java index 5c85e37..af21833 100644 --- a/src/main/java/me/zhyd/oauth/model/AuthUser.java +++ b/src/main/java/me/zhyd/oauth/model/AuthUser.java @@ -1,7 +1,6 @@ package me.zhyd.oauth.model; import lombok.*; -import me.zhyd.oauth.config.AuthSource; import me.zhyd.oauth.enums.AuthUserGender; /** @@ -61,7 +60,7 @@ public class AuthUser { /** * 用户来源 */ - private AuthSource source; + private String source; /** * 用户授权的token信息 */ diff --git a/src/main/java/me/zhyd/oauth/request/AuthAlipayRequest.java b/src/main/java/me/zhyd/oauth/request/AuthAlipayRequest.java index bbae6b3..1794bf3 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthAlipayRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthAlipayRequest.java @@ -9,7 +9,7 @@ import com.alipay.api.response.AlipaySystemOauthTokenResponse; import com.alipay.api.response.AlipayUserInfoShareResponse; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthCallback; @@ -29,14 +29,14 @@ public class AuthAlipayRequest extends AuthDefaultRequest { private AlipayClient alipayClient; public AuthAlipayRequest(AuthConfig config) { - super(config, AuthSource.ALIPAY); - this.alipayClient = new DefaultAlipayClient(AuthSource.ALIPAY.accessToken(), config.getClientId(), config.getClientSecret(), "json", "UTF-8", config + super(config, AuthDefaultSource.ALIPAY); + this.alipayClient = new DefaultAlipayClient(AuthDefaultSource.ALIPAY.accessToken(), config.getClientId(), config.getClientSecret(), "json", "UTF-8", config .getAlipayPublicKey(), "RSA2"); } public AuthAlipayRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.ALIPAY, authStateCache); - this.alipayClient = new DefaultAlipayClient(AuthSource.ALIPAY.accessToken(), config.getClientId(), config.getClientSecret(), "json", "UTF-8", config + super(config, AuthDefaultSource.ALIPAY, authStateCache); + this.alipayClient = new DefaultAlipayClient(AuthDefaultSource.ALIPAY.accessToken(), config.getClientId(), config.getClientSecret(), "json", "UTF-8", config .getAlipayPublicKey(), "RSA2"); } @@ -87,7 +87,7 @@ public class AuthAlipayRequest extends AuthDefaultRequest { .location(location) .gender(AuthUserGender.getRealGender(response.getGender())) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthBaiduRequest.java b/src/main/java/me/zhyd/oauth/request/AuthBaiduRequest.java index c0fd9f4..05341e1 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthBaiduRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthBaiduRequest.java @@ -5,7 +5,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthResponseStatus; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; @@ -25,11 +25,11 @@ import me.zhyd.oauth.utils.UrlBuilder; public class AuthBaiduRequest extends AuthDefaultRequest { public AuthBaiduRequest(AuthConfig config) { - super(config, AuthSource.BAIDU); + super(config, AuthDefaultSource.BAIDU); } public AuthBaiduRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.BAIDU, authStateCache); + super(config, AuthDefaultSource.BAIDU, authStateCache); } @Override @@ -52,7 +52,7 @@ public class AuthBaiduRequest extends AuthDefaultRequest { .remark(object.getString("userdetail")) .gender(AuthUserGender.getRealGender(object.getString("sex"))) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthCodingRequest.java b/src/main/java/me/zhyd/oauth/request/AuthCodingRequest.java index 20b17a8..7bb8e1f 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthCodingRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthCodingRequest.java @@ -4,7 +4,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthCallback; @@ -21,11 +21,11 @@ import me.zhyd.oauth.utils.UrlBuilder; public class AuthCodingRequest extends AuthDefaultRequest { public AuthCodingRequest(AuthConfig config) { - super(config, AuthSource.CODING); + super(config, AuthDefaultSource.CODING); } public AuthCodingRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.CODING, authStateCache); + super(config, AuthDefaultSource.CODING, authStateCache); } @Override @@ -59,7 +59,7 @@ public class AuthCodingRequest extends AuthDefaultRequest { .email(object.getString("email")) .remark(object.getString("slogan")) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthCsdnRequest.java b/src/main/java/me/zhyd/oauth/request/AuthCsdnRequest.java index 1ad85d8..d11f953 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthCsdnRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthCsdnRequest.java @@ -4,7 +4,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthCallback; @@ -21,11 +21,11 @@ import me.zhyd.oauth.model.AuthUser; public class AuthCsdnRequest extends AuthDefaultRequest { public AuthCsdnRequest(AuthConfig config) { - super(config, AuthSource.CSDN); + super(config, AuthDefaultSource.CSDN); } public AuthCsdnRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.CSDN, authStateCache); + super(config, AuthDefaultSource.CSDN, authStateCache); } @Override @@ -48,7 +48,7 @@ public class AuthCsdnRequest extends AuthDefaultRequest { .blog(object.getString("website")) .gender(AuthUserGender.UNKNOWN) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java b/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java index 1779975..6ff0aa1 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java @@ -6,7 +6,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthCallback; @@ -24,11 +24,11 @@ import me.zhyd.oauth.utils.UrlBuilder; public class AuthDingTalkRequest extends AuthDefaultRequest { public AuthDingTalkRequest(AuthConfig config) { - super(config, AuthSource.DINGTALK); + super(config, AuthDefaultSource.DINGTALK); } public AuthDingTalkRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.DINGTALK, authStateCache); + super(config, AuthDefaultSource.DINGTALK, authStateCache); } @Override @@ -56,7 +56,7 @@ public class AuthDingTalkRequest extends AuthDefaultRequest { .nickname(object.getString("nick")) .username(object.getString("nick")) .gender(AuthUserGender.UNKNOWN) - .source(source) + .source(source.toString()) .token(token) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthDouyinRequest.java b/src/main/java/me/zhyd/oauth/request/AuthDouyinRequest.java index 916964a..531e7b3 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthDouyinRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthDouyinRequest.java @@ -5,7 +5,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthResponseStatus; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; @@ -25,11 +25,11 @@ import me.zhyd.oauth.utils.UrlBuilder; public class AuthDouyinRequest extends AuthDefaultRequest { public AuthDouyinRequest(AuthConfig config) { - super(config, AuthSource.DOUYIN); + super(config, AuthDefaultSource.DOUYIN); } public AuthDouyinRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.DOUYIN, authStateCache); + super(config, AuthDefaultSource.DOUYIN, authStateCache); } @Override @@ -50,7 +50,7 @@ public class AuthDouyinRequest extends AuthDefaultRequest { .remark(userInfoObject.getString("description")) .gender(AuthUserGender.UNKNOWN) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthElemeRequest.java b/src/main/java/me/zhyd/oauth/request/AuthElemeRequest.java index 9773e69..db064b2 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthElemeRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthElemeRequest.java @@ -6,7 +6,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthResponseStatus; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; @@ -32,11 +32,11 @@ import java.util.Map; public class AuthElemeRequest extends AuthDefaultRequest { public AuthElemeRequest(AuthConfig config) { - super(config, AuthSource.ELEME); + super(config, AuthDefaultSource.ELEME); } public AuthElemeRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.ELEME, authStateCache); + super(config, AuthDefaultSource.ELEME, authStateCache); } @Override @@ -107,7 +107,7 @@ public class AuthElemeRequest extends AuthDefaultRequest { .nickname(result.getString("userName")) .gender(AuthUserGender.UNKNOWN) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthFacebookRequest.java b/src/main/java/me/zhyd/oauth/request/AuthFacebookRequest.java index 1e284ee..c65d1f2 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthFacebookRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthFacebookRequest.java @@ -4,7 +4,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthCallback; @@ -21,11 +21,11 @@ import me.zhyd.oauth.utils.UrlBuilder; public class AuthFacebookRequest extends AuthDefaultRequest { public AuthFacebookRequest(AuthConfig config) { - super(config, AuthSource.FACEBOOK); + super(config, AuthDefaultSource.FACEBOOK); } public AuthFacebookRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.FACEBOOK, authStateCache); + super(config, AuthDefaultSource.FACEBOOK, authStateCache); } @Override @@ -55,7 +55,7 @@ public class AuthFacebookRequest extends AuthDefaultRequest { .email(object.getString("email")) .gender(AuthUserGender.getRealGender(object.getString("gender"))) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthGiteeRequest.java b/src/main/java/me/zhyd/oauth/request/AuthGiteeRequest.java index d65aa36..7c930f1 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthGiteeRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthGiteeRequest.java @@ -4,7 +4,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthCallback; @@ -20,11 +20,11 @@ import me.zhyd.oauth.model.AuthUser; public class AuthGiteeRequest extends AuthDefaultRequest { public AuthGiteeRequest(AuthConfig config) { - super(config, AuthSource.GITEE); + super(config, AuthDefaultSource.GITEE); } public AuthGiteeRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.GITEE, authStateCache); + super(config, AuthDefaultSource.GITEE, authStateCache); } @Override @@ -59,7 +59,7 @@ public class AuthGiteeRequest extends AuthDefaultRequest { .remark(object.getString("bio")) .gender(AuthUserGender.UNKNOWN) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthGithubRequest.java b/src/main/java/me/zhyd/oauth/request/AuthGithubRequest.java index 60cb0a9..cbe0032 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthGithubRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthGithubRequest.java @@ -4,7 +4,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthCallback; @@ -23,11 +23,11 @@ import java.util.Map; public class AuthGithubRequest extends AuthDefaultRequest { public AuthGithubRequest(AuthConfig config) { - super(config, AuthSource.GITHUB); + super(config, AuthDefaultSource.GITHUB); } public AuthGithubRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.GITHUB, authStateCache); + super(config, AuthDefaultSource.GITHUB, authStateCache); } @Override @@ -63,7 +63,7 @@ public class AuthGithubRequest extends AuthDefaultRequest { .remark(object.getString("bio")) .gender(AuthUserGender.UNKNOWN) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthGitlabRequest.java b/src/main/java/me/zhyd/oauth/request/AuthGitlabRequest.java index 7e98635..3bab918 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthGitlabRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthGitlabRequest.java @@ -4,7 +4,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthCallback; @@ -21,11 +21,11 @@ import me.zhyd.oauth.utils.UrlBuilder; public class AuthGitlabRequest extends AuthDefaultRequest { public AuthGitlabRequest(AuthConfig config) { - super(config, AuthSource.GITLAB); + super(config, AuthDefaultSource.GITLAB); } public AuthGitlabRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.GITLAB, authStateCache); + super(config, AuthDefaultSource.GITLAB, authStateCache); } @Override @@ -63,7 +63,7 @@ public class AuthGitlabRequest extends AuthDefaultRequest { .remark(object.getString("bio")) .gender(AuthUserGender.UNKNOWN) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthGoogleRequest.java b/src/main/java/me/zhyd/oauth/request/AuthGoogleRequest.java index 345b719..43a5c04 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthGoogleRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthGoogleRequest.java @@ -5,7 +5,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthCallback; @@ -22,11 +22,11 @@ import me.zhyd.oauth.utils.UrlBuilder; public class AuthGoogleRequest extends AuthDefaultRequest { public AuthGoogleRequest(AuthConfig config) { - super(config, AuthSource.GOOGLE); + super(config, AuthDefaultSource.GOOGLE); } public AuthGoogleRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.GOOGLE, authStateCache); + super(config, AuthDefaultSource.GOOGLE, authStateCache); } @Override @@ -60,7 +60,7 @@ public class AuthGoogleRequest extends AuthDefaultRequest { .email(object.getString("email")) .gender(AuthUserGender.UNKNOWN) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthHuaweiRequest.java b/src/main/java/me/zhyd/oauth/request/AuthHuaweiRequest.java index aea00ab..099467c 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthHuaweiRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthHuaweiRequest.java @@ -5,7 +5,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthCallback; @@ -26,11 +26,11 @@ import static me.zhyd.oauth.enums.AuthResponseStatus.SUCCESS; public class AuthHuaweiRequest extends AuthDefaultRequest { public AuthHuaweiRequest(AuthConfig config) { - super(config, AuthSource.HUAWEI); + super(config, AuthDefaultSource.HUAWEI); } public AuthHuaweiRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.HUAWEI, authStateCache); + super(config, AuthDefaultSource.HUAWEI, authStateCache); } /** @@ -80,7 +80,7 @@ public class AuthHuaweiRequest extends AuthDefaultRequest { .gender(gender) .avatar(object.getString("headPictureURL")) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthKujialeRequest.java b/src/main/java/me/zhyd/oauth/request/AuthKujialeRequest.java index 833b7e2..f43fd30 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthKujialeRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthKujialeRequest.java @@ -5,7 +5,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthResponseStatus; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthCallback; @@ -24,11 +24,11 @@ import me.zhyd.oauth.utils.UrlBuilder; public class AuthKujialeRequest extends AuthDefaultRequest { public AuthKujialeRequest(AuthConfig config) { - super(config, AuthSource.KUJIALE); + super(config, AuthDefaultSource.KUJIALE); } public AuthKujialeRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.KUJIALE, authStateCache); + super(config, AuthDefaultSource.KUJIALE, authStateCache); } /** @@ -108,7 +108,7 @@ public class AuthKujialeRequest extends AuthDefaultRequest { .avatar(resultObject.getString("avatar")) .uuid(resultObject.getString("openId")) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthLinkedinRequest.java b/src/main/java/me/zhyd/oauth/request/AuthLinkedinRequest.java index f801f06..3d6a2f7 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthLinkedinRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthLinkedinRequest.java @@ -7,7 +7,7 @@ import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONPath; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthResponseStatus; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; @@ -28,11 +28,11 @@ import me.zhyd.oauth.utils.UrlBuilder; public class AuthLinkedinRequest extends AuthDefaultRequest { public AuthLinkedinRequest(AuthConfig config) { - super(config, AuthSource.LINKEDIN); + super(config, AuthDefaultSource.LINKEDIN); } public AuthLinkedinRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.LINKEDIN, authStateCache); + super(config, AuthDefaultSource.LINKEDIN, authStateCache); } @Override @@ -67,7 +67,7 @@ public class AuthLinkedinRequest extends AuthDefaultRequest { .email(email) .token(authToken) .gender(AuthUserGender.UNKNOWN) - .source(AuthSource.LINKEDIN) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthMeituanRequest.java b/src/main/java/me/zhyd/oauth/request/AuthMeituanRequest.java index 7685d2f..ddfed4d 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthMeituanRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthMeituanRequest.java @@ -5,7 +5,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthResponseStatus; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; @@ -24,11 +24,11 @@ import me.zhyd.oauth.utils.UrlBuilder; public class AuthMeituanRequest extends AuthDefaultRequest { public AuthMeituanRequest(AuthConfig config) { - super(config, AuthSource.MEITUAN); + super(config, AuthDefaultSource.MEITUAN); } public AuthMeituanRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.MEITUAN, authStateCache); + super(config, AuthDefaultSource.MEITUAN, authStateCache); } @Override @@ -68,7 +68,7 @@ public class AuthMeituanRequest extends AuthDefaultRequest { .avatar(object.getString("avatar")) .gender(AuthUserGender.UNKNOWN) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthMiRequest.java b/src/main/java/me/zhyd/oauth/request/AuthMiRequest.java index f084ab9..97fce22 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthMiRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthMiRequest.java @@ -6,7 +6,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthResponseStatus; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; @@ -29,11 +29,11 @@ public class AuthMiRequest extends AuthDefaultRequest { private static final String PREFIX = "&&&START&&&"; public AuthMiRequest(AuthConfig config) { - super(config, AuthSource.MI); + super(config, AuthDefaultSource.MI); } public AuthMiRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.MI, authStateCache); + super(config, AuthDefaultSource.MI, authStateCache); } @Override @@ -82,7 +82,7 @@ public class AuthMiRequest extends AuthDefaultRequest { .email(user.getString("mail")) .gender(AuthUserGender.UNKNOWN) .token(authToken) - .source(source) + .source(source.toString()) .build(); // 获取用户邮箱手机号等信息 diff --git a/src/main/java/me/zhyd/oauth/request/AuthMicrosoftRequest.java b/src/main/java/me/zhyd/oauth/request/AuthMicrosoftRequest.java index 60d901d..d15179d 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthMicrosoftRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthMicrosoftRequest.java @@ -5,7 +5,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthResponseStatus; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; @@ -25,11 +25,11 @@ import static me.zhyd.oauth.utils.GlobalAuthUtil.parseQueryToMap; */ public class AuthMicrosoftRequest extends AuthDefaultRequest { public AuthMicrosoftRequest(AuthConfig config) { - super(config, AuthSource.MICROSOFT); + super(config, AuthDefaultSource.MICROSOFT); } public AuthMicrosoftRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.MICROSOFT, authStateCache); + super(config, AuthDefaultSource.MICROSOFT, authStateCache); } @Override @@ -91,7 +91,7 @@ public class AuthMicrosoftRequest extends AuthDefaultRequest { .email(object.getString("mail")) .gender(AuthUserGender.UNKNOWN) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthOschinaRequest.java b/src/main/java/me/zhyd/oauth/request/AuthOschinaRequest.java index 205f2a8..4733820 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthOschinaRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthOschinaRequest.java @@ -4,7 +4,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthCallback; @@ -21,11 +21,11 @@ import me.zhyd.oauth.utils.UrlBuilder; public class AuthOschinaRequest extends AuthDefaultRequest { public AuthOschinaRequest(AuthConfig config) { - super(config, AuthSource.OSCHINA); + super(config, AuthDefaultSource.OSCHINA); } public AuthOschinaRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.OSCHINA, authStateCache); + super(config, AuthDefaultSource.OSCHINA, authStateCache); } @Override @@ -56,7 +56,7 @@ public class AuthOschinaRequest extends AuthDefaultRequest { .gender(AuthUserGender.getRealGender(object.getString("gender"))) .email(object.getString("email")) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthPinterestRequest.java b/src/main/java/me/zhyd/oauth/request/AuthPinterestRequest.java index 52ea765..0f73e1e 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthPinterestRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthPinterestRequest.java @@ -14,7 +14,7 @@ import me.zhyd.oauth.utils.UrlBuilder; import java.util.Objects; -import static me.zhyd.oauth.config.AuthSource.PINTEREST; +import static me.zhyd.oauth.config.AuthDefaultSource.PINTEREST; /** * Pinterest登录 @@ -60,7 +60,7 @@ public class AuthPinterestRequest extends AuthDefaultRequest { .gender(AuthUserGender.UNKNOWN) .remark(userObj.getString("bio")) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthQqRequest.java b/src/main/java/me/zhyd/oauth/request/AuthQqRequest.java index e47314b..cb4aeac 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthQqRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthQqRequest.java @@ -6,7 +6,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthResponseStatus; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; @@ -29,11 +29,11 @@ import java.util.Map; */ public class AuthQqRequest extends AuthDefaultRequest { public AuthQqRequest(AuthConfig config) { - super(config, AuthSource.QQ); + super(config, AuthDefaultSource.QQ); } public AuthQqRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.QQ, authStateCache); + super(config, AuthDefaultSource.QQ, authStateCache); } @Override @@ -70,7 +70,7 @@ public class AuthQqRequest extends AuthDefaultRequest { .uuid(openId) .gender(AuthUserGender.getRealGender(object.getString("gender"))) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthRenrenRequest.java b/src/main/java/me/zhyd/oauth/request/AuthRenrenRequest.java index 9b05946..736cf4a 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthRenrenRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthRenrenRequest.java @@ -16,7 +16,7 @@ import me.zhyd.oauth.utils.UrlBuilder; import java.util.Objects; -import static me.zhyd.oauth.config.AuthSource.RENREN; +import static me.zhyd.oauth.config.AuthDefaultSource.RENREN; import static me.zhyd.oauth.enums.AuthResponseStatus.SUCCESS; /** @@ -52,7 +52,7 @@ public class AuthRenrenRequest extends AuthDefaultRequest { .company(getCompany(userObj)) .gender(getGender(userObj)) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthStackOverflowRequest.java b/src/main/java/me/zhyd/oauth/request/AuthStackOverflowRequest.java index 2b90159..ac77076 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthStackOverflowRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthStackOverflowRequest.java @@ -12,7 +12,7 @@ import me.zhyd.oauth.model.AuthToken; import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.utils.UrlBuilder; -import static me.zhyd.oauth.config.AuthSource.STACK_OVERFLOW; +import static me.zhyd.oauth.config.AuthDefaultSource.STACK_OVERFLOW; import static me.zhyd.oauth.utils.GlobalAuthUtil.parseQueryToMap; /** @@ -67,7 +67,7 @@ public class AuthStackOverflowRequest extends AuthDefaultRequest { .blog(userObj.getString("website_url")) .gender(AuthUserGender.UNKNOWN) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthTaobaoRequest.java b/src/main/java/me/zhyd/oauth/request/AuthTaobaoRequest.java index 4241fed..a457759 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthTaobaoRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthTaobaoRequest.java @@ -4,7 +4,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthCallback; @@ -22,11 +22,11 @@ import me.zhyd.oauth.utils.UrlBuilder; public class AuthTaobaoRequest extends AuthDefaultRequest { public AuthTaobaoRequest(AuthConfig config) { - super(config, AuthSource.TAOBAO); + super(config, AuthDefaultSource.TAOBAO); } public AuthTaobaoRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.TAOBAO, authStateCache); + super(config, AuthDefaultSource.TAOBAO, authStateCache); } @Override @@ -54,7 +54,7 @@ public class AuthTaobaoRequest extends AuthDefaultRequest { .nickname(nick) .gender(AuthUserGender.UNKNOWN) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthTeambitionRequest.java b/src/main/java/me/zhyd/oauth/request/AuthTeambitionRequest.java index 04e8f72..5b20618 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthTeambitionRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthTeambitionRequest.java @@ -5,7 +5,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthResponseStatus; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; @@ -23,11 +23,11 @@ import me.zhyd.oauth.model.AuthUser; public class AuthTeambitionRequest extends AuthDefaultRequest { public AuthTeambitionRequest(AuthConfig config) { - super(config, AuthSource.TEAMBITION); + super(config, AuthDefaultSource.TEAMBITION); } public AuthTeambitionRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.TEAMBITION, authStateCache); + super(config, AuthDefaultSource.TEAMBITION, authStateCache); } /** @@ -75,7 +75,7 @@ public class AuthTeambitionRequest extends AuthDefaultRequest { .email(object.getString("email")) .gender(AuthUserGender.UNKNOWN) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthTencentCloudRequest.java b/src/main/java/me/zhyd/oauth/request/AuthTencentCloudRequest.java index c7eb3c7..b319a60 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthTencentCloudRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthTencentCloudRequest.java @@ -4,7 +4,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthCallback; @@ -21,11 +21,11 @@ import me.zhyd.oauth.utils.UrlBuilder; public class AuthTencentCloudRequest extends AuthDefaultRequest { public AuthTencentCloudRequest(AuthConfig config) { - super(config, AuthSource.TENCENT_CLOUD); + super(config, AuthDefaultSource.TENCENT_CLOUD); } public AuthTencentCloudRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.TENCENT_CLOUD, authStateCache); + super(config, AuthDefaultSource.TENCENT_CLOUD, authStateCache); } @Override @@ -59,7 +59,7 @@ public class AuthTencentCloudRequest extends AuthDefaultRequest { .email(object.getString("email")) .remark(object.getString("slogan")) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthToutiaoRequest.java b/src/main/java/me/zhyd/oauth/request/AuthToutiaoRequest.java index 6b54016..53edf33 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthToutiaoRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthToutiaoRequest.java @@ -4,7 +4,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthToutiaoErrorCode; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; @@ -22,11 +22,11 @@ import me.zhyd.oauth.utils.UrlBuilder; public class AuthToutiaoRequest extends AuthDefaultRequest { public AuthToutiaoRequest(AuthConfig config) { - super(config, AuthSource.TOUTIAO); + super(config, AuthDefaultSource.TOUTIAO); } public AuthToutiaoRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.TOUTIAO, authStateCache); + super(config, AuthDefaultSource.TOUTIAO, authStateCache); } @Override @@ -64,7 +64,7 @@ public class AuthToutiaoRequest extends AuthDefaultRequest { .remark(user.getString("description")) .gender(AuthUserGender.getRealGender(user.getString("gender"))) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthWeChatEnterpriseRequest.java b/src/main/java/me/zhyd/oauth/request/AuthWeChatEnterpriseRequest.java index 3d9befd..e41d422 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthWeChatEnterpriseRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthWeChatEnterpriseRequest.java @@ -5,7 +5,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthResponseStatus; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; @@ -24,11 +24,11 @@ import me.zhyd.oauth.utils.UrlBuilder; */ public class AuthWeChatEnterpriseRequest extends AuthDefaultRequest { public AuthWeChatEnterpriseRequest(AuthConfig config) { - super(config, AuthSource.WECHAT_ENTERPRISE); + super(config, AuthDefaultSource.WECHAT_ENTERPRISE); } public AuthWeChatEnterpriseRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.WECHAT_ENTERPRISE, authStateCache); + super(config, AuthDefaultSource.WECHAT_ENTERPRISE, authStateCache); } /** @@ -74,7 +74,7 @@ public class AuthWeChatEnterpriseRequest extends AuthDefaultRequest { .uuid(userId) .gender(AuthUserGender.getRealGender(gender)) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthWeChatRequest.java b/src/main/java/me/zhyd/oauth/request/AuthWeChatRequest.java index c662995..1e78d58 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthWeChatRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthWeChatRequest.java @@ -5,7 +5,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthResponseStatus; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; @@ -23,11 +23,11 @@ import me.zhyd.oauth.utils.UrlBuilder; */ public class AuthWeChatRequest extends AuthDefaultRequest { public AuthWeChatRequest(AuthConfig config) { - super(config, AuthSource.WECHAT); + super(config, AuthDefaultSource.WECHAT); } public AuthWeChatRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.WECHAT, authStateCache); + super(config, AuthDefaultSource.WECHAT, authStateCache); } /** @@ -64,7 +64,7 @@ public class AuthWeChatRequest extends AuthDefaultRequest { .uuid(openId) .gender(AuthUserGender.getRealGender(object.getString("sex"))) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthWeiboRequest.java b/src/main/java/me/zhyd/oauth/request/AuthWeiboRequest.java index 9e5d377..5b71d9d 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthWeiboRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthWeiboRequest.java @@ -5,7 +5,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthCallback; @@ -25,11 +25,11 @@ import me.zhyd.oauth.utils.UrlBuilder; public class AuthWeiboRequest extends AuthDefaultRequest { public AuthWeiboRequest(AuthConfig config) { - super(config, AuthSource.WEIBO); + super(config, AuthDefaultSource.WEIBO); } public AuthWeiboRequest(AuthConfig config, AuthStateCache authStateCache) { - super(config, AuthSource.WEIBO, authStateCache); + super(config, AuthDefaultSource.WEIBO, authStateCache); } @Override @@ -73,7 +73,7 @@ public class AuthWeiboRequest extends AuthDefaultRequest { .remark(object.getString("description")) .gender(AuthUserGender.getRealGender(object.getString("gender"))) .token(authToken) - .source(source) + .source(source.toString()) .build(); } diff --git a/src/main/java/me/zhyd/oauth/utils/AuthChecker.java b/src/main/java/me/zhyd/oauth/utils/AuthChecker.java index 8e56e21..bf7146f 100644 --- a/src/main/java/me/zhyd/oauth/utils/AuthChecker.java +++ b/src/main/java/me/zhyd/oauth/utils/AuthChecker.java @@ -1,6 +1,7 @@ package me.zhyd.oauth.utils; import me.zhyd.oauth.config.AuthConfig; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.config.AuthSource; import me.zhyd.oauth.enums.AuthResponseStatus; import me.zhyd.oauth.exception.AuthException; @@ -24,13 +25,13 @@ public class AuthChecker { */ public static boolean isSupportedAuth(AuthConfig config, AuthSource source) { boolean isSupported = StringUtils.isNotEmpty(config.getClientId()) && StringUtils.isNotEmpty(config.getClientSecret()) && StringUtils.isNotEmpty(config.getRedirectUri()); - if (isSupported && AuthSource.ALIPAY == source) { + if (isSupported && AuthDefaultSource.ALIPAY == source) { isSupported = StringUtils.isNotEmpty(config.getAlipayPublicKey()); } - if (isSupported && AuthSource.STACK_OVERFLOW == source) { + if (isSupported && AuthDefaultSource.STACK_OVERFLOW == source) { isSupported = StringUtils.isNotEmpty(config.getStackOverflowKey()); } - if (isSupported && AuthSource.WECHAT_ENTERPRISE == source){ + if (isSupported && AuthDefaultSource.WECHAT_ENTERPRISE == source){ isSupported = StringUtils.isNotEmpty(config.getAgentId()); } return isSupported; @@ -49,11 +50,11 @@ public class AuthChecker { throw new AuthException(AuthResponseStatus.ILLEGAL_REDIRECT_URI); } // facebook的回调地址必须为https的链接 - if (AuthSource.FACEBOOK == source && !GlobalAuthUtil.isHttpsProtocol(redirectUri)) { + if (AuthDefaultSource.FACEBOOK == source && !GlobalAuthUtil.isHttpsProtocol(redirectUri)) { throw new AuthException(AuthResponseStatus.ILLEGAL_REDIRECT_URI); } // 支付宝在创建回调地址时,不允许使用localhost或者127.0.0.1 - if (AuthSource.ALIPAY == source && GlobalAuthUtil.isLocalHost(redirectUri)) { + if (AuthDefaultSource.ALIPAY == source && GlobalAuthUtil.isLocalHost(redirectUri)) { throw new AuthException(AuthResponseStatus.ILLEGAL_REDIRECT_URI); } } @@ -69,9 +70,9 @@ public class AuthChecker { */ public static void checkCode(AuthSource source, AuthCallback callback) { String code = callback.getCode(); - if (source == AuthSource.ALIPAY) { + if (source == AuthDefaultSource.ALIPAY) { code = callback.getAuth_code(); - } else if (source == AuthSource.HUAWEI) { + } else if (source == AuthDefaultSource.HUAWEI) { code = callback.getAuthorization_code(); } if (StringUtils.isEmpty(code)) { diff --git a/src/test/java/me/zhyd/oauth/config/AuthExtendSource.java b/src/test/java/me/zhyd/oauth/config/AuthExtendSource.java new file mode 100644 index 0000000..233c1dc --- /dev/null +++ b/src/test/java/me/zhyd/oauth/config/AuthExtendSource.java @@ -0,0 +1,63 @@ +package me.zhyd.oauth.config; + +/** + * 测试自定义实现{@link AuthSource}接口后的枚举类 + * + * @author yadong.zhang (yadong.zhang0415(a)gmail.com) + * @version 1.0 + * @since 1.12.0 + */ +public enum AuthExtendSource implements AuthSource { + + OTHER { + /** + * 授权的api + * + * @return url + */ + @Override + public String authorize() { + return "http://authorize"; + } + + /** + * 获取accessToken的api + * + * @return url + */ + @Override + public String accessToken() { + return "http://accessToken"; + } + + /** + * 获取用户信息的api + * + * @return url + */ + @Override + public String userInfo() { + return null; + } + + /** + * 取消授权的api + * + * @return url + */ + @Override + public String revoke() { + return null; + } + + /** + * 刷新授权的api + * + * @return url + */ + @Override + public String refresh() { + return null; + } + } +} diff --git a/src/test/java/me/zhyd/oauth/model/AuthUserTest.java b/src/test/java/me/zhyd/oauth/model/AuthUserTest.java index 1b6eaf4..4b0f445 100644 --- a/src/test/java/me/zhyd/oauth/model/AuthUserTest.java +++ b/src/test/java/me/zhyd/oauth/model/AuthUserTest.java @@ -1,6 +1,9 @@ package me.zhyd.oauth.model; import com.alibaba.fastjson.JSON; +import me.zhyd.oauth.config.AuthDefaultSource; +import me.zhyd.oauth.config.AuthExtendSource; +import me.zhyd.oauth.config.AuthSource; import org.junit.Assert; import org.junit.Test; @@ -28,4 +31,25 @@ public class AuthUserTest { Assert.assertEquals(deserializeUser.getNickname(), "test"); } + @Test + public void source() { + AuthSource source = AuthDefaultSource.HUAWEI; + AuthUser user = AuthUser.builder() + .source(source.toString()) + .build(); + Assert.assertEquals(user.getSource(), "HUAWEI"); + + source = AuthExtendSource.OTHER; + user = AuthUser.builder() + .source(source.toString()) + .build(); + Assert.assertEquals(user.getSource(), "OTHER"); + + source = AuthDefaultSource.HUAWEI; + Assert.assertEquals(source, AuthDefaultSource.HUAWEI); + + source = AuthExtendSource.OTHER; + Assert.assertEquals(source, AuthExtendSource.OTHER); + } + } diff --git a/src/test/java/me/zhyd/oauth/request/AuthExtendRequest.java b/src/test/java/me/zhyd/oauth/request/AuthExtendRequest.java new file mode 100644 index 0000000..8f24552 --- /dev/null +++ b/src/test/java/me/zhyd/oauth/request/AuthExtendRequest.java @@ -0,0 +1,105 @@ +package me.zhyd.oauth.request; + +import me.zhyd.oauth.cache.AuthStateCache; +import me.zhyd.oauth.config.AuthConfig; +import me.zhyd.oauth.config.AuthExtendSource; +import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.enums.AuthResponseStatus; +import me.zhyd.oauth.enums.AuthUserGender; +import me.zhyd.oauth.model.AuthCallback; +import me.zhyd.oauth.model.AuthResponse; +import me.zhyd.oauth.model.AuthToken; +import me.zhyd.oauth.model.AuthUser; + +/** + * 测试用自定义扩展的第三方request + * + * @author yadong.zhang (yadong.zhang0415(a)gmail.com) + * @version 1.0 + * @since 1.12.0 + */ +public class AuthExtendRequest extends AuthDefaultRequest { + + public AuthExtendRequest(AuthConfig config) { + super(config, AuthExtendSource.OTHER); + } + + public AuthExtendRequest(AuthConfig config, AuthSource source, AuthStateCache authStateCache) { + super(config, AuthExtendSource.OTHER, authStateCache); + } + + /** + * 获取access token + * + * @param authCallback 授权成功后的回调参数 + * @return token + * @see AuthDefaultRequest#authorize() + * @see AuthDefaultRequest#authorize(String) + */ + @Override + protected AuthToken getAccessToken(AuthCallback authCallback) { + return AuthToken.builder() + .openId("openId") + .expireIn(1000) + .idToken("idToken") + .scope("scope") + .refreshToken("refreshToken") + .accessToken("accessToken") + .code("code") + .build(); + } + + /** + * 使用token换取用户信息 + * + * @param authToken token信息 + * @return 用户信息 + * @see AuthDefaultRequest#getAccessToken(AuthCallback) + */ + @Override + protected AuthUser getUserInfo(AuthToken authToken) { + return AuthUser.builder() + .username("test") + .nickname("test") + .gender(AuthUserGender.MALE) + .token(authToken) + .source(this.source.toString()) + .build(); + } + + /** + * 撤销授权 + * + * @param authToken 登录成功后返回的Token信息 + * @return AuthResponse + */ + @Override + public AuthResponse revoke(AuthToken authToken) { + return AuthResponse.builder() + .code(AuthResponseStatus.SUCCESS.getCode()) + .msg(AuthResponseStatus.SUCCESS.getMsg()) + .build(); + } + + /** + * 刷新access token (续期) + * + * @param authToken 登录成功后返回的Token信息 + * @return AuthResponse + */ + @Override + public AuthResponse refresh(AuthToken authToken) { + return AuthResponse.builder() + .code(AuthResponseStatus.SUCCESS.getCode()) + .data(AuthToken.builder() + .openId("openId") + .expireIn(1000) + .idToken("idToken") + .scope("scope") + .refreshToken("refreshToken") + .accessToken("accessToken") + .code("code") + .build()) + .build(); + } +} diff --git a/src/test/java/me/zhyd/oauth/request/AuthExtendRequestTest.java b/src/test/java/me/zhyd/oauth/request/AuthExtendRequestTest.java new file mode 100644 index 0000000..c1184c2 --- /dev/null +++ b/src/test/java/me/zhyd/oauth/request/AuthExtendRequestTest.java @@ -0,0 +1,81 @@ +package me.zhyd.oauth.request; + +import com.alibaba.fastjson.JSON; +import me.zhyd.oauth.config.AuthConfig; +import me.zhyd.oauth.model.AuthCallback; +import me.zhyd.oauth.model.AuthResponse; +import me.zhyd.oauth.model.AuthToken; +import me.zhyd.oauth.model.AuthUser; +import me.zhyd.oauth.utils.AuthStateUtils; +import org.junit.Assert; +import org.junit.Test; + +/** + * 自定义扩展的第三方request的测试类,用于演示具体的用法 + * + * @author yadong.zhang (yadong.zhang0415(a)gmail.com) + * @version 1.0 + * @since 1.12.0 + */ +public class AuthExtendRequestTest { + + @Test + public void authorize() { + AuthRequest request = new AuthExtendRequest(AuthConfig.builder() + .clientId("clientId") + .clientSecret("clientSecret") + .redirectUri("http://redirectUri") + .build()); + String authorize = request.authorize(AuthStateUtils.createState()); + System.out.println(authorize); + Assert.assertNotNull(authorize); + } + + @Test + public void login() { + AuthRequest request = new AuthExtendRequest(AuthConfig.builder() + .clientId("clientId") + .clientSecret("clientSecret") + .redirectUri("http://redirectUri") + .build()); + + String state = AuthStateUtils.createState(); + request.authorize(state); + AuthCallback callback = new AuthCallback(); + callback.setCode("code"); + callback.setState(state); + AuthResponse response = request.login(callback); + Assert.assertNotNull(response); + + AuthUser user = (AuthUser) response.getData(); + Assert.assertNotNull(user); + System.out.println(JSON.toJSONString(user)); + } + + @Test + public void revoke() { + AuthRequest request = new AuthExtendRequest(AuthConfig.builder() + .clientId("clientId") + .clientSecret("clientSecret") + .redirectUri("http://redirectUri") + .build()); + + AuthResponse response = request.revoke(AuthToken.builder().build()); + Assert.assertNotNull(response); + System.out.println(JSON.toJSONString(response)); + } + + @Test + public void refresh() { + AuthRequest request = new AuthExtendRequest(AuthConfig.builder() + .clientId("clientId") + .clientSecret("clientSecret") + .redirectUri("http://redirectUri") + .build()); + + AuthResponse response = request.refresh(AuthToken.builder().build()); + Assert.assertNotNull(response); + System.out.println(JSON.toJSONString(response.getData())); + + } +} diff --git a/src/test/java/me/zhyd/oauth/AuthRequestTest.java b/src/test/java/me/zhyd/oauth/request/AuthRequestTest.java similarity index 99% rename from src/test/java/me/zhyd/oauth/AuthRequestTest.java rename to src/test/java/me/zhyd/oauth/request/AuthRequestTest.java index 35b49f8..09592a9 100644 --- a/src/test/java/me/zhyd/oauth/AuthRequestTest.java +++ b/src/test/java/me/zhyd/oauth/request/AuthRequestTest.java @@ -1,4 +1,4 @@ -package me.zhyd.oauth; +package me.zhyd.oauth.request; import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.model.AuthCallback; diff --git a/src/test/java/me/zhyd/oauth/utils/UrlBuilderTest.java b/src/test/java/me/zhyd/oauth/utils/UrlBuilderTest.java index 62a4239..86b6789 100644 --- a/src/test/java/me/zhyd/oauth/utils/UrlBuilderTest.java +++ b/src/test/java/me/zhyd/oauth/utils/UrlBuilderTest.java @@ -1,7 +1,7 @@ package me.zhyd.oauth.utils; import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.config.AuthSource; +import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.request.AuthWeChatRequest; import org.junit.Assert; import org.junit.Test; @@ -22,7 +22,7 @@ public class UrlBuilderTest { .clientSecret("secret-110110110") .redirectUri("https://xkcoding.com") .build(); - String build = UrlBuilder.fromBaseUrl(AuthSource.WECHAT.authorize()) + String build = UrlBuilder.fromBaseUrl(AuthDefaultSource.WECHAT.authorize()) .queryParam("appid", config.getClientId()) .queryParam("redirect_uri", config.getRedirectUri()) .queryParam("response_type", "code") -- GitLab