🎨 完成 gitee 的自定义 scope
This commit is contained in:
55
src/main/java/me/zhyd/oauth/enums/scope/AuthGiteeScope.java
Normal file
55
src/main/java/me/zhyd/oauth/enums/scope/AuthGiteeScope.java
Normal file
@@ -0,0 +1,55 @@
|
||||
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;
|
||||
|
||||
/**
|
||||
* Gitee 平台 OAuth 授权范围
|
||||
*
|
||||
* @author yadong.zhang (yadong.zhang0415(a)gmail.com)
|
||||
* @version 1.0.0
|
||||
* @since 1.0.0
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum AuthGiteeScope implements AuthScope {
|
||||
|
||||
/**
|
||||
* {@code scope} 含义,以{@code description} 为准
|
||||
*/
|
||||
USER_INFO("user_info", "访问用户的个人信息、最新动态等", true),
|
||||
PROJECTS("projects", "查看、创建、更新用户的项目", false),
|
||||
PULL_REQUESTS("pull_requests", "查看、发布、更新用户的 Pull Request", false),
|
||||
ISSUES("issues", "查看、发布、更新用户的 Issue", false),
|
||||
NOTES("notes", "查看、发布、管理用户在项目、代码片段中的评论", false),
|
||||
KEYS("keys", "查看、部署、删除用户的公钥", false),
|
||||
HOOK("hook", "查看、部署、更新用户的 Webhook", false),
|
||||
GROUPS("groups", "查看、管理用户的组织以及成员", false),
|
||||
GISTS("gists", "查看、删除、更新用户的代码片段", false),
|
||||
ENTERPRISES("enterprises", "查看、管理用户的企业以及成员", false),
|
||||
EMAILS("emails", "查看用户的个人邮箱信息", false);
|
||||
|
||||
private String scope;
|
||||
private String description;
|
||||
private boolean isDefault;
|
||||
|
||||
public static List<AuthScope> getDefaultScopes() {
|
||||
AuthGiteeScope[] scopes = AuthGiteeScope.values();
|
||||
List<AuthScope> defaultScopes = new ArrayList<>();
|
||||
for (AuthGiteeScope scope : scopes) {
|
||||
if (scope.isDefault()) {
|
||||
defaultScopes.add(scope);
|
||||
}
|
||||
}
|
||||
return defaultScopes;
|
||||
}
|
||||
|
||||
public static List<String> listScope() {
|
||||
return Arrays.stream(AuthGiteeScope.values()).map(AuthGiteeScope::getScope).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
@@ -5,10 +5,13 @@ import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||
import me.zhyd.oauth.enums.AuthUserGender;
|
||||
import me.zhyd.oauth.enums.scope.AuthFacebookScope;
|
||||
import me.zhyd.oauth.enums.scope.AuthGiteeScope;
|
||||
import me.zhyd.oauth.exception.AuthException;
|
||||
import me.zhyd.oauth.model.AuthCallback;
|
||||
import me.zhyd.oauth.model.AuthToken;
|
||||
import me.zhyd.oauth.model.AuthUser;
|
||||
import me.zhyd.oauth.utils.UrlBuilder;
|
||||
|
||||
/**
|
||||
* Gitee登录
|
||||
@@ -72,4 +75,18 @@ public class AuthGiteeRequest extends AuthDefaultRequest {
|
||||
throw new AuthException(object.getString("error_description"));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state}
|
||||
*
|
||||
* @param state state 验证授权流程的参数,可以防止csrf
|
||||
* @return 返回授权地址
|
||||
*/
|
||||
@Override
|
||||
public String authorize(String state) {
|
||||
String authorizeUrl = super.authorize(state);
|
||||
return UrlBuilder.fromBaseUrl(authorizeUrl)
|
||||
.queryParam("scope", this.getScopes(" ", true, AuthGiteeScope.getDefaultScopes()))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user