From b8d9f2ebc9f84412e4dc7792b3d9c191e6c2c5b4 Mon Sep 17 00:00:00 2001 From: "Yangkai.Shen" <237497819@qq.com> Date: Fri, 21 Jun 2019 15:32:30 +0800 Subject: [PATCH 1/4] =?UTF-8?q?:bug:=20=E4=BF=AE=E5=A4=8D=E5=B0=8F?= =?UTF-8?q?=E7=B1=B3=20scope=20=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/me/zhyd/oauth/utils/UrlBuilder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/me/zhyd/oauth/utils/UrlBuilder.java b/src/main/java/me/zhyd/oauth/utils/UrlBuilder.java index 7437cac..585d1c8 100644 --- a/src/main/java/me/zhyd/oauth/utils/UrlBuilder.java +++ b/src/main/java/me/zhyd/oauth/utils/UrlBuilder.java @@ -87,7 +87,7 @@ public class UrlBuilder { private static final String MICROSOFT_USER_INFO_PATTERN = "{0}"; private static final String MICROSOFT_REFRESH_TOKEN_PATTERN = "{0}?client_id={1}&client_secret={2}&scope=user.read%20mail.read&redirect_uri={3}&refresh_token={4}&grant_type=refresh_token"; - private static final String MI_AUTHORIZE_PATTERN = "{0}?client_id={1}&redirect_uri={2}&response_type=code&scope=user/profile%20user/openIdV2%20user/phoneAndEmail&state={3}&skip_confirm=false"; + private static final String MI_AUTHORIZE_PATTERN = "{0}?client_id={1}&redirect_uri={2}&response_type=code&scope=1%203%204%206&state={3}&skip_confirm=false"; private static final String MI_ACCESS_TOKEN_PATTERN = "{0}?client_id={1}&client_secret={2}&redirect_uri={3}&code={4}&grant_type=authorization_code"; private static final String MI_USER_INFO_PATTERN = "{0}?clientId={1}&token={2}"; private static final String MI_REFRESH_TOKEN_PATTERN = "{0}?client_id={1}&client_secret={2}&redirect_uri={3}&refresh_token={4}&grant_type=refresh_token"; From 9d1ab36e21e97a89848f347318bfd313934180bb Mon Sep 17 00:00:00 2001 From: "Yangkai.Shen" <237497819@qq.com> Date: Fri, 21 Jun 2019 15:34:38 +0800 Subject: [PATCH 2/4] =?UTF-8?q?:recycle:=20=E4=BD=BF=E7=94=A8=20StandardCh?= =?UTF-8?q?arsets.UTF=5F8=20=E6=9B=BF=E6=8D=A2=20=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E4=B8=B2UTF-8=201.=20=E5=AD=97=E7=AC=A6=E4=B8=B2=E5=BD=A2?= =?UTF-8?q?=E5=BC=8F=E7=9A=84=20utf-8=20=E4=BC=9A=E6=8A=9B=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=202.=20Charset=20=E7=9A=84=E6=80=A7=E8=83=BD=E8=A6=81?= =?UTF-8?q?=E5=A5=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../me/zhyd/oauth/utils/GlobalAuthUtil.java | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/main/java/me/zhyd/oauth/utils/GlobalAuthUtil.java b/src/main/java/me/zhyd/oauth/utils/GlobalAuthUtil.java index 245f11a..22bb699 100644 --- a/src/main/java/me/zhyd/oauth/utils/GlobalAuthUtil.java +++ b/src/main/java/me/zhyd/oauth/utils/GlobalAuthUtil.java @@ -8,6 +8,8 @@ import javax.crypto.spec.SecretKeySpec; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.util.Arrays; @@ -22,16 +24,12 @@ import java.util.Map; * @since 1.8 */ public class GlobalAuthUtil { - private static final String DEFAULT_ENCODING = "UTF-8"; + private static final Charset DEFAULT_ENCODING = StandardCharsets.UTF_8; private static final String ALGORITHM = "HmacSHA256"; public static String generateDingTalkSignature(String secretKey, String timestamp) { - try { - byte[] signData = sign(secretKey.getBytes(DEFAULT_ENCODING), timestamp.getBytes(DEFAULT_ENCODING)); - return urlEncode(new String(Base64.encode(signData, false))); - } catch (UnsupportedEncodingException ex) { - throw new AuthException("Unsupported algorithm: " + DEFAULT_ENCODING, ex); - } + byte[] signData = sign(secretKey.getBytes(DEFAULT_ENCODING), timestamp.getBytes(DEFAULT_ENCODING)); + return urlEncode(new String(Base64.encode(signData, false))); } private static byte[] sign(byte[] key, byte[] data) { @@ -52,9 +50,8 @@ public class GlobalAuthUtil { } try { - String encoded = URLEncoder.encode(value, GlobalAuthUtil.DEFAULT_ENCODING); - return encoded.replace("+", "%20").replace("*", "%2A") - .replace("~", "%7E").replace("/", "%2F"); + String encoded = URLEncoder.encode(value, GlobalAuthUtil.DEFAULT_ENCODING.displayName()); + return encoded.replace("+", "%20").replace("*", "%2A").replace("~", "%7E").replace("/", "%2F"); } catch (UnsupportedEncodingException e) { throw new AuthException("Failed To Encode Uri", e); } @@ -65,7 +62,7 @@ public class GlobalAuthUtil { return ""; } try { - return URLDecoder.decode(value, GlobalAuthUtil.DEFAULT_ENCODING); + return URLDecoder.decode(value, GlobalAuthUtil.DEFAULT_ENCODING.displayName()); } catch (UnsupportedEncodingException e) { throw new AuthException("Failed To Decode Uri", e); } From 374b71e5fecdaf912c7832e099f752e4920f835d Mon Sep 17 00:00:00 2001 From: "Yangkai.Shen" <237497819@qq.com> Date: Fri, 21 Jun 2019 15:36:41 +0800 Subject: [PATCH 3/4] =?UTF-8?q?:recycle:=20=E5=8E=BB=E9=99=A4=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E7=B1=BB=E6=96=B9=E6=B3=95=EF=BC=8C=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E5=8E=9F=E7=94=9F=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/me/zhyd/oauth/request/AuthMiRequest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/me/zhyd/oauth/request/AuthMiRequest.java b/src/main/java/me/zhyd/oauth/request/AuthMiRequest.java index fe40401..3686bee 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthMiRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthMiRequest.java @@ -63,7 +63,7 @@ public class AuthMiRequest extends BaseAuthRequest { .execute(); JSONObject userProfile = JSONObject.parseObject(userResponse.body()); - if (StrUtil.equalsIgnoreCase(userProfile.getString("result"), "error")) { + if ("error".equalsIgnoreCase(userProfile.getString("result"))) { throw new AuthException(userProfile.getString("description")); } @@ -86,7 +86,7 @@ public class AuthMiRequest extends BaseAuthRequest { HttpResponse emailResponse = HttpRequest.get(emailPhoneUrl).execute(); JSONObject userEmailPhone = JSONObject.parseObject(emailResponse.body()); - if (!StrUtil.equalsIgnoreCase(userEmailPhone.getString("result"), "error")) { + if (!"error".equalsIgnoreCase(userEmailPhone.getString("result"))) { JSONObject emailPhone = userEmailPhone.getJSONObject("data"); authUser.setEmail(emailPhone.getString("email")); } From 6f1cead8020b4fea4f8ebc08b314e4c8d91f0b98 Mon Sep 17 00:00:00 2001 From: "Yangkai.Shen" <237497819@qq.com> Date: Fri, 21 Jun 2019 15:37:42 +0800 Subject: [PATCH 4/4] =?UTF-8?q?:recycle:=20=E6=9E=9A=E4=B8=BE=E7=B1=BB?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=3D=3D=E6=9B=BF=E6=8D=A2equals=EF=BC=8C?= =?UTF-8?q?=E6=8F=90=E9=AB=98=E6=80=A7=E8=83=BD=20=E5=8F=82=E8=80=83?= =?UTF-8?q?=EF=BC=9Ahttps://github.com/giantray/stackoverflow-java-top-qa/?= =?UTF-8?q?blob/master/contents/comparing-java-enum-members-or-equals.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/me/zhyd/oauth/request/AuthBaiduRequest.java | 4 ++-- .../java/me/zhyd/oauth/request/AuthDingTalkRequest.java | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/main/java/me/zhyd/oauth/request/AuthBaiduRequest.java b/src/main/java/me/zhyd/oauth/request/AuthBaiduRequest.java index 2225cac..ff743d4 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthBaiduRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthBaiduRequest.java @@ -29,7 +29,7 @@ public class AuthBaiduRequest extends BaseAuthRequest { HttpResponse response = HttpRequest.post(accessTokenUrl).execute(); JSONObject accessTokenObject = JSONObject.parseObject(response.body()); AuthBaiduErrorCode errorCode = AuthBaiduErrorCode.getErrorCode(accessTokenObject.getString("error")); - if (!AuthBaiduErrorCode.OK.equals(errorCode)) { + if (AuthBaiduErrorCode.OK != errorCode) { throw new AuthException(errorCode.getDesc()); } return AuthToken.builder().accessToken(accessTokenObject.getString("access_token")).build(); @@ -42,7 +42,7 @@ public class AuthBaiduRequest extends BaseAuthRequest { String userInfo = response.body(); JSONObject object = JSONObject.parseObject(userInfo); AuthBaiduErrorCode errorCode = AuthBaiduErrorCode.getErrorCode(object.getString("error")); - if (!AuthBaiduErrorCode.OK.equals(errorCode)) { + if (AuthBaiduErrorCode.OK != errorCode) { throw new AuthException(errorCode.getDesc()); } return AuthUser.builder() diff --git a/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java b/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java index 05955e1..cf50b13 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java @@ -40,13 +40,12 @@ public class AuthDingTalkRequest extends BaseAuthRequest { String urlEncodeSignature = GlobalAuthUtil.generateDingTalkSignature(config.getClientSecret(), timestamp); JSONObject param = new JSONObject(); param.put("tmp_auth_code", code); - HttpResponse response = HttpRequest.post(UrlBuilder.getDingTalkUserInfoUrl(urlEncodeSignature, timestamp, config.getClientId())) - .body(param.toJSONString()) - .execute(); + HttpResponse response = HttpRequest.post(UrlBuilder.getDingTalkUserInfoUrl(urlEncodeSignature, timestamp, config + .getClientId())).body(param.toJSONString()).execute(); String userInfo = response.body(); JSONObject object = JSON.parseObject(userInfo); AuthDingTalkErrorCode errorCode = AuthDingTalkErrorCode.getErrorCode(object.getIntValue("errcode")); - if (!AuthDingTalkErrorCode.EC0.equals(errorCode)) { + if (AuthDingTalkErrorCode.EC0 != errorCode) { throw new AuthException(errorCode.getDesc()); } object = object.getJSONObject("user_info");