diff --git a/src/main/java/me/zhyd/oauth/consts/ApiUrl.java b/src/main/java/me/zhyd/oauth/consts/ApiUrl.java new file mode 100644 index 0000000000000000000000000000000000000000..d2b76358edd3723400ddca5c27a6adbaa5cf2cad --- /dev/null +++ b/src/main/java/me/zhyd/oauth/consts/ApiUrl.java @@ -0,0 +1,288 @@ +package me.zhyd.oauth.consts; + +import me.zhyd.oauth.exception.AuthException; +import me.zhyd.oauth.request.ResponseStatus; + +/** + * 各api需要的url, 用枚举类分平台类型管理 + * + * @author yadong.zhang (yadong.zhang0415(a)gmail.com) + * @version 1.0 + * @website https://www.zhyd.me + * @date 2019/2/24 21:20 + * @since 1.0 + */ +public enum ApiUrl { + /** + * 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"; + } + + @Override + public String revoke() { + throw new AuthException(ResponseStatus.UNSUPPORTED); + } + + @Override + public String refresh() { + throw new AuthException(ResponseStatus.UNSUPPORTED); + } + }, + /** + * 新浪微博 + */ + 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"; + } + + @Override + public String revoke() { + throw new AuthException(ResponseStatus.UNSUPPORTED); + } + + @Override + public String refresh() { + throw new AuthException(ResponseStatus.UNSUPPORTED); + } + }, + /** + * 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"; + } + + @Override + public String revoke() { + throw new AuthException(ResponseStatus.UNSUPPORTED); + } + + @Override + public String refresh() { + throw new AuthException(ResponseStatus.UNSUPPORTED); + } + }, + /** + * 钉钉 + */ + DINGTALK { + @Override + public String authorize() { + return "https://oapi.dingtalk.com/connect/qrconnect"; + } + + @Override + public String accessToken() { + throw new AuthException(ResponseStatus.UNSUPPORTED); + } + + @Override + public String userInfo() { + return "https://oapi.dingtalk.com/sns/getuserinfo_bycode"; + } + + @Override + public String revoke() { + throw new AuthException(ResponseStatus.UNSUPPORTED); + } + + @Override + public String refresh() { + throw new AuthException(ResponseStatus.UNSUPPORTED); + } + }, + /** + * 百度 + */ + 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() { + throw new AuthException(ResponseStatus.UNSUPPORTED); + } + }, + /** + * 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"; + } + + @Override + public String revoke() { + throw new AuthException(ResponseStatus.UNSUPPORTED); + } + + @Override + public String refresh() { + throw new AuthException(ResponseStatus.UNSUPPORTED); + } + }, + /** + * 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"; + } + + @Override + public String revoke() { + throw new AuthException(ResponseStatus.UNSUPPORTED); + } + + @Override + public String refresh() { + throw new AuthException(ResponseStatus.UNSUPPORTED); + } + }, + /** + * 腾讯云开发者平台(coding升级后就变成腾讯云开发者平台了) + */ + TENCENTCLOUD { + @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"; + } + + @Override + public String revoke() { + throw new AuthException(ResponseStatus.UNSUPPORTED); + } + + @Override + public String refresh() { + throw new AuthException(ResponseStatus.UNSUPPORTED); + } + }, + /** + * 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"; + } + + @Override + public String revoke() { + throw new AuthException(ResponseStatus.UNSUPPORTED); + } + + @Override + public String refresh() { + throw new AuthException(ResponseStatus.UNSUPPORTED); + } + }; + + public abstract String authorize(); + + public abstract String accessToken(); + + public abstract String userInfo(); + + public abstract String revoke(); + + public abstract String refresh(); + +} diff --git a/src/main/java/me/zhyd/oauth/consts/ApiUrlConst.java b/src/main/java/me/zhyd/oauth/consts/ApiUrlConst.java deleted file mode 100644 index 96d76ea619b387574a2d952c0e194a185cf6b9e9..0000000000000000000000000000000000000000 --- a/src/main/java/me/zhyd/oauth/consts/ApiUrlConst.java +++ /dev/null @@ -1,149 +0,0 @@ -package me.zhyd.oauth.consts; - -/** - * 各api需要的url常量类 - * - * @author yadong.zhang (yadong.zhang0415(a)gmail.com) - * @version 1.0 - * @website https://www.zhyd.me - * @date 2019/1/31 12:26 - * @since 1.0 - */ -public class ApiUrlConst { - - /** - * 获取github access_token的地址 - */ - public static final String GITHUB_ACCESS_TOKEN_URL = "https://github.com/login/oauth/access_token"; - - /** - * 获取github用户信息的地址 - */ - public static final String GITHUB_USER_INFO_URL = "https://api.github.com/user"; - - /** - * 获取github授权地址 - */ - public static final String GITHUB_AUTHORIZE_URL = "https://github.com/login/oauth/authorize"; - - /** - * 获取weibo access_token的地址 - */ - public static final String WEIBO_ACCESS_TOKEN_URL = "https://api.weibo.com/oauth2/access_token"; - - /** - * 获取weibo用户信息的地址 - */ - public static final String WEIBO_USER_INFO_URL = "https://api.weibo.com/2/users/show.json"; - - /** - * 获取weibo授权地址 - */ - public static final String WEIBO_AUTHORIZE_URL = "https://api.weibo.com/oauth2/authorize"; - - /** - * 获取gitee access_token的地址 - */ - public static final String GITEE_ACCESS_TOKEN_URL = "https://gitee.com/oauth/token"; - - /** - * 获取gitee用户信息的地址 - */ - public static final String GITEE_USER_INFO_URL = "https://gitee.com/api/v5/user"; - - /** - * 获取gitee授权地址 - */ - public static final String GITEE_AUTHORIZE_URL = "https://gitee.com/oauth/authorize"; - - /** - * 获取钉钉登录二维码的地址 - */ - public static final String DING_TALK_QRCONNECT_URL = "https://oapi.dingtalk.com/connect/qrconnect"; - - /** - * 获取钉钉用户信息的地址 - */ - public static final String DING_TALK_USER_INFO_URL = "https://oapi.dingtalk.com/sns/getuserinfo_bycode"; - - /** - * 获取baidu access_token的地址 - */ - public static final String BAIDU_ACCESS_TOKEN_URL = "https://openapi.baidu.com/oauth/2.0/token"; - - /** - * 获取baidu用户信息的地址 - */ - public static final String BAIDU_USER_INFO_URL = "https://openapi.baidu.com/rest/2.0/passport/users/getInfo"; - - /** - * 获取baidu授权地址 - */ - public static final String BAIDU_AUTHORIZE_URL = "https://openapi.baidu.com/oauth/2.0/authorize"; - - /** - * 收回baidu授权的地址 - */ - public static final String BAIDU_REVOKE_URL = "https://openapi.baidu.com/rest/2.0/passport/auth/revokeAuthorization"; - - /** - * 获取csdn access_token的地址 - */ - public static final String CSDN_ACCESS_TOKEN_URL = "https://api.csdn.net/oauth2/access_token"; - - /** - * 获取csdn用户信息的地址 - */ - public static final String CSDN_USER_INFO_URL = "https://api.csdn.net/user/getinfo"; - - /** - * 获取csdn授权地址 - */ - public static final String CSDN_AUTHORIZE_URL = "https://api.csdn.net/oauth2/authorize"; - - /** - * 获取coding access_token的地址 - */ - public static final String CODING_ACCESS_TOKEN_URL = "https://coding.net/api/oauth/access_token"; - - /** - * 获取coding用户信息的地址 - */ - public static final String CODING_USER_INFO_URL = "https://coding.net/api/account/current_user"; - - /** - * 获取coding授权地址 - */ - public static final String CODING_AUTHORIZE_URL = "https://coding.net/oauth_authorize.html"; - - /** - * 获取腾讯云开发者平台 access_token的地址(coding升级后就变成腾讯云开发者平台了) - */ - public static final String TENCENT_ACCESS_TOKEN_URL = "https://dev.tencent.com/api/oauth/access_token"; - - /** - * 获取腾讯云开发者平台用户信息的地址(coding升级后就变成腾讯云开发者平台了) - */ - public static final String TENCENT_USER_INFO_URL = "https://dev.tencent.com/api/account/current_user"; - - /** - * 获取腾讯云开发者平台授权地址(coding升级后就变成腾讯云开发者平台了) - */ - public static final String TENCENT_AUTHORIZE_URL = "https://dev.tencent.com/oauth_authorize.html"; - - /** - * 获取oschina access_token的地址 - */ - public static final String OSCHINA_ACCESS_TOKEN_URL = "https://www.oschina.net/action/openapi/token"; - - /** - * 获取oschina用户信息的地址 - */ - public static final String OSCHINA_USER_INFO_URL = "https://www.oschina.net/action/openapi/user"; - - /** - * 获取oschina授权地址 - */ - public static final String OSCHINA_AUTHORIZE_URL = "https://www.oschina.net/action/oauth2/authorize"; - -} diff --git a/src/main/java/me/zhyd/oauth/request/BaseAuthRequest.java b/src/main/java/me/zhyd/oauth/request/BaseAuthRequest.java index f8a3650bcbdd0b162edf7c2054fc5bd4b25373cd..a0d73c657096ceda10b9a3692350e5c325459f85 100644 --- a/src/main/java/me/zhyd/oauth/request/BaseAuthRequest.java +++ b/src/main/java/me/zhyd/oauth/request/BaseAuthRequest.java @@ -28,7 +28,7 @@ public abstract class BaseAuthRequest implements AuthRequest { this.config = config; this.source = source; if (!AuthConfigChecker.isSupportedAuth(config)) { - throw new AuthException(ResponseStatus.UNSUPPORTED); + throw new AuthException(ResponseStatus.PARAMETER_INCOMPLETE); } } diff --git a/src/main/java/me/zhyd/oauth/request/ResponseStatus.java b/src/main/java/me/zhyd/oauth/request/ResponseStatus.java index 84e169edb821d676169816af4789d6729cbe8d59..1eee9d70f622c0e480156cf849c43e21f787db17 100644 --- a/src/main/java/me/zhyd/oauth/request/ResponseStatus.java +++ b/src/main/java/me/zhyd/oauth/request/ResponseStatus.java @@ -9,9 +9,10 @@ package me.zhyd.oauth.request; */ public enum ResponseStatus { SUCCESS(2000, "Success"), - FAILURE(5000, "Authentication failure"), + FAILURE(5000, "Failure"), NOT_IMPLEMENTED(5001, "Not Implemented"), - UNSUPPORTED(5002, "Unsupported authentication, please check the configuration."), + PARAMETER_INCOMPLETE(5002, "Parameter incomplete"), + UNSUPPORTED(5003, "Unsupported operation"), ; private int code; diff --git a/src/main/java/me/zhyd/oauth/utils/UrlBuilder.java b/src/main/java/me/zhyd/oauth/utils/UrlBuilder.java index a30981a7cf819dd8f4d29141b1a5d65f6a5bd37f..49160dfbe2168ec4b4af1bb0a6bc2a2b5c0f669c 100644 --- a/src/main/java/me/zhyd/oauth/utils/UrlBuilder.java +++ b/src/main/java/me/zhyd/oauth/utils/UrlBuilder.java @@ -1,6 +1,6 @@ package me.zhyd.oauth.utils; -import me.zhyd.oauth.consts.ApiUrlConst; +import me.zhyd.oauth.consts.ApiUrl; import java.text.MessageFormat; @@ -61,7 +61,7 @@ public class UrlBuilder { * @return full url */ public static String getGithubAccessTokenUrl(String clientId, String clientSecret, String code, String redirectUri) { - return MessageFormat.format(GITHUB_ACCESS_TOKEN_PATTERN, ApiUrlConst.GITHUB_ACCESS_TOKEN_URL, clientId, clientSecret, code, redirectUri); + return MessageFormat.format(GITHUB_ACCESS_TOKEN_PATTERN, ApiUrl.GITHUB.accessToken(), clientId, clientSecret, code, redirectUri); } /** @@ -71,7 +71,7 @@ public class UrlBuilder { * @return full url */ public static String getGithubUserInfoUrl(String token) { - return MessageFormat.format(GITHUB_USER_INFO_PATTERN, ApiUrlConst.GITHUB_USER_INFO_URL, token); + return MessageFormat.format(GITHUB_USER_INFO_PATTERN, ApiUrl.GITHUB.userInfo(), token); } /** @@ -82,7 +82,7 @@ public class UrlBuilder { * @return full url */ public static String getGithubAuthorizeUrl(String clientId, String redirectUrl) { - return MessageFormat.format(GITHUB_AUTHORIZE_PATTERN, ApiUrlConst.GITHUB_AUTHORIZE_URL, clientId, redirectUrl); + return MessageFormat.format(GITHUB_AUTHORIZE_PATTERN, ApiUrl.GITHUB.authorize(), clientId, redirectUrl); } /** @@ -95,7 +95,7 @@ public class UrlBuilder { * @return full url */ public static String getWeiboAccessTokenUrl(String clientId, String clientSecret, String code, String redirectUri) { - return MessageFormat.format(WEIBO_ACCESS_TOKEN_PATTERN, ApiUrlConst.WEIBO_ACCESS_TOKEN_URL, clientId, clientSecret, code, redirectUri); + return MessageFormat.format(WEIBO_ACCESS_TOKEN_PATTERN, ApiUrl.WEIBO.accessToken(), clientId, clientSecret, code, redirectUri); } /** @@ -105,7 +105,7 @@ public class UrlBuilder { * @return full url */ public static String getWeiboUserInfoUrl(String token) { - return MessageFormat.format(WEIBO_USER_INFO_PATTERN, ApiUrlConst.WEIBO_USER_INFO_URL, token); + return MessageFormat.format(WEIBO_USER_INFO_PATTERN, ApiUrl.WEIBO.userInfo(), token); } /** @@ -116,7 +116,7 @@ public class UrlBuilder { * @return full url */ public static String getWeiboAuthorizeUrl(String clientId, String redirectUrl) { - return MessageFormat.format(WEIBO_AUTHORIZE_PATTERN, ApiUrlConst.WEIBO_AUTHORIZE_URL, clientId, redirectUrl); + return MessageFormat.format(WEIBO_AUTHORIZE_PATTERN, ApiUrl.WEIBO.authorize(), clientId, redirectUrl); } /** @@ -129,7 +129,7 @@ public class UrlBuilder { * @return full url */ public static String getGiteeAccessTokenUrl(String clientId, String clientSecret, String code, String redirectUri) { - return MessageFormat.format(GITEE_ACCESS_TOKEN_PATTERN, ApiUrlConst.GITEE_ACCESS_TOKEN_URL, clientId, clientSecret, code, redirectUri); + return MessageFormat.format(GITEE_ACCESS_TOKEN_PATTERN, ApiUrl.GITEE.accessToken(), clientId, clientSecret, code, redirectUri); } /** @@ -139,7 +139,7 @@ public class UrlBuilder { * @return full url */ public static String getGiteeUserInfoUrl(String token) { - return MessageFormat.format(GITEE_USER_INFO_PATTERN, ApiUrlConst.GITEE_USER_INFO_URL, token); + return MessageFormat.format(GITEE_USER_INFO_PATTERN, ApiUrl.GITEE.userInfo(), token); } /** @@ -150,7 +150,7 @@ public class UrlBuilder { * @return json */ public static String getGiteeAuthorizeUrl(String clientId, String redirectUrl) { - return MessageFormat.format(GITEE_AUTHORIZE_PATTERN, ApiUrlConst.GITEE_AUTHORIZE_URL, clientId, redirectUrl); + return MessageFormat.format(GITEE_AUTHORIZE_PATTERN, ApiUrl.GITEE.authorize(), clientId, redirectUrl); } /** @@ -161,7 +161,7 @@ public class UrlBuilder { * @return full url */ public static String getDingTalkQrConnectUrl(String clientId, String redirectUrl) { - return MessageFormat.format(DING_TALK_QRCONNECT_PATTERN, ApiUrlConst.DING_TALK_QRCONNECT_URL, clientId, redirectUrl); + return MessageFormat.format(DING_TALK_QRCONNECT_PATTERN, ApiUrl.DINGTALK.authorize(), clientId, redirectUrl); } /** @@ -173,7 +173,7 @@ public class UrlBuilder { * @return full url */ public static String getDingTalkUserInfoUrl(String signature, String timestamp, String accessKey) { - return MessageFormat.format(DING_TALK_USER_INFO_PATTERN, ApiUrlConst.DING_TALK_USER_INFO_URL, signature, timestamp, accessKey); + return MessageFormat.format(DING_TALK_USER_INFO_PATTERN, ApiUrl.DINGTALK.userInfo(), signature, timestamp, accessKey); } /** @@ -186,7 +186,7 @@ public class UrlBuilder { * @return full url */ public static String getBaiduAccessTokenUrl(String clientId, String clientSecret, String code, String redirectUri) { - return MessageFormat.format(BAIDU_ACCESS_TOKEN_PATTERN, ApiUrlConst.BAIDU_ACCESS_TOKEN_URL, clientId, clientSecret, code, redirectUri); + return MessageFormat.format(BAIDU_ACCESS_TOKEN_PATTERN, ApiUrl.BAIDU.accessToken(), clientId, clientSecret, code, redirectUri); } /** @@ -196,7 +196,7 @@ public class UrlBuilder { * @return full url */ public static String getBaiduUserInfoUrl(String token) { - return MessageFormat.format(BAIDU_USER_INFO_PATTERN, ApiUrlConst.BAIDU_USER_INFO_URL, token); + return MessageFormat.format(BAIDU_USER_INFO_PATTERN, ApiUrl.BAIDU.userInfo(), token); } /** @@ -207,7 +207,7 @@ public class UrlBuilder { * @return json */ public static String getBaiduAuthorizeUrl(String clientId, String redirectUrl) { - return MessageFormat.format(BAIDU_AUTHORIZE_PATTERN, ApiUrlConst.BAIDU_AUTHORIZE_URL, clientId, redirectUrl); + return MessageFormat.format(BAIDU_AUTHORIZE_PATTERN, ApiUrl.BAIDU.authorize(), clientId, redirectUrl); } /** @@ -217,7 +217,7 @@ public class UrlBuilder { * @return json */ public static String getBaiduRevokeUrl(String accessToken) { - return MessageFormat.format(BAIDU_REVOKE_PATTERN, ApiUrlConst.BAIDU_REVOKE_URL, accessToken); + return MessageFormat.format(BAIDU_REVOKE_PATTERN, ApiUrl.BAIDU.revoke(), accessToken); } /** @@ -230,7 +230,7 @@ public class UrlBuilder { * @return full url */ public static String getCsdnAccessTokenUrl(String clientId, String clientSecret, String code, String redirectUri) { - return MessageFormat.format(CSDN_ACCESS_TOKEN_PATTERN, ApiUrlConst.CSDN_ACCESS_TOKEN_URL, clientId, clientSecret, code, redirectUri); + return MessageFormat.format(CSDN_ACCESS_TOKEN_PATTERN, ApiUrl.CSDN.accessToken(), clientId, clientSecret, code, redirectUri); } /** @@ -240,7 +240,7 @@ public class UrlBuilder { * @return full url */ public static String getCsdnUserInfoUrl(String token) { - return MessageFormat.format(CSDN_USER_INFO_PATTERN, ApiUrlConst.CSDN_USER_INFO_URL, token); + return MessageFormat.format(CSDN_USER_INFO_PATTERN, ApiUrl.CSDN.userInfo(), token); } /** @@ -251,7 +251,7 @@ public class UrlBuilder { * @return full url */ public static String getCsdnAuthorizeUrl(String clientId, String redirectUrl) { - return MessageFormat.format(CSDN_AUTHORIZE_PATTERN, ApiUrlConst.CSDN_AUTHORIZE_URL, clientId, redirectUrl); + return MessageFormat.format(CSDN_AUTHORIZE_PATTERN, ApiUrl.CSDN.authorize(), clientId, redirectUrl); } /** @@ -263,7 +263,7 @@ public class UrlBuilder { * @return full url */ public static String getCodingAccessTokenUrl(String clientId, String clientSecret, String code) { - return MessageFormat.format(CODING_ACCESS_TOKEN_PATTERN, ApiUrlConst.CODING_ACCESS_TOKEN_URL, clientId, clientSecret, code); + return MessageFormat.format(CODING_ACCESS_TOKEN_PATTERN, ApiUrl.CODING.accessToken(), clientId, clientSecret, code); } /** @@ -273,7 +273,7 @@ public class UrlBuilder { * @return full url */ public static String getCodingUserInfoUrl(String token) { - return MessageFormat.format(CODING_USER_INFO_PATTERN, ApiUrlConst.CODING_USER_INFO_URL, token); + return MessageFormat.format(CODING_USER_INFO_PATTERN, ApiUrl.CODING.userInfo(), token); } /** @@ -284,7 +284,7 @@ public class UrlBuilder { * @return full url */ public static String getCodingAuthorizeUrl(String clientId, String redirectUrl) { - return MessageFormat.format(CODING_AUTHORIZE_PATTERN, ApiUrlConst.CODING_AUTHORIZE_URL, clientId, redirectUrl); + return MessageFormat.format(CODING_AUTHORIZE_PATTERN, ApiUrl.CODING.authorize(), clientId, redirectUrl); } /** @@ -296,7 +296,7 @@ public class UrlBuilder { * @return full url */ public static String getTencentCloudAccessTokenUrl(String clientId, String clientSecret, String code) { - return MessageFormat.format(TENCENT_ACCESS_TOKEN_PATTERN, ApiUrlConst.TENCENT_ACCESS_TOKEN_URL, clientId, clientSecret, code); + return MessageFormat.format(TENCENT_ACCESS_TOKEN_PATTERN, ApiUrl.TENCENTCLOUD.accessToken(), clientId, clientSecret, code); } /** @@ -306,7 +306,7 @@ public class UrlBuilder { * @return full url */ public static String getTencentCloudUserInfoUrl(String token) { - return MessageFormat.format(TENCENT_USER_INFO_PATTERN, ApiUrlConst.TENCENT_USER_INFO_URL, token); + return MessageFormat.format(TENCENT_USER_INFO_PATTERN, ApiUrl.TENCENTCLOUD.userInfo(), token); } /** @@ -317,7 +317,7 @@ public class UrlBuilder { * @return full url */ public static String getTencentCloudAuthorizeUrl(String clientId, String redirectUrl) { - return MessageFormat.format(TENCENT_AUTHORIZE_PATTERN, ApiUrlConst.TENCENT_AUTHORIZE_URL, clientId, redirectUrl); + return MessageFormat.format(TENCENT_AUTHORIZE_PATTERN, ApiUrl.TENCENTCLOUD.authorize(), clientId, redirectUrl); } /** @@ -330,7 +330,7 @@ public class UrlBuilder { * @return full url */ public static String getOschinaAccessTokenUrl(String clientId, String clientSecret, String code, String redirectUri) { - return MessageFormat.format(OSCHINA_ACCESS_TOKEN_PATTERN, ApiUrlConst.OSCHINA_ACCESS_TOKEN_URL, clientId, clientSecret, code, redirectUri); + return MessageFormat.format(OSCHINA_ACCESS_TOKEN_PATTERN, ApiUrl.OSCHINA.accessToken(), clientId, clientSecret, code, redirectUri); } /** @@ -340,7 +340,7 @@ public class UrlBuilder { * @return full url */ public static String getOschinaUserInfoUrl(String token) { - return MessageFormat.format(OSCHINA_USER_INFO_PATTERN, ApiUrlConst.OSCHINA_USER_INFO_URL, token); + return MessageFormat.format(OSCHINA_USER_INFO_PATTERN, ApiUrl.OSCHINA.userInfo(), token); } /** @@ -351,6 +351,6 @@ public class UrlBuilder { * @return full url */ public static String getOschinaAuthorizeUrl(String clientId, String redirectUrl) { - return MessageFormat.format(OSCHINA_AUTHORIZE_PATTERN, ApiUrlConst.OSCHINA_AUTHORIZE_URL, clientId, redirectUrl); + return MessageFormat.format(OSCHINA_AUTHORIZE_PATTERN, ApiUrl.OSCHINA.authorize(), clientId, redirectUrl); } }