From bac494a7fc2679c1beb23dea1720803645ee9afe Mon Sep 17 00:00:00 2001 From: alexchan Date: Fri, 21 Oct 2022 16:22:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BC=81=E4=B8=9A=E5=BE=AE?= =?UTF-8?q?=E4=BF=A1=E7=9A=84=20redirect=5Furi=20=E6=B2=A1=E6=9C=89=20urlE?= =?UTF-8?q?ncode=20=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AuthWeChatEnterpriseWebRequest.java | 3 ++- .../AuthWeChatEnterpriseWebRequestTest.java | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 src/test/java/me/zhyd/oauth/request/AuthWeChatEnterpriseWebRequestTest.java diff --git a/src/main/java/me/zhyd/oauth/request/AuthWeChatEnterpriseWebRequest.java b/src/main/java/me/zhyd/oauth/request/AuthWeChatEnterpriseWebRequest.java index 3a9747f..5d51792 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthWeChatEnterpriseWebRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthWeChatEnterpriseWebRequest.java @@ -5,6 +5,7 @@ import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.scope.AuthWeChatEnterpriseWebScope; import me.zhyd.oauth.utils.AuthScopeUtils; +import me.zhyd.oauth.utils.GlobalAuthUtils; import me.zhyd.oauth.utils.UrlBuilder; /** @@ -28,7 +29,7 @@ public class AuthWeChatEnterpriseWebRequest extends AbstractAuthWeChatEnterprise public String authorize(String state) { return UrlBuilder.fromBaseUrl(source.authorize()) .queryParam("appid", config.getClientId()) - .queryParam("redirect_uri", config.getRedirectUri()) + .queryParam("redirect_uri", GlobalAuthUtils.urlEncode(config.getRedirectUri())) .queryParam("response_type", "code") .queryParam("scope", this.getScopes(",", false, AuthScopeUtils.getDefaultScopes(AuthWeChatEnterpriseWebScope.values()))) .queryParam("state", getRealState(state).concat("#wechat_redirect")) diff --git a/src/test/java/me/zhyd/oauth/request/AuthWeChatEnterpriseWebRequestTest.java b/src/test/java/me/zhyd/oauth/request/AuthWeChatEnterpriseWebRequestTest.java new file mode 100644 index 0000000..b0d1c93 --- /dev/null +++ b/src/test/java/me/zhyd/oauth/request/AuthWeChatEnterpriseWebRequestTest.java @@ -0,0 +1,20 @@ +package me.zhyd.oauth.request; + +import me.zhyd.oauth.config.AuthConfig; +import me.zhyd.oauth.utils.AuthStateUtils; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class AuthWeChatEnterpriseWebRequestTest { + + @Test + public void authorize() { + AuthRequest request = new AuthWeChatEnterpriseWebRequest(AuthConfig.builder() + .clientId("a") + .clientSecret("a") + .redirectUri("https://www.justauth.cn") + .build()); + System.out.println(request.authorize(AuthStateUtils.createState())); + } +} -- GitLab