From 2d52e010da3d102fac70ceabfe5cea8c1c8215cb Mon Sep 17 00:00:00 2001 From: "yadong.zhang" Date: Fri, 3 Jul 2020 18:28:34 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E5=AE=8C=E6=88=90=E4=BA=AC=E4=B8=9C?= =?UTF-8?q?=C2=B7=E5=AE=99=E6=96=AF=E7=9A=84=E8=87=AA=E5=AE=9A=E4=B9=89=20?= =?UTF-8?q?scope?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhyd/oauth/enums/scope/AuthJdScope.java | 45 +++++++++++++++++++ .../me/zhyd/oauth/request/AuthJdRequest.java | 5 ++- 2 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 src/main/java/me/zhyd/oauth/enums/scope/AuthJdScope.java diff --git a/src/main/java/me/zhyd/oauth/enums/scope/AuthJdScope.java b/src/main/java/me/zhyd/oauth/enums/scope/AuthJdScope.java new file mode 100644 index 0000000..d1840c2 --- /dev/null +++ b/src/main/java/me/zhyd/oauth/enums/scope/AuthJdScope.java @@ -0,0 +1,45 @@ +package me.zhyd.oauth.enums.scope; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 京东平台 OAuth 授权范围 + * + * @author yadong.zhang (yadong.zhang0415(a)gmail.com) + * @version 1.0.0 + * @since 1.0.0 + */ +@Getter +@AllArgsConstructor +public enum AuthJdScope implements AuthScope { + + /** + * {@code scope} 含义,以{@code description} 为准 + */ + SNSAPI_BASE("snsapi_base", "基础授权", true); + + private String scope; + private String description; + private boolean isDefault; + + public static List getDefaultScopes() { + AuthJdScope[] scopes = AuthJdScope.values(); + List defaultScopes = new ArrayList<>(); + for (AuthJdScope scope : scopes) { + if (scope.isDefault()) { + defaultScopes.add(scope); + } + } + return defaultScopes; + } + + public static List listScope() { + return Arrays.stream(AuthJdScope.values()).map(AuthJdScope::getScope).collect(Collectors.toList()); + } +} diff --git a/src/main/java/me/zhyd/oauth/request/AuthJdRequest.java b/src/main/java/me/zhyd/oauth/request/AuthJdRequest.java index 830ba0f..9116f42 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthJdRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthJdRequest.java @@ -1,18 +1,19 @@ package me.zhyd.oauth.request; import com.alibaba.fastjson.JSONObject; -import me.zhyd.oauth.utils.HttpUtils; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.config.AuthDefaultSource; import me.zhyd.oauth.enums.AuthResponseStatus; import me.zhyd.oauth.enums.AuthUserGender; +import me.zhyd.oauth.enums.scope.AuthJdScope; import me.zhyd.oauth.exception.AuthException; 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.GlobalAuthUtils; +import me.zhyd.oauth.utils.HttpUtils; import me.zhyd.oauth.utils.UrlBuilder; import java.time.LocalDateTime; @@ -136,7 +137,7 @@ public class AuthJdRequest extends AuthDefaultRequest { .queryParam("app_key", config.getClientId()) .queryParam("response_type", "code") .queryParam("redirect_uri", config.getRedirectUri()) - .queryParam("scope", "snsapi_base") + .queryParam("scope", this.getScopes(" ", true, AuthJdScope.getDefaultScopes())) .queryParam("state", getRealState(state)) .build(); } -- GitLab