diff --git a/sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/logic/SaOAuth2Template.java b/sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/logic/SaOAuth2Template.java index 0e7b4d3a..16bdcf83 100644 --- a/sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/logic/SaOAuth2Template.java +++ b/sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/logic/SaOAuth2Template.java @@ -98,6 +98,21 @@ public class SaOAuth2Template { SaOAuth2Exception.throwBy(scopeList.contains(scope) == false, "该 Access-Token 不具备 Scope:" + scope); } } + /** + * 校验:指定 Client-Token 是否具有指定 Scope + * @param clientToken Client-Token + * @param scopes 需要校验的权限列表 + */ + public void checkClientTokenScope(String clientToken, String... scopes) { + if(scopes == null || scopes.length == 0) { + return; + } + ClientTokenModel ct = checkClientToken(clientToken); + List scopeList = SaFoxUtil.convertStringToList(ct.scope); + for (String scope : scopes) { + SaOAuth2Exception.throwBy(scopeList.contains(scope) == false, "该 Client-Token 不具备 Scope:" + scope); + } + } // ------------------- generate 构建数据 /** diff --git a/sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/logic/SaOAuth2Util.java b/sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/logic/SaOAuth2Util.java index 1f78e97d..25004650 100644 --- a/sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/logic/SaOAuth2Util.java +++ b/sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/logic/SaOAuth2Util.java @@ -49,7 +49,7 @@ public class SaOAuth2Util { public static ClientTokenModel checkClientToken(String clientToken) { return saOAuth2Template.checkClientToken(clientToken); } - + /** * 获取 Access-Token 所代表的LoginId * @param accessToken Access-Token @@ -68,6 +68,15 @@ public class SaOAuth2Util { saOAuth2Template.checkScope(accessToken, scopes); } + /** + * 校验:指定 Client-Token 是否具有指定 Scope + * @param clientToken Client-Token + * @param scopes 需要校验的权限列表 + */ + public static void checkClientTokenScope(String clientToken, String... scopes) { + saOAuth2Template.checkClientTokenScope(clientToken, scopes); + } + // ------------------- generate 构建数据 /**