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 0000000000000000000000000000000000000000..9b239e12e96a7527205c4358fa46a81b1d70446f --- /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 f4ecf5e4bac515ab4b1b975382e11a5a7e4bc845..5fb77e00dcb133eebaf0f840f38bfd203ad4e82b 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 bc277368367cd03db0bfef472e93bea3789bfe14..9e9155f6cf358b075f0c18ea00a7045456f2db43 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 5c85e37be6df9a1af5b48c732f07bad8899fdd55..af21833b77c1f7763a58e6e4305e311e207ab7c2 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 bbae6b3be542e9ec0a90ebeb5342e8314bfe6192..1794bf345996ba85aef39a6cb7c7a95c6bb3cdf1 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 c0fd9f44285a5727d47461a3c80f90f0d53d84b6..05341e1c9c69393da9c4fb08403c694cf0236f5b 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 20b17a8a0b31497b9e16a1be130450206aa14a56..7bb8e1fc92688b48c4171edc583b3483d1e1f415 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 1ad85d82fe0e9af8064e0e29dbe1de66bf458211..d11f9534ec771515c1b4652481dd50ad086826c2 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 1779975080f034076b22269500c0a35bdf6f6c84..6ff0aa1d5ac62a3b172468a7704e240c451965a6 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 916964ad315e8572932d139d78ba752fa1180d75..531e7b37eb6131b9f76539e9880eb0c68704e8e5 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 9773e699a138d6f9f1b3e341d500264e3c3a9213..db064b2dfd91089a728dbb33d3486062a5688b75 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 1e284ee195aaea058f9f0b4f4adfb6448acfc546..c65d1f2da4e4502c40d557c4fdaa6ec40a25a574 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 d65aa36aac91066012561129ef2be312f8c556ea..7c930f1c8991a9c3389fad968bd2666b1ce47cc1 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 60cb0a9ccfa49574600a7bebd251602c47281e67..cbe0032c75e844088831625dada76a39e42692cb 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 7e9863514cb199e7c6c59796865f26e7011608c5..3bab91892eb7a444b2dc337a984608c52b96df21 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 345b71955a89da5b996a2deb162e9e0c91222ef0..43a5c041167ec3ebe99854e25453b50c49ee4ee1 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 aea00abc179b1e26fc3c76db7003af348d872a7a..099467cf629b67e0b5b7e4054fc1ff9a7c0d561c 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 833b7e21f75d421f7ff0af99ea7269abcb9afc28..f43fd30a365639bfd553cf28ded3fc0f770412a4 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 f801f06f7443895e5bc8976b318fa0ba49bdb55d..3d6a2f777f981c9cd358cd7366f4101fa843988f 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 7685d2faff39118d063bd33e3775e7cd77450d06..ddfed4dd38e8a751e360a24618a3189f5afc071e 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 f084ab94c01a1e135ad2f37e47e2f72a804bce54..97fce22a501d2d8915de30f34109767d73dba374 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 60d901dfe4b905bcf851519a45e4bdaeed355654..d15179d826c45efb34da800bad2367e0ac16f233 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 205f2a823c2b64e5e4546555851e9339795817b0..4733820cc70d4ab03ff05463f5c1eb443724379e 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 52ea765e9b8788453a165dc8fe668fbfa24e8f46..0f73e1e9f14babf07792affd95cd19b5e41556f8 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 e47314b9fbd087ae0773e5034507d2a71d65e86d..cb4aeac73f60cf3dc717f44e6c19bb43c6a602d5 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 9b05946bcfc052e89980fff750bb3143aac23bae..736cf4a2abaab229d90c4a1a9e816c66441fb1f6 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 2b90159dcf029817e0dfff296e8923fe646665a0..ac7707659f33f00267f48c61770c2966c5dbeb91 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 4241fedc880b0b1f75eee7601a62982e1c13b826..a457759d383aca9fd3e58f8a082c14c5d1a673dc 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 04e8f7202c53c3bb74f016e57efb6f6caa8f211b..5b2061800654280b5f21889d1af8fead294f18ac 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 c7eb3c7eec6fe2c2679419743d391c719b72a9e4..b319a6006d5fe1ced0a76167f81c6ca928f82a8d 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 6b540161baa8e4c4aaab73f469fe770bd3b28d7b..53edf332dac578bba3f19e3fd82bcaee73e230d6 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 3d9befdb43ba4481e08516a5c5170aa00d5f2b69..e41d4220fcc15a7da76fa5ec9dfb6f8615e20559 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 c662995de12025290e905bab4cdcbef22e779515..1e78d5840c8537d0e2d8e4f2fee112d69c55bdee 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 9e5d3776a58e02d320bfaa25f553ec16b3b9196a..5b71d9df449aa18f8248fb46055f6a6b3e9f164a 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 8e56e2120d1cedd9c1ec19f8fedf74549099ba5f..bf7146fd5a705d56fecf24696e3b04d546f6b912 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 0000000000000000000000000000000000000000..233c1dc10fa91dd1f36bae4cbb6fc91155a5eee7 --- /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 1b6eaf48a54b9fb6b2e2ab0165d71f777b008665..4b0f445c1a590170365f89c8f208f35ee87952c0 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 0000000000000000000000000000000000000000..8f24552f1bbb9bc3fac098f8de4c7c83bddba8da --- /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 0000000000000000000000000000000000000000..c1184c25573c43182bc5c3a0206681cd7eccb392 --- /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 35b49f85e3946d2ea163408a7e123c7b43648e39..09592a929728f0cdf12e82bfbd6aaed4e3430903 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 62a4239f3aaa474ecff24ac303752071c2da5336..86b678976e0f2359add7974646c5e471e5ec5c35 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")