From 66ee684e1fa83f67b6c8ae521b4a99eff0681a03 Mon Sep 17 00:00:00 2001 From: Hongwei Peng Date: Thu, 18 Jul 2019 18:23:45 +0800 Subject: [PATCH] refactor: extract common method --- .../me/zhyd/oauth/request/AuthLinkedinRequest.java | 2 +- .../zhyd/oauth/request/AuthMicrosoftRequest.java | 8 ++++---- .../oauth/request/AuthStackOverflowRequest.java | 14 ++------------ .../java/me/zhyd/oauth/utils/GlobalAuthUtil.java | 7 +++++++ 4 files changed, 14 insertions(+), 17 deletions(-) diff --git a/src/main/java/me/zhyd/oauth/request/AuthLinkedinRequest.java b/src/main/java/me/zhyd/oauth/request/AuthLinkedinRequest.java index 110647f..ac48430 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthLinkedinRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthLinkedinRequest.java @@ -140,7 +140,7 @@ public class AuthLinkedinRequest extends AuthDefaultRequest { private AuthToken getToken(String accessTokenUrl) { HttpResponse response = HttpRequest.post(accessTokenUrl) .header("Host", "www.linkedin.com") - .header("Content-Type", "application/x-www-form-urlencoded") + .contentType("application/x-www-form-urlencoded") .execute(); String accessTokenStr = response.body(); JSONObject accessTokenObject = JSONObject.parseObject(accessTokenStr); diff --git a/src/main/java/me/zhyd/oauth/request/AuthMicrosoftRequest.java b/src/main/java/me/zhyd/oauth/request/AuthMicrosoftRequest.java index da30f93..71b2129 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthMicrosoftRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthMicrosoftRequest.java @@ -14,6 +14,8 @@ import me.zhyd.oauth.url.entity.AuthUserInfoEntity; import java.util.HashMap; import java.util.Map; +import static me.zhyd.oauth.utils.GlobalAuthUtil.parseQueryToMap; + /** * 微软登录 * @@ -40,12 +42,10 @@ public class AuthMicrosoftRequest extends AuthDefaultRequest { * @return token对象 */ private AuthToken getToken(String accessTokenUrl) { - Map paramMap = new HashMap<>(6); - HttpUtil.decodeParamMap(accessTokenUrl, "UTF-8").forEach(paramMap::put); HttpResponse response = HttpRequest.post(accessTokenUrl) .header("Host", "https://login.microsoftonline.com") - .header("Content-Type", "application/x-www-form-urlencoded") - .form(paramMap) + .contentType("application/x-www-form-urlencoded") + .form(parseQueryToMap(accessTokenUrl)) .execute(); String accessTokenStr = response.body(); JSONObject accessTokenObject = JSONObject.parseObject(accessTokenStr); diff --git a/src/main/java/me/zhyd/oauth/request/AuthStackOverflowRequest.java b/src/main/java/me/zhyd/oauth/request/AuthStackOverflowRequest.java index 5f002e7..be5c186 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthStackOverflowRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthStackOverflowRequest.java @@ -2,7 +2,6 @@ package me.zhyd.oauth.request; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; -import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.exception.AuthException; @@ -13,10 +12,8 @@ import me.zhyd.oauth.model.AuthUserGender; import me.zhyd.oauth.url.AuthStackOverflowUrlBuilder; import me.zhyd.oauth.url.entity.AuthUserInfoEntity; -import java.util.HashMap; -import java.util.Map; - import static me.zhyd.oauth.config.AuthSource.STACK_OVERFLOW; +import static me.zhyd.oauth.utils.GlobalAuthUtil.parseQueryToMap; /** * Stack Overflow登录 @@ -36,7 +33,7 @@ public class AuthStackOverflowRequest extends AuthDefaultRequest { String accessTokenUrl = this.urlBuilder.getAccessTokenUrl(authCallback.getCode()); HttpResponse response = HttpRequest.post(accessTokenUrl) .contentType("application/x-www-form-urlencoded") - .form(buildBody(accessTokenUrl)) + .form(parseQueryToMap(accessTokenUrl)) .execute(); JSONObject accessTokenObject = JSONObject.parseObject(response.body()); if (!response.isOk()) { @@ -68,11 +65,4 @@ public class AuthStackOverflowRequest extends AuthDefaultRequest { .source(STACK_OVERFLOW) .build(); } - - private Map buildBody(String accessTokenUrl) { - Map paramMap = new HashMap<>(); - HttpUtil.decodeParamMap(accessTokenUrl, "UTF-8").forEach(paramMap::put); - return paramMap; - } - } diff --git a/src/main/java/me/zhyd/oauth/utils/GlobalAuthUtil.java b/src/main/java/me/zhyd/oauth/utils/GlobalAuthUtil.java index 22bb699..f313704 100644 --- a/src/main/java/me/zhyd/oauth/utils/GlobalAuthUtil.java +++ b/src/main/java/me/zhyd/oauth/utils/GlobalAuthUtil.java @@ -1,6 +1,7 @@ package me.zhyd.oauth.utils; import cn.hutool.core.codec.Base64; +import cn.hutool.http.HttpUtil; import me.zhyd.oauth.exception.AuthException; import javax.crypto.Mac; @@ -82,6 +83,12 @@ public class GlobalAuthUtil { return res; } + public static Map parseQueryToMap(String url) { + Map paramMap = new HashMap<>(); + HttpUtil.decodeParamMap(url, "UTF-8").forEach(paramMap::put); + return paramMap; + } + public static boolean isHttpProtocol(String url) { if (StringUtils.isEmpty(url)) { return false; -- GitLab