mirror of
https://gitee.com/yadong.zhang/JustAuth.git
synced 2025-12-06 16:58:24 +08:00
Merge remote-tracking branch 'origin/dev' into dev
# Conflicts: # src/main/java/me/zhyd/oauth/config/AuthDefaultSource.java
This commit is contained in:
commit
6cc414997d
2
pom.xml
2
pom.xml
@ -58,7 +58,7 @@
|
|||||||
<maven-gpg-version>1.6</maven-gpg-version>
|
<maven-gpg-version>1.6</maven-gpg-version>
|
||||||
<maven.test.skip>false</maven.test.skip>
|
<maven.test.skip>false</maven.test.skip>
|
||||||
<simple-http.version>1.0.5</simple-http.version>
|
<simple-http.version>1.0.5</simple-http.version>
|
||||||
<lombok-version>1.18.20</lombok-version>
|
<lombok-version>1.18.30</lombok-version>
|
||||||
<junit-version>4.13.2</junit-version>
|
<junit-version>4.13.2</junit-version>
|
||||||
<fastjson-version>1.2.83</fastjson-version>
|
<fastjson-version>1.2.83</fastjson-version>
|
||||||
<alipay-sdk-version>4.17.5.ALL</alipay-sdk-version>
|
<alipay-sdk-version>4.17.5.ALL</alipay-sdk-version>
|
||||||
|
|||||||
@ -1321,6 +1321,33 @@ public enum AuthDefaultSource implements AuthSource {
|
|||||||
public Class<? extends AuthDefaultRequest> getTargetClass() {
|
public Class<? extends AuthDefaultRequest> getTargetClass() {
|
||||||
return AuthAppleRequest.class;
|
return AuthAppleRequest.class;
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
FIGMA{
|
||||||
|
@Override
|
||||||
|
public String authorize() {
|
||||||
|
return "https://www.figma.com/oauth";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String accessToken() {
|
||||||
|
return "https://www.figma.com/api/oauth/token";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String userInfo() {
|
||||||
|
return "https://api.figma.com/v1/me";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String refresh() {
|
||||||
|
return "https://www.figma.com/api/oauth/refresh";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Class<? extends AuthDefaultRequest> getTargetClass() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
29
src/main/java/me/zhyd/oauth/enums/scope/AuthFigmaScope.java
Normal file
29
src/main/java/me/zhyd/oauth/enums/scope/AuthFigmaScope.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package me.zhyd.oauth.enums.scope;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Figma OAuth 授权范围
|
||||||
|
* <a href="https://www.figma.com/developers/api#authentication-scopes">...</a>
|
||||||
|
*
|
||||||
|
* @author xiangqian
|
||||||
|
* @since 1.16.6
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@AllArgsConstructor
|
||||||
|
public enum AuthFigmaScope implements AuthScope {
|
||||||
|
|
||||||
|
FILE_CONTENT("files:read", "Read files, projects, users, versions, comments, components & styles, and webhooks", true),
|
||||||
|
VARIABLES("file_variables:read,file_variables:write", "Read and write to variables in Figma file. Note: this is only available to members in Enterprise organizations", false),
|
||||||
|
COMMENTS("file_comments:write", "Post and delete comments and comment reactions in files", false),
|
||||||
|
DEV_RESOURCES("file_dev_resources:read,file_dev_resources:write", "Read and write to dev resources in files", false),
|
||||||
|
LIBRARY_ANALYTICS("library_analytics:read", "Read your design system analytics", false),
|
||||||
|
WEBHOOKS("webhooks:write", "Create and manage webhooks", false);
|
||||||
|
|
||||||
|
private final String scope;
|
||||||
|
private final String description;
|
||||||
|
private final boolean isDefault;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -111,8 +111,8 @@ public abstract class AbstractAuthMicrosoftRequest extends AuthDefaultRequest {
|
|||||||
* @return AuthResponse
|
* @return AuthResponse
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse refresh(AuthToken authToken) {
|
public AuthResponse<AuthToken> refresh(AuthToken authToken) {
|
||||||
return AuthResponse.builder()
|
return AuthResponse.<AuthToken>builder()
|
||||||
.code(AuthResponseStatus.SUCCESS.getCode())
|
.code(AuthResponseStatus.SUCCESS.getCode())
|
||||||
.data(getToken(refreshTokenUrl(authToken.getRefreshToken())))
|
.data(getToken(refreshTokenUrl(authToken.getRefreshToken())))
|
||||||
.build();
|
.build();
|
||||||
|
|||||||
@ -175,7 +175,7 @@ public class AuthAlipayRequest extends AuthDefaultRequest {
|
|||||||
* @return AuthResponse
|
* @return AuthResponse
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse refresh(AuthToken authToken) {
|
public AuthResponse<AuthToken> refresh(AuthToken authToken) {
|
||||||
AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();
|
AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();
|
||||||
request.setGrantType("refresh_token");
|
request.setGrantType("refresh_token");
|
||||||
request.setRefreshToken(authToken.getRefreshToken());
|
request.setRefreshToken(authToken.getRefreshToken());
|
||||||
@ -188,7 +188,7 @@ public class AuthAlipayRequest extends AuthDefaultRequest {
|
|||||||
if (!response.isSuccess()) {
|
if (!response.isSuccess()) {
|
||||||
throw new AuthException(response.getSubMsg());
|
throw new AuthException(response.getSubMsg());
|
||||||
}
|
}
|
||||||
return AuthResponse.builder()
|
return AuthResponse.<AuthToken>builder()
|
||||||
.code(AuthResponseStatus.SUCCESS.getCode())
|
.code(AuthResponseStatus.SUCCESS.getCode())
|
||||||
.data(AuthToken.builder()
|
.data(AuthToken.builder()
|
||||||
.accessToken(response.getAccessToken())
|
.accessToken(response.getAccessToken())
|
||||||
|
|||||||
@ -94,13 +94,13 @@ public class AuthAmazonRequest extends AuthDefaultRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse refresh(AuthToken authToken) {
|
public AuthResponse<AuthToken> refresh(AuthToken authToken) {
|
||||||
Map<String, String> form = new HashMap<>(7);
|
Map<String, String> form = new HashMap<>(7);
|
||||||
form.put("grant_type", "refresh_token");
|
form.put("grant_type", "refresh_token");
|
||||||
form.put("refresh_token", authToken.getRefreshToken());
|
form.put("refresh_token", authToken.getRefreshToken());
|
||||||
form.put("client_id", config.getClientId());
|
form.put("client_id", config.getClientId());
|
||||||
form.put("client_secret", config.getClientSecret());
|
form.put("client_secret", config.getClientSecret());
|
||||||
return AuthResponse.builder()
|
return AuthResponse.<AuthToken>builder()
|
||||||
.code(AuthResponseStatus.SUCCESS.getCode())
|
.code(AuthResponseStatus.SUCCESS.getCode())
|
||||||
.data(getToken(form, this.source.refresh()))
|
.data(getToken(form, this.source.refresh()))
|
||||||
.build();
|
.build();
|
||||||
|
|||||||
@ -81,7 +81,7 @@ public class AuthBaiduRequest extends AuthDefaultRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse refresh(AuthToken authToken) {
|
public AuthResponse<AuthToken> refresh(AuthToken authToken) {
|
||||||
String refreshUrl = UrlBuilder.fromBaseUrl(this.source.refresh())
|
String refreshUrl = UrlBuilder.fromBaseUrl(this.source.refresh())
|
||||||
.queryParam("grant_type", "refresh_token")
|
.queryParam("grant_type", "refresh_token")
|
||||||
.queryParam("refresh_token", authToken.getRefreshToken())
|
.queryParam("refresh_token", authToken.getRefreshToken())
|
||||||
@ -89,7 +89,7 @@ public class AuthBaiduRequest extends AuthDefaultRequest {
|
|||||||
.queryParam("client_secret", this.config.getClientSecret())
|
.queryParam("client_secret", this.config.getClientSecret())
|
||||||
.build();
|
.build();
|
||||||
String response = new HttpUtils(config.getHttpConfig()).get(refreshUrl).getBody();
|
String response = new HttpUtils(config.getHttpConfig()).get(refreshUrl).getBody();
|
||||||
return AuthResponse.builder()
|
return AuthResponse.<AuthToken>builder()
|
||||||
.code(AuthResponseStatus.SUCCESS.getCode())
|
.code(AuthResponseStatus.SUCCESS.getCode())
|
||||||
.data(this.getAuthToken(response))
|
.data(this.getAuthToken(response))
|
||||||
.build();
|
.build();
|
||||||
|
|||||||
@ -70,7 +70,7 @@ public abstract class AuthDefaultRequest implements AuthRequest {
|
|||||||
* @return AuthResponse
|
* @return AuthResponse
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse login(AuthCallback authCallback) {
|
public AuthResponse<AuthUser> login(AuthCallback authCallback) {
|
||||||
try {
|
try {
|
||||||
checkCode(authCallback);
|
checkCode(authCallback);
|
||||||
if (!config.isIgnoreCheckState()) {
|
if (!config.isIgnoreCheckState()) {
|
||||||
@ -79,7 +79,7 @@ public abstract class AuthDefaultRequest implements AuthRequest {
|
|||||||
|
|
||||||
AuthToken authToken = this.getAccessToken(authCallback);
|
AuthToken authToken = this.getAccessToken(authCallback);
|
||||||
AuthUser user = this.getUserInfo(authToken);
|
AuthUser user = this.getUserInfo(authToken);
|
||||||
return AuthResponse.builder().code(AuthResponseStatus.SUCCESS.getCode()).data(user).build();
|
return AuthResponse.<AuthUser>builder().code(AuthResponseStatus.SUCCESS.getCode()).data(user).build();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.error("Failed to login with oauth authorization.", e);
|
Log.error("Failed to login with oauth authorization.", e);
|
||||||
return this.responseError(e);
|
return this.responseError(e);
|
||||||
@ -96,7 +96,7 @@ public abstract class AuthDefaultRequest implements AuthRequest {
|
|||||||
* @param e 具体的异常
|
* @param e 具体的异常
|
||||||
* @return AuthResponse
|
* @return AuthResponse
|
||||||
*/
|
*/
|
||||||
AuthResponse responseError(Exception e) {
|
AuthResponse<AuthUser> responseError(Exception e) {
|
||||||
int errorCode = AuthResponseStatus.FAILURE.getCode();
|
int errorCode = AuthResponseStatus.FAILURE.getCode();
|
||||||
String errorMsg = e.getMessage();
|
String errorMsg = e.getMessage();
|
||||||
if (e instanceof AuthException) {
|
if (e instanceof AuthException) {
|
||||||
@ -106,7 +106,7 @@ public abstract class AuthDefaultRequest implements AuthRequest {
|
|||||||
errorMsg = authException.getErrorMsg();
|
errorMsg = authException.getErrorMsg();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return AuthResponse.builder().code(errorCode).msg(errorMsg).build();
|
return AuthResponse.<AuthUser>builder().code(errorCode).msg(errorMsg).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -59,8 +59,8 @@ public class AuthDouyinRequest extends AuthDefaultRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse refresh(AuthToken oldToken) {
|
public AuthResponse<AuthToken> refresh(AuthToken oldToken) {
|
||||||
return AuthResponse.builder()
|
return AuthResponse.<AuthToken>builder()
|
||||||
.code(AuthResponseStatus.SUCCESS.getCode())
|
.code(AuthResponseStatus.SUCCESS.getCode())
|
||||||
.data(getToken(refreshTokenUrl(oldToken.getRefreshToken())))
|
.data(getToken(refreshTokenUrl(oldToken.getRefreshToken())))
|
||||||
.build();
|
.build();
|
||||||
|
|||||||
@ -117,7 +117,7 @@ public class AuthElemeRequest extends AuthDefaultRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse refresh(AuthToken oldToken) {
|
public AuthResponse<AuthToken> refresh(AuthToken oldToken) {
|
||||||
Map<String, String> form = new HashMap<>(4);
|
Map<String, String> form = new HashMap<>(4);
|
||||||
form.put("refresh_token", oldToken.getRefreshToken());
|
form.put("refresh_token", oldToken.getRefreshToken());
|
||||||
form.put("grant_type", "refresh_token");
|
form.put("grant_type", "refresh_token");
|
||||||
@ -129,7 +129,7 @@ public class AuthElemeRequest extends AuthDefaultRequest {
|
|||||||
|
|
||||||
this.checkResponse(object);
|
this.checkResponse(object);
|
||||||
|
|
||||||
return AuthResponse.builder()
|
return AuthResponse.<AuthToken>builder()
|
||||||
.code(AuthResponseStatus.SUCCESS.getCode())
|
.code(AuthResponseStatus.SUCCESS.getCode())
|
||||||
.data(AuthToken.builder()
|
.data(AuthToken.builder()
|
||||||
.accessToken(object.getString("access_token"))
|
.accessToken(object.getString("access_token"))
|
||||||
|
|||||||
@ -98,12 +98,12 @@ public class AuthFeishuRequest extends AuthDefaultRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse refresh(AuthToken authToken) {
|
public AuthResponse<AuthToken> refresh(AuthToken authToken) {
|
||||||
JSONObject requestObject = new JSONObject();
|
JSONObject requestObject = new JSONObject();
|
||||||
requestObject.put("app_access_token", this.getAppAccessToken());
|
requestObject.put("app_access_token", this.getAppAccessToken());
|
||||||
requestObject.put("grant_type", "refresh_token");
|
requestObject.put("grant_type", "refresh_token");
|
||||||
requestObject.put("refresh_token", authToken.getRefreshToken());
|
requestObject.put("refresh_token", authToken.getRefreshToken());
|
||||||
return AuthResponse.builder()
|
return AuthResponse.<AuthToken>builder()
|
||||||
.code(AuthResponseStatus.SUCCESS.getCode())
|
.code(AuthResponseStatus.SUCCESS.getCode())
|
||||||
.data(getToken(requestObject, this.source.refresh()))
|
.data(getToken(requestObject, this.source.refresh()))
|
||||||
.build();
|
.build();
|
||||||
|
|||||||
118
src/main/java/me/zhyd/oauth/request/AuthFigmaRequest.java
Normal file
118
src/main/java/me/zhyd/oauth/request/AuthFigmaRequest.java
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
package me.zhyd.oauth.request;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.xkcoding.http.support.HttpHeader;
|
||||||
|
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.scope.AuthFigmaScope;
|
||||||
|
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.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Figma登录
|
||||||
|
* @author xiangqian
|
||||||
|
* @since 1.16.6
|
||||||
|
*/
|
||||||
|
public class AuthFigmaRequest extends AuthDefaultRequest {
|
||||||
|
public AuthFigmaRequest(AuthConfig config) {
|
||||||
|
super(config, AuthDefaultSource.FIGMA);
|
||||||
|
}
|
||||||
|
|
||||||
|
public AuthFigmaRequest(AuthConfig config, AuthStateCache authStateCache) {
|
||||||
|
super(config, AuthDefaultSource.FIGMA, authStateCache);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String authorize(String state) {
|
||||||
|
return UrlBuilder.fromBaseUrl(super.authorize(state))
|
||||||
|
.queryParam("scope", this.getScopes(",", true, AuthScopeUtils.getDefaultScopes(AuthFigmaScope.values())))
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected AuthToken getAccessToken(AuthCallback authCallback) {
|
||||||
|
HttpHeader header = new HttpHeader()
|
||||||
|
.add("content-type", "application/x-www-form-urlencoded")
|
||||||
|
.add("Authorization", "Basic " + Base64Utils.encode(config.getClientId().concat(":").concat(config.getClientSecret())));
|
||||||
|
|
||||||
|
String response = new HttpUtils(config.getHttpConfig()).post(super.accessTokenUrl(authCallback.getCode()), null, header, true).getBody();
|
||||||
|
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||||
|
|
||||||
|
this.checkResponse(accessTokenObject);
|
||||||
|
|
||||||
|
return AuthToken.builder()
|
||||||
|
.accessToken(accessTokenObject.getString("access_token"))
|
||||||
|
.refreshToken(accessTokenObject.getString("refresh_token"))
|
||||||
|
.scope(accessTokenObject.getString("scope"))
|
||||||
|
.userId(accessTokenObject.getString("user_id"))
|
||||||
|
.expireIn(accessTokenObject.getIntValue("expires_in"))
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AuthResponse<AuthToken> refresh(AuthToken authToken) {
|
||||||
|
HttpHeader header = new HttpHeader().add("content-type", "application/x-www-form-urlencoded");
|
||||||
|
String response = new HttpUtils(config.getHttpConfig()).post(this.refreshTokenUrl(authToken.getRefreshToken()), null, header, false).getBody();
|
||||||
|
JSONObject dataObj = JSONObject.parseObject(response);
|
||||||
|
|
||||||
|
this.checkResponse(dataObj);
|
||||||
|
|
||||||
|
return AuthResponse.<AuthToken>builder()
|
||||||
|
.code(AuthResponseStatus.SUCCESS.getCode())
|
||||||
|
.data(AuthToken.builder()
|
||||||
|
.accessToken(dataObj.getString("access_token"))
|
||||||
|
.openId(dataObj.getString("open_id"))
|
||||||
|
.expireIn(dataObj.getIntValue("expires_in"))
|
||||||
|
.refreshToken(dataObj.getString("refresh_token"))
|
||||||
|
.scope(dataObj.getString("scope"))
|
||||||
|
.build())
|
||||||
|
.build();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String refreshTokenUrl(String refreshToken) {
|
||||||
|
return UrlBuilder.fromBaseUrl(source.refresh())
|
||||||
|
.queryParam("client_id", config.getClientId())
|
||||||
|
.queryParam("client_secret", config.getClientSecret())
|
||||||
|
.queryParam("refresh_token", refreshToken)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected AuthUser getUserInfo(AuthToken authToken) {
|
||||||
|
HttpHeader header = new HttpHeader().add("Authorization", "Bearer " + authToken.getAccessToken());
|
||||||
|
String response = new HttpUtils(config.getHttpConfig()).get(super.userInfoUrl(authToken), null, header, false).getBody();
|
||||||
|
JSONObject dataObj = JSONObject.parseObject(response);
|
||||||
|
|
||||||
|
this.checkResponse(dataObj);
|
||||||
|
|
||||||
|
return AuthUser.builder()
|
||||||
|
.rawUserInfo(dataObj)
|
||||||
|
.uuid(dataObj.getString("id"))
|
||||||
|
.username(dataObj.getString("handle"))
|
||||||
|
.avatar(dataObj.getString("img_url"))
|
||||||
|
.email(dataObj.getString("email"))
|
||||||
|
.token(authToken)
|
||||||
|
.source(source.toString())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验响应结果
|
||||||
|
*
|
||||||
|
* @param object 接口返回的结果
|
||||||
|
*/
|
||||||
|
private void checkResponse(JSONObject object) {
|
||||||
|
if (object.containsKey("error")) {
|
||||||
|
throw new AuthException(object.getString("error") + ":" + object.getString("message"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -99,7 +99,7 @@ public class AuthHuaweiRequest extends AuthDefaultRequest {
|
|||||||
* @return AuthResponse
|
* @return AuthResponse
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse refresh(AuthToken authToken) {
|
public AuthResponse<AuthToken> refresh(AuthToken authToken) {
|
||||||
Map<String, String> form = new HashMap<>(7);
|
Map<String, String> form = new HashMap<>(7);
|
||||||
form.put("client_id", config.getClientId());
|
form.put("client_id", config.getClientId());
|
||||||
form.put("client_secret", config.getClientSecret());
|
form.put("client_secret", config.getClientSecret());
|
||||||
@ -107,7 +107,7 @@ public class AuthHuaweiRequest extends AuthDefaultRequest {
|
|||||||
form.put("grant_type", "refresh_token");
|
form.put("grant_type", "refresh_token");
|
||||||
|
|
||||||
String response = new HttpUtils(config.getHttpConfig()).post(source.refresh(), form, false).getBody();
|
String response = new HttpUtils(config.getHttpConfig()).post(source.refresh(), form, false).getBody();
|
||||||
return AuthResponse.builder().code(SUCCESS.getCode()).data(getAuthToken(response)).build();
|
return AuthResponse.<AuthToken>builder().code(SUCCESS.getCode()).data(getAuthToken(response)).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
private AuthToken getAuthToken(String response) {
|
private AuthToken getAuthToken(String response) {
|
||||||
|
|||||||
@ -103,7 +103,7 @@ public class AuthJdRequest extends AuthDefaultRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse refresh(AuthToken oldToken) {
|
public AuthResponse<AuthToken> refresh(AuthToken oldToken) {
|
||||||
Map<String, String> params = new HashMap<>(7);
|
Map<String, String> params = new HashMap<>(7);
|
||||||
params.put("app_key", config.getClientId());
|
params.put("app_key", config.getClientId());
|
||||||
params.put("app_secret", config.getClientSecret());
|
params.put("app_secret", config.getClientSecret());
|
||||||
@ -114,7 +114,7 @@ public class AuthJdRequest extends AuthDefaultRequest {
|
|||||||
|
|
||||||
this.checkResponse(object);
|
this.checkResponse(object);
|
||||||
|
|
||||||
return AuthResponse.builder()
|
return AuthResponse.<AuthToken>builder()
|
||||||
.code(AuthResponseStatus.SUCCESS.getCode())
|
.code(AuthResponseStatus.SUCCESS.getCode())
|
||||||
.data(AuthToken.builder()
|
.data(AuthToken.builder()
|
||||||
.accessToken(object.getString("access_token"))
|
.accessToken(object.getString("access_token"))
|
||||||
|
|||||||
@ -109,8 +109,8 @@ public class AuthKujialeRequest extends AuthDefaultRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse refresh(AuthToken authToken) {
|
public AuthResponse<AuthToken> refresh(AuthToken authToken) {
|
||||||
String response = new HttpUtils(config.getHttpConfig()).post(refreshTokenUrl(authToken.getRefreshToken())).getBody();
|
String response = new HttpUtils(config.getHttpConfig()).post(refreshTokenUrl(authToken.getRefreshToken())).getBody();
|
||||||
return AuthResponse.builder().code(AuthResponseStatus.SUCCESS.getCode()).data(getAuthToken(response)).build();
|
return AuthResponse.<AuthToken>builder().code(AuthResponseStatus.SUCCESS.getCode()).data(getAuthToken(response)).build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -88,7 +88,7 @@ public class AuthLineRequest extends AuthDefaultRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse refresh(AuthToken oldToken) {
|
public AuthResponse<AuthToken> refresh(AuthToken oldToken) {
|
||||||
Map<String, String> params = new HashMap<>();
|
Map<String, String> params = new HashMap<>();
|
||||||
params.put("grant_type", "refresh_token");
|
params.put("grant_type", "refresh_token");
|
||||||
params.put("refresh_token", oldToken.getRefreshToken());
|
params.put("refresh_token", oldToken.getRefreshToken());
|
||||||
@ -96,7 +96,7 @@ public class AuthLineRequest extends AuthDefaultRequest {
|
|||||||
params.put("client_secret", config.getClientSecret());
|
params.put("client_secret", config.getClientSecret());
|
||||||
String response = new HttpUtils(config.getHttpConfig()).post(source.accessToken(), params, false).getBody();
|
String response = new HttpUtils(config.getHttpConfig()).post(source.accessToken(), params, false).getBody();
|
||||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||||
return AuthResponse.builder()
|
return AuthResponse.<AuthToken>builder()
|
||||||
.code(AuthResponseStatus.SUCCESS.getCode())
|
.code(AuthResponseStatus.SUCCESS.getCode())
|
||||||
.data(AuthToken.builder()
|
.data(AuthToken.builder()
|
||||||
.accessToken(accessTokenObject.getString("access_token"))
|
.accessToken(accessTokenObject.getString("access_token"))
|
||||||
|
|||||||
@ -78,7 +78,7 @@ public class AuthMeituanRequest extends AuthDefaultRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse refresh(AuthToken oldToken) {
|
public AuthResponse<AuthToken> refresh(AuthToken oldToken) {
|
||||||
Map<String, String> form = new HashMap<>(7);
|
Map<String, String> form = new HashMap<>(7);
|
||||||
form.put("app_id", config.getClientId());
|
form.put("app_id", config.getClientId());
|
||||||
form.put("secret", config.getClientSecret());
|
form.put("secret", config.getClientSecret());
|
||||||
@ -90,7 +90,7 @@ public class AuthMeituanRequest extends AuthDefaultRequest {
|
|||||||
|
|
||||||
this.checkResponse(object);
|
this.checkResponse(object);
|
||||||
|
|
||||||
return AuthResponse.builder()
|
return AuthResponse.<AuthToken>builder()
|
||||||
.code(AuthResponseStatus.SUCCESS.getCode())
|
.code(AuthResponseStatus.SUCCESS.getCode())
|
||||||
.data(AuthToken.builder()
|
.data(AuthToken.builder()
|
||||||
.accessToken(object.getString("access_token"))
|
.accessToken(object.getString("access_token"))
|
||||||
|
|||||||
@ -110,8 +110,8 @@ public class AuthMiRequest extends AuthDefaultRequest {
|
|||||||
* @return AuthResponse
|
* @return AuthResponse
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse refresh(AuthToken authToken) {
|
public AuthResponse<AuthToken> refresh(AuthToken authToken) {
|
||||||
return AuthResponse.builder()
|
return AuthResponse.<AuthToken>builder()
|
||||||
.code(AuthResponseStatus.SUCCESS.getCode())
|
.code(AuthResponseStatus.SUCCESS.getCode())
|
||||||
.data(getToken(refreshTokenUrl(authToken.getRefreshToken())))
|
.data(getToken(refreshTokenUrl(authToken.getRefreshToken())))
|
||||||
.build();
|
.build();
|
||||||
|
|||||||
@ -64,15 +64,15 @@ public class AuthOktaRequest extends AuthDefaultRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse refresh(AuthToken authToken) {
|
public AuthResponse<AuthToken> refresh(AuthToken authToken) {
|
||||||
if (null == authToken.getRefreshToken()) {
|
if (null == authToken.getRefreshToken()) {
|
||||||
return AuthResponse.builder()
|
return AuthResponse.<AuthToken>builder()
|
||||||
.code(AuthResponseStatus.ILLEGAL_TOKEN.getCode())
|
.code(AuthResponseStatus.ILLEGAL_TOKEN.getCode())
|
||||||
.msg(AuthResponseStatus.ILLEGAL_TOKEN.getMsg())
|
.msg(AuthResponseStatus.ILLEGAL_TOKEN.getMsg())
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
String refreshUrl = refreshTokenUrl(authToken.getRefreshToken());
|
String refreshUrl = refreshTokenUrl(authToken.getRefreshToken());
|
||||||
return AuthResponse.builder()
|
return AuthResponse.<AuthToken>builder()
|
||||||
.code(AuthResponseStatus.SUCCESS.getCode())
|
.code(AuthResponseStatus.SUCCESS.getCode())
|
||||||
.data(this.getAuthToken(refreshUrl))
|
.data(this.getAuthToken(refreshUrl))
|
||||||
.build();
|
.build();
|
||||||
|
|||||||
@ -39,9 +39,9 @@ public class AuthQqRequest extends AuthDefaultRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse refresh(AuthToken authToken) {
|
public AuthResponse<AuthToken> refresh(AuthToken authToken) {
|
||||||
String response = new HttpUtils(config.getHttpConfig()).get(refreshTokenUrl(authToken.getRefreshToken())).getBody();
|
String response = new HttpUtils(config.getHttpConfig()).get(refreshTokenUrl(authToken.getRefreshToken())).getBody();
|
||||||
return AuthResponse.builder().code(AuthResponseStatus.SUCCESS.getCode()).data(getAuthToken(response)).build();
|
return AuthResponse.<AuthToken>builder().code(AuthResponseStatus.SUCCESS.getCode()).data(getAuthToken(response)).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -60,8 +60,8 @@ public class AuthRenrenRequest extends AuthDefaultRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse refresh(AuthToken authToken) {
|
public AuthResponse<AuthToken> refresh(AuthToken authToken) {
|
||||||
return AuthResponse.builder()
|
return AuthResponse.<AuthToken>builder()
|
||||||
.code(SUCCESS.getCode())
|
.code(SUCCESS.getCode())
|
||||||
.data(getToken(this.refreshTokenUrl(authToken.getRefreshToken())))
|
.data(getToken(this.refreshTokenUrl(authToken.getRefreshToken())))
|
||||||
.build();
|
.build();
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import me.zhyd.oauth.exception.AuthException;
|
|||||||
import me.zhyd.oauth.model.AuthCallback;
|
import me.zhyd.oauth.model.AuthCallback;
|
||||||
import me.zhyd.oauth.model.AuthResponse;
|
import me.zhyd.oauth.model.AuthResponse;
|
||||||
import me.zhyd.oauth.model.AuthToken;
|
import me.zhyd.oauth.model.AuthToken;
|
||||||
|
import me.zhyd.oauth.model.AuthUser;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* JustAuth {@code Request}公共接口,所有平台的{@code Request}都需要实现该接口
|
* JustAuth {@code Request}公共接口,所有平台的{@code Request}都需要实现该接口
|
||||||
@ -49,7 +50,7 @@ public interface AuthRequest {
|
|||||||
* @param authCallback 用于接收回调参数的实体
|
* @param authCallback 用于接收回调参数的实体
|
||||||
* @return 返回登录成功后的用户信息
|
* @return 返回登录成功后的用户信息
|
||||||
*/
|
*/
|
||||||
default AuthResponse login(AuthCallback authCallback) {
|
default AuthResponse<AuthUser> login(AuthCallback authCallback) {
|
||||||
throw new AuthException(AuthResponseStatus.NOT_IMPLEMENTED);
|
throw new AuthException(AuthResponseStatus.NOT_IMPLEMENTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,7 +70,7 @@ public interface AuthRequest {
|
|||||||
* @param authToken 登录成功后返回的Token信息
|
* @param authToken 登录成功后返回的Token信息
|
||||||
* @return AuthResponse
|
* @return AuthResponse
|
||||||
*/
|
*/
|
||||||
default AuthResponse refresh(AuthToken authToken) {
|
default AuthResponse<AuthToken> refresh(AuthToken authToken) {
|
||||||
throw new AuthException(AuthResponseStatus.NOT_IMPLEMENTED);
|
throw new AuthException(AuthResponseStatus.NOT_IMPLEMENTED);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -79,11 +79,11 @@ public class AuthTaobaoRequest extends AuthDefaultRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse refresh(AuthToken oldToken) {
|
public AuthResponse<AuthToken> refresh(AuthToken oldToken) {
|
||||||
String tokenUrl = refreshTokenUrl(oldToken.getRefreshToken());
|
String tokenUrl = refreshTokenUrl(oldToken.getRefreshToken());
|
||||||
String response = new HttpUtils(config.getHttpConfig()).post(tokenUrl).getBody();
|
String response = new HttpUtils(config.getHttpConfig()).post(tokenUrl).getBody();
|
||||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||||
return AuthResponse.builder()
|
return AuthResponse.<AuthToken>builder()
|
||||||
.code(AuthResponseStatus.SUCCESS.getCode())
|
.code(AuthResponseStatus.SUCCESS.getCode())
|
||||||
.data(this.getAuthToken(accessTokenObject))
|
.data(this.getAuthToken(accessTokenObject))
|
||||||
.build();
|
.build();
|
||||||
|
|||||||
@ -87,7 +87,7 @@ public class AuthTeambitionRequest extends AuthDefaultRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse refresh(AuthToken oldToken) {
|
public AuthResponse<AuthToken> refresh(AuthToken oldToken) {
|
||||||
String uid = oldToken.getUid();
|
String uid = oldToken.getUid();
|
||||||
String refreshToken = oldToken.getRefreshToken();
|
String refreshToken = oldToken.getRefreshToken();
|
||||||
|
|
||||||
@ -99,7 +99,7 @@ public class AuthTeambitionRequest extends AuthDefaultRequest {
|
|||||||
|
|
||||||
this.checkResponse(refreshTokenObject);
|
this.checkResponse(refreshTokenObject);
|
||||||
|
|
||||||
return AuthResponse.builder()
|
return AuthResponse.<AuthToken>builder()
|
||||||
.code(AuthResponseStatus.SUCCESS.getCode())
|
.code(AuthResponseStatus.SUCCESS.getCode())
|
||||||
.data(AuthToken.builder()
|
.data(AuthToken.builder()
|
||||||
.accessToken(refreshTokenObject.getString("access_token"))
|
.accessToken(refreshTokenObject.getString("access_token"))
|
||||||
|
|||||||
@ -41,14 +41,14 @@ public class AuthWeChatEnterpriseThirdQrcodeRequest extends AbstractAuthWeChatEn
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse login(AuthCallback authCallback) {
|
public AuthResponse<AuthUser> login(AuthCallback authCallback) {
|
||||||
try {
|
try {
|
||||||
if (!config.isIgnoreCheckState()) {
|
if (!config.isIgnoreCheckState()) {
|
||||||
AuthChecker.checkState(authCallback.getState(), source, authStateCache);
|
AuthChecker.checkState(authCallback.getState(), source, authStateCache);
|
||||||
}
|
}
|
||||||
AuthToken authToken = this.getAccessToken(authCallback);
|
AuthToken authToken = this.getAccessToken(authCallback);
|
||||||
AuthUser user = this.getUserInfo(authToken);
|
AuthUser user = this.getUserInfo(authToken);
|
||||||
return AuthResponse.builder().code(AuthResponseStatus.SUCCESS.getCode()).data(user).build();
|
return AuthResponse.<AuthUser>builder().code(AuthResponseStatus.SUCCESS.getCode()).data(user).build();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.error("Failed to login with oauth authorization.", e);
|
Log.error("Failed to login with oauth authorization.", e);
|
||||||
return this.responseError(e);
|
return this.responseError(e);
|
||||||
|
|||||||
@ -79,8 +79,8 @@ public class AuthWeChatMpRequest extends AuthDefaultRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse refresh(AuthToken oldToken) {
|
public AuthResponse<AuthToken> refresh(AuthToken oldToken) {
|
||||||
return AuthResponse.builder()
|
return AuthResponse.<AuthToken>builder()
|
||||||
.code(AuthResponseStatus.SUCCESS.getCode())
|
.code(AuthResponseStatus.SUCCESS.getCode())
|
||||||
.data(this.getToken(refreshTokenUrl(oldToken.getRefreshToken())))
|
.data(this.getToken(refreshTokenUrl(oldToken.getRefreshToken())))
|
||||||
.build();
|
.build();
|
||||||
|
|||||||
@ -69,8 +69,8 @@ public class AuthWeChatOpenRequest extends AuthDefaultRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse refresh(AuthToken oldToken) {
|
public AuthResponse<AuthToken> refresh(AuthToken oldToken) {
|
||||||
return AuthResponse.builder()
|
return AuthResponse.<AuthToken>builder()
|
||||||
.code(AuthResponseStatus.SUCCESS.getCode())
|
.code(AuthResponseStatus.SUCCESS.getCode())
|
||||||
.data(this.getToken(refreshTokenUrl(oldToken.getRefreshToken())))
|
.data(this.getToken(refreshTokenUrl(oldToken.getRefreshToken())))
|
||||||
.build();
|
.build();
|
||||||
|
|||||||
@ -87,8 +87,8 @@ public class AuthExtendRequest extends AuthDefaultRequest {
|
|||||||
* @return AuthResponse
|
* @return AuthResponse
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public AuthResponse refresh(AuthToken authToken) {
|
public AuthResponse<AuthToken> refresh(AuthToken authToken) {
|
||||||
return AuthResponse.builder()
|
return AuthResponse.<AuthToken>builder()
|
||||||
.code(AuthResponseStatus.SUCCESS.getCode())
|
.code(AuthResponseStatus.SUCCESS.getCode())
|
||||||
.data(AuthToken.builder()
|
.data(AuthToken.builder()
|
||||||
.openId("openId")
|
.openId("openId")
|
||||||
|
|||||||
@ -45,10 +45,10 @@ public class AuthExtendRequestTest {
|
|||||||
.code("code")
|
.code("code")
|
||||||
.state(state)
|
.state(state)
|
||||||
.build();
|
.build();
|
||||||
AuthResponse response = request.login(callback);
|
AuthResponse<AuthUser> response = request.login(callback);
|
||||||
Assert.assertNotNull(response);
|
Assert.assertNotNull(response);
|
||||||
|
|
||||||
AuthUser user = (AuthUser) response.getData();
|
AuthUser user = response.getData();
|
||||||
Assert.assertNotNull(user);
|
Assert.assertNotNull(user);
|
||||||
System.out.println(JSON.toJSONString(user));
|
System.out.println(JSON.toJSONString(user));
|
||||||
}
|
}
|
||||||
@ -74,7 +74,7 @@ public class AuthExtendRequestTest {
|
|||||||
.redirectUri("http://redirectUri")
|
.redirectUri("http://redirectUri")
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
AuthResponse response = request.refresh(AuthToken.builder().build());
|
AuthResponse<AuthToken> response = request.refresh(AuthToken.builder().build());
|
||||||
Assert.assertNotNull(response);
|
Assert.assertNotNull(response);
|
||||||
System.out.println(JSON.toJSONString(response.getData()));
|
System.out.println(JSON.toJSONString(response.getData()));
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user