mirror of
https://gitee.com/yadong.zhang/JustAuth.git
synced 2025-12-06 16:58:24 +08:00
⬆️ 升级 simple-json(未发布)
This commit is contained in:
parent
765127e847
commit
779447a543
14
pom.xml
14
pom.xml
@ -6,7 +6,7 @@
|
||||
|
||||
<groupId>me.zhyd.oauth</groupId>
|
||||
<artifactId>JustAuth</artifactId>
|
||||
<version>1.16.5</version>
|
||||
<version>1.16.6</version>
|
||||
|
||||
<name>JustAuth</name>
|
||||
<url>https://gitee.com/yadong.zhang/JustAuth</url>
|
||||
@ -58,9 +58,9 @@
|
||||
<maven-gpg-version>1.6</maven-gpg-version>
|
||||
<maven.test.skip>false</maven.test.skip>
|
||||
<simple-http.version>1.0.5</simple-http.version>
|
||||
<simple-json.version>0.0.4</simple-json.version>
|
||||
<lombok-version>1.18.20</lombok-version>
|
||||
<junit-version>4.13.2</junit-version>
|
||||
<fastjson-version>1.2.83</fastjson-version>
|
||||
<alipay-sdk-version>4.17.5.ALL</alipay-sdk-version>
|
||||
<jacoco-version>0.8.2</jacoco-version>
|
||||
</properties>
|
||||
@ -77,17 +77,17 @@
|
||||
<artifactId>simple-http</artifactId>
|
||||
<version>${simple-http.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.xkcoding.json</groupId>
|
||||
<artifactId>simple-json</artifactId>
|
||||
<version>${simple-json.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>${junit-version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>fastjson</artifactId>
|
||||
<version>${fastjson-version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alipay.sdk</groupId>
|
||||
<artifactId>alipay-sdk-java</artifactId>
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
package me.zhyd.oauth.model;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import lombok.*;
|
||||
import me.zhyd.oauth.enums.AuthUserGender;
|
||||
import java.io.Serializable;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 授权成功后的用户信息,根据授权平台的不同,获取的数据完整性也不同
|
||||
@ -70,7 +71,7 @@ public class AuthUser implements Serializable {
|
||||
/**
|
||||
* 第三方平台返回的原始用户信息
|
||||
*/
|
||||
private JSONObject rawUserInfo;
|
||||
private Map<String, Object> rawUserInfo;
|
||||
|
||||
/**
|
||||
* 微信公众号 - 网页授权的登录时可用
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthSource;
|
||||
@ -41,14 +41,14 @@ public abstract class AbstractAuthDingtalkRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthUser getUserInfo(AuthToken authToken) {
|
||||
String code = authToken.getAccessCode();
|
||||
JSONObject param = new JSONObject();
|
||||
Kv param = new Kv();
|
||||
param.put("tmp_auth_code", code);
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(userInfoUrl(authToken), param.toJSONString()).getBody();
|
||||
JSONObject object = JSON.parseObject(response);
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(userInfoUrl(authToken), JsonUtil.toJsonString(param)).getBody();
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
if (object.getIntValue("errcode") != 0) {
|
||||
throw new AuthException(object.getString("errmsg"));
|
||||
}
|
||||
object = object.getJSONObject("user_info");
|
||||
object = JsonUtil.parseKv(object.getString("user_info"));
|
||||
AuthToken token = AuthToken.builder()
|
||||
.openId(object.getString("openid"))
|
||||
.unionId(object.getString("unionid"))
|
||||
|
||||
@ -1,8 +1,9 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.http.support.HttpHeader;
|
||||
import com.xkcoding.http.util.MapUtil;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthSource;
|
||||
@ -54,7 +55,7 @@ public abstract class AbstractAuthMicrosoftRequest extends AuthDefaultRequest {
|
||||
Map<String, String> form = MapUtil.parseStringToMap(accessTokenUrl, false);
|
||||
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(accessTokenUrl, form, httpHeader, false).getBody();
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(accessTokenObject);
|
||||
|
||||
@ -72,7 +73,7 @@ public abstract class AbstractAuthMicrosoftRequest extends AuthDefaultRequest {
|
||||
*
|
||||
* @param object 请求响应内容
|
||||
*/
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (object.containsKey("error")) {
|
||||
throw new AuthException(object.getString("error_description"));
|
||||
}
|
||||
@ -88,7 +89,7 @@ public abstract class AbstractAuthMicrosoftRequest extends AuthDefaultRequest {
|
||||
httpHeader.add("Authorization", jwt);
|
||||
|
||||
String userInfo = new HttpUtils(config.getHttpConfig()).get(userInfoUrl(authToken), null, httpHeader, false).getBody();
|
||||
JSONObject object = JSONObject.parseObject(userInfo);
|
||||
Kv object = JsonUtil.parseKv(userInfo);
|
||||
this.checkResponse(object);
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(object)
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthSource;
|
||||
@ -37,7 +38,7 @@ public abstract class AbstractAuthWeChatEnterpriseRequest extends AuthDefaultReq
|
||||
protected AuthToken getAccessToken(AuthCallback authCallback) {
|
||||
String response = doGetAuthorizationCode(accessTokenUrl(null));
|
||||
|
||||
JSONObject object = this.checkResponse(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
|
||||
return AuthToken.builder()
|
||||
.accessToken(object.getString("access_token"))
|
||||
@ -49,7 +50,7 @@ public abstract class AbstractAuthWeChatEnterpriseRequest extends AuthDefaultReq
|
||||
@Override
|
||||
protected AuthUser getUserInfo(AuthToken authToken) {
|
||||
String response = doGetUserInfo(authToken);
|
||||
JSONObject object = this.checkResponse(response);
|
||||
Kv object = this.checkResponse(response);
|
||||
|
||||
// 返回 OpenId 或其他,均代表非当前企业用户,不支持
|
||||
if (!object.containsKey("UserId")) {
|
||||
@ -57,7 +58,7 @@ public abstract class AbstractAuthWeChatEnterpriseRequest extends AuthDefaultReq
|
||||
}
|
||||
String userId = object.getString("UserId");
|
||||
String userTicket = object.getString("user_ticket");
|
||||
JSONObject userDetail = getUserDetail(authToken.getAccessToken(), userId, userTicket);
|
||||
Kv userDetail = getUserDetail(authToken.getAccessToken(), userId, userTicket);
|
||||
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(userDetail)
|
||||
@ -79,8 +80,8 @@ public abstract class AbstractAuthWeChatEnterpriseRequest extends AuthDefaultReq
|
||||
* @param response 请求结果
|
||||
* @return 如果请求结果正常,则返回JSONObject
|
||||
*/
|
||||
private JSONObject checkResponse(String response) {
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
private Kv checkResponse(String response) {
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
|
||||
if (object.containsKey("errcode") && object.getIntValue("errcode") != 0) {
|
||||
throw new AuthException(object.getString("errmsg"), source);
|
||||
@ -126,24 +127,24 @@ public abstract class AbstractAuthWeChatEnterpriseRequest extends AuthDefaultReq
|
||||
* @param userTicket 成员票据,用于获取用户信息或敏感信息
|
||||
* @return 用户详情
|
||||
*/
|
||||
private JSONObject getUserDetail(String accessToken, String userId, String userTicket) {
|
||||
private Kv getUserDetail(String accessToken, String userId, String userTicket) {
|
||||
// 用户基础信息
|
||||
String userInfoUrl = UrlBuilder.fromBaseUrl("https://qyapi.weixin.qq.com/cgi-bin/user/get")
|
||||
.queryParam("access_token", accessToken)
|
||||
.queryParam("userid", userId)
|
||||
.build();
|
||||
String userInfoResponse = new HttpUtils(config.getHttpConfig()).get(userInfoUrl).getBody();
|
||||
JSONObject userInfo = checkResponse(userInfoResponse);
|
||||
Kv userInfo = checkResponse(userInfoResponse);
|
||||
|
||||
// 用户敏感信息
|
||||
if (StringUtils.isNotEmpty(userTicket)) {
|
||||
String userDetailUrl = UrlBuilder.fromBaseUrl("https://qyapi.weixin.qq.com/cgi-bin/auth/getuserdetail")
|
||||
.queryParam("access_token", accessToken)
|
||||
.build();
|
||||
JSONObject param = new JSONObject();
|
||||
Kv param = new Kv();
|
||||
param.put("user_ticket", userTicket);
|
||||
String userDetailResponse = new HttpUtils(config.getHttpConfig()).post(userDetailUrl, param.toJSONString()).getBody();
|
||||
JSONObject userDetail = checkResponse(userDetailResponse);
|
||||
String userDetailResponse = new HttpUtils(config.getHttpConfig()).post(userDetailUrl, JsonUtil.toJsonString(param)).getBody();
|
||||
Kv userDetail = checkResponse(userDetailResponse);
|
||||
|
||||
userInfo.putAll(userDetail);
|
||||
}
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.alipay.api.AlipayApiException;
|
||||
import com.alipay.api.AlipayClient;
|
||||
import com.alipay.api.DefaultAlipayClient;
|
||||
@ -8,6 +7,7 @@ import com.alipay.api.request.AlipaySystemOauthTokenRequest;
|
||||
import com.alipay.api.request.AlipayUserInfoShareRequest;
|
||||
import com.alipay.api.response.AlipaySystemOauthTokenResponse;
|
||||
import com.alipay.api.response.AlipayUserInfoShareResponse;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||
@ -217,7 +217,7 @@ public class AuthAlipayRequest extends AuthDefaultRequest {
|
||||
String location = String.format("%s %s", StringUtils.isEmpty(province) ? "" : province, StringUtils.isEmpty(city) ? "" : city);
|
||||
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(JSONObject.parseObject(JSONObject.toJSONString(response)))
|
||||
.rawUserInfo(JsonUtil.parseKv(JsonUtil.toJsonString(response)))
|
||||
.uuid(response.getUserId())
|
||||
.username(StringUtils.isEmpty(response.getUserName()) ? response.getNickName() : response.getUserName())
|
||||
.nickname(response.getNickName())
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||
@ -28,7 +29,7 @@ public class AuthAliyunRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthToken getAccessToken(AuthCallback authCallback) {
|
||||
String response = doPostAuthorizationCode(authCallback.getCode());
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
return AuthToken.builder()
|
||||
.accessToken(accessTokenObject.getString("access_token"))
|
||||
.expireIn(accessTokenObject.getIntValue("expires_in"))
|
||||
@ -41,7 +42,7 @@ public class AuthAliyunRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthUser getUserInfo(AuthToken authToken) {
|
||||
String userInfo = doGetUserInfo(authToken);
|
||||
JSONObject object = JSONObject.parseObject(userInfo);
|
||||
Kv object = JsonUtil.parseKv(userInfo);
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(object)
|
||||
.uuid(object.getString("sub"))
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.http.constants.Constants;
|
||||
import com.xkcoding.http.support.HttpHeader;
|
||||
import com.xkcoding.http.util.UrlUtil;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||
@ -112,24 +113,24 @@ public class AuthAmazonRequest extends AuthDefaultRequest {
|
||||
httpHeader.add("Host", "api.amazon.com");
|
||||
httpHeader.add(Constants.CONTENT_TYPE, "application/x-www-form-urlencoded;charset=UTF-8");
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(url, param, httpHeader, false).getBody();
|
||||
JSONObject jsonObject = JSONObject.parseObject(response);
|
||||
this.checkResponse(jsonObject);
|
||||
Kv kv = JsonUtil.parseKv(response);
|
||||
this.checkResponse(kv);
|
||||
return AuthToken.builder()
|
||||
.accessToken(jsonObject.getString("access_token"))
|
||||
.tokenType(jsonObject.getString("token_type"))
|
||||
.expireIn(jsonObject.getIntValue("expires_in"))
|
||||
.refreshToken(jsonObject.getString("refresh_token"))
|
||||
.accessToken(kv.getString("access_token"))
|
||||
.tokenType(kv.getString("token_type"))
|
||||
.expireIn(kv.getIntValue("expires_in"))
|
||||
.refreshToken(kv.getString("refresh_token"))
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验响应内容是否正确
|
||||
*
|
||||
* @param jsonObject 响应内容
|
||||
* @param response 响应内容
|
||||
*/
|
||||
private void checkResponse(JSONObject jsonObject) {
|
||||
if (jsonObject.containsKey("error")) {
|
||||
throw new AuthException(jsonObject.getString("error_description").concat(" ") + jsonObject.getString("error_description"));
|
||||
private void checkResponse(Kv response) {
|
||||
if (response.containsKey("error")) {
|
||||
throw new AuthException(response.getString("error_description").concat(" ") + response.getString("error_description"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -148,15 +149,15 @@ public class AuthAmazonRequest extends AuthDefaultRequest {
|
||||
httpHeader.add("Host", "api.amazon.com");
|
||||
httpHeader.add("Authorization", "bearer " + accessToken);
|
||||
String userInfo = new HttpUtils(config.getHttpConfig()).get(this.source.userInfo(), new HashMap<>(0), httpHeader, false).getBody();
|
||||
JSONObject jsonObject = JSONObject.parseObject(userInfo);
|
||||
this.checkResponse(jsonObject);
|
||||
Kv kv = JsonUtil.parseKv(userInfo);
|
||||
this.checkResponse(kv);
|
||||
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(jsonObject)
|
||||
.uuid(jsonObject.getString("user_id"))
|
||||
.username(jsonObject.getString("name"))
|
||||
.nickname(jsonObject.getString("name"))
|
||||
.email(jsonObject.getString("email"))
|
||||
.rawUserInfo(kv)
|
||||
.uuid(kv.getString("user_id"))
|
||||
.username(kv.getString("name"))
|
||||
.nickname(kv.getString("name"))
|
||||
.email(kv.getString("email"))
|
||||
.gender(AuthUserGender.UNKNOWN)
|
||||
.source(source.toString())
|
||||
.token(authToken)
|
||||
@ -165,8 +166,8 @@ public class AuthAmazonRequest extends AuthDefaultRequest {
|
||||
|
||||
private void checkToken(String accessToken) {
|
||||
String tokenInfo = new HttpUtils(config.getHttpConfig()).get("https://api.amazon.com/auth/o2/tokeninfo?access_token=" + UrlUtil.urlEncode(accessToken)).getBody();
|
||||
JSONObject jsonObject = JSONObject.parseObject(tokenInfo);
|
||||
if (!config.getClientId().equals(jsonObject.getString("aud"))) {
|
||||
Kv kv = JsonUtil.parseKv(tokenInfo);
|
||||
if (!config.getClientId().equals(kv.getString("aud"))) {
|
||||
throw new AuthException(AuthResponseStatus.ILLEGAL_TOKEN);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||
@ -50,7 +51,7 @@ public class AuthBaiduRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthUser getUserInfo(AuthToken authToken) {
|
||||
String userInfo = doGetUserInfo(authToken);
|
||||
JSONObject object = JSONObject.parseObject(userInfo);
|
||||
Kv object = JsonUtil.parseKv(userInfo);
|
||||
this.checkResponse(object);
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(object)
|
||||
@ -65,7 +66,7 @@ public class AuthBaiduRequest extends AuthDefaultRequest {
|
||||
.build();
|
||||
}
|
||||
|
||||
private String getAvatar(JSONObject object) {
|
||||
private String getAvatar(Kv object) {
|
||||
String protrait = object.getString("portrait");
|
||||
return StringUtils.isEmpty(protrait) ? null : String.format("http://himg.bdimg.com/sys/portrait/item/%s.jpg", protrait);
|
||||
}
|
||||
@ -73,7 +74,7 @@ public class AuthBaiduRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
public AuthResponse revoke(AuthToken authToken) {
|
||||
String response = doGetRevoke(authToken);
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
this.checkResponse(object);
|
||||
// 返回1表示取消授权成功,否则失败
|
||||
AuthResponseStatus status = object.getIntValue("result") == 1 ? AuthResponseStatus.SUCCESS : AuthResponseStatus.FAILURE;
|
||||
@ -115,7 +116,7 @@ public class AuthBaiduRequest extends AuthDefaultRequest {
|
||||
*
|
||||
* @param object 请求响应内容
|
||||
*/
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (object.containsKey("error") || object.containsKey("error_code")) {
|
||||
String msg = object.containsKey("error_description") ? object.getString("error_description") : object.getString("error_msg");
|
||||
throw new AuthException(msg);
|
||||
@ -123,7 +124,7 @@ public class AuthBaiduRequest extends AuthDefaultRequest {
|
||||
}
|
||||
|
||||
private AuthToken getAuthToken(String response) {
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
this.checkResponse(accessTokenObject);
|
||||
return AuthToken.builder()
|
||||
.accessToken(accessTokenObject.getString("access_token"))
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||
@ -32,7 +33,7 @@ public class AuthCodingRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthToken getAccessToken(AuthCallback authCallback) {
|
||||
String response = doGetAuthorizationCode(authCallback.getCode());
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
this.checkResponse(accessTokenObject);
|
||||
return AuthToken.builder()
|
||||
.accessToken(accessTokenObject.getString("access_token"))
|
||||
@ -44,10 +45,10 @@ public class AuthCodingRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthUser getUserInfo(AuthToken authToken) {
|
||||
String response = doGetUserInfo(authToken);
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
this.checkResponse(object);
|
||||
|
||||
object = object.getJSONObject("data");
|
||||
object = JsonUtil.parseKv(object.getString("data"));
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(object)
|
||||
.uuid(object.getString("id"))
|
||||
@ -70,7 +71,7 @@ public class AuthCodingRequest extends AuthDefaultRequest {
|
||||
*
|
||||
* @param object 请求响应内容
|
||||
*/
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (object.getIntValue("code") != 0) {
|
||||
throw new AuthException(object.getString("msg"));
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||
@ -30,7 +31,7 @@ public class AuthCsdnRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthToken getAccessToken(AuthCallback authCallback) {
|
||||
String response = doPostAuthorizationCode(authCallback.getCode());
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
this.checkResponse(accessTokenObject);
|
||||
return AuthToken.builder().accessToken(accessTokenObject.getString("access_token")).build();
|
||||
}
|
||||
@ -38,7 +39,7 @@ public class AuthCsdnRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthUser getUserInfo(AuthToken authToken) {
|
||||
String response = doGetUserInfo(authToken);
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
this.checkResponse(object);
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(object)
|
||||
@ -57,7 +58,7 @@ public class AuthCsdnRequest extends AuthDefaultRequest {
|
||||
*
|
||||
* @param object 请求响应内容
|
||||
*/
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (object.containsKey("error_code")) {
|
||||
throw new AuthException(object.getString("error"));
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||
@ -41,9 +42,9 @@ public class AuthDouyinRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthUser getUserInfo(AuthToken authToken) {
|
||||
String response = doGetUserInfo(authToken);
|
||||
JSONObject userInfoObject = JSONObject.parseObject(response);
|
||||
Kv userInfoObject = JsonUtil.parseKv(response);
|
||||
this.checkResponse(userInfoObject);
|
||||
JSONObject object = userInfoObject.getJSONObject("data");
|
||||
Kv object = JsonUtil.parseKv(userInfoObject.getString("data"));
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(object)
|
||||
.uuid(object.getString("union_id"))
|
||||
@ -71,9 +72,9 @@ public class AuthDouyinRequest extends AuthDefaultRequest {
|
||||
*
|
||||
* @param object 请求响应内容
|
||||
*/
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
String message = object.getString("message");
|
||||
JSONObject data = object.getJSONObject("data");
|
||||
Kv data = JsonUtil.parseKv(object.getString("data"));
|
||||
int errorCode = data.getIntValue("error_code");
|
||||
if ("error".equals(message) || errorCode != 0) {
|
||||
throw new AuthException(errorCode, data.getString("description"));
|
||||
@ -88,9 +89,9 @@ public class AuthDouyinRequest extends AuthDefaultRequest {
|
||||
*/
|
||||
private AuthToken getToken(String accessTokenUrl) {
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(accessTokenUrl).getBody();
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
this.checkResponse(object);
|
||||
JSONObject dataObj = object.getJSONObject("data");
|
||||
Kv dataObj = JsonUtil.parseKv(object.getString("data"));
|
||||
return AuthToken.builder()
|
||||
.accessToken(dataObj.getString("access_token"))
|
||||
.openId(dataObj.getString("open_id"))
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.utils.HttpUtils;
|
||||
import com.xkcoding.http.constants.Constants;
|
||||
import com.xkcoding.http.support.HttpHeader;
|
||||
@ -53,7 +54,7 @@ public class AuthElemeRequest extends AuthDefaultRequest {
|
||||
|
||||
HttpHeader httpHeader = this.buildHeader(CONTENT_TYPE_FORM, this.getRequestId(), true);
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(source.accessToken(), form, httpHeader, false).getBody();
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(object);
|
||||
|
||||
@ -91,19 +92,19 @@ public class AuthElemeRequest extends AuthDefaultRequest {
|
||||
paramsMap.put("signature", signature);
|
||||
|
||||
HttpHeader httpHeader = this.buildHeader(CONTENT_TYPE_JSON, requestId, false);
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(source.userInfo(), JSONObject.toJSONString(paramsMap), httpHeader).getBody();
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(source.userInfo(), JsonUtil.toJsonString(paramsMap), httpHeader).getBody();
|
||||
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
|
||||
// 校验请求
|
||||
if (object.containsKey("name")) {
|
||||
throw new AuthException(object.getString("message"));
|
||||
}
|
||||
if (object.containsKey("error") && null != object.get("error")) {
|
||||
throw new AuthException(object.getJSONObject("error").getString("message"));
|
||||
throw new AuthException(JsonUtil.parseKv(object.getString("error")).getString("message"));
|
||||
}
|
||||
|
||||
JSONObject result = object.getJSONObject("result");
|
||||
Kv result = JsonUtil.parseKv(object.getString("result"));
|
||||
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(result)
|
||||
@ -125,7 +126,7 @@ public class AuthElemeRequest extends AuthDefaultRequest {
|
||||
HttpHeader httpHeader = this.buildHeader(CONTENT_TYPE_FORM, this.getRequestId(), true);
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(source.refresh(), form, httpHeader, false).getBody();
|
||||
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(object);
|
||||
|
||||
@ -169,7 +170,7 @@ public class AuthElemeRequest extends AuthDefaultRequest {
|
||||
return (UuidUtils.getUUID() + "|" + System.currentTimeMillis()).toUpperCase();
|
||||
}
|
||||
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (object.containsKey("error")) {
|
||||
throw new AuthException(object.getString("error_description"));
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||
@ -32,7 +33,7 @@ public class AuthFacebookRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthToken getAccessToken(AuthCallback authCallback) {
|
||||
String response = doPostAuthorizationCode(authCallback.getCode());
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
this.checkResponse(accessTokenObject);
|
||||
return AuthToken.builder()
|
||||
.accessToken(accessTokenObject.getString("access_token"))
|
||||
@ -44,7 +45,7 @@ public class AuthFacebookRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthUser getUserInfo(AuthToken authToken) {
|
||||
String userInfo = doGetUserInfo(authToken);
|
||||
JSONObject object = JSONObject.parseObject(userInfo);
|
||||
Kv object = JsonUtil.parseKv(userInfo);
|
||||
this.checkResponse(object);
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(object)
|
||||
@ -61,11 +62,11 @@ public class AuthFacebookRequest extends AuthDefaultRequest {
|
||||
.build();
|
||||
}
|
||||
|
||||
private String getUserPicture(JSONObject object) {
|
||||
private String getUserPicture(Kv object) {
|
||||
String picture = null;
|
||||
if (object.containsKey("picture")) {
|
||||
JSONObject pictureObj = object.getJSONObject("picture");
|
||||
pictureObj = pictureObj.getJSONObject("data");
|
||||
Kv pictureObj = JsonUtil.parseKv(object.getString("picture"));
|
||||
pictureObj = JsonUtil.parseKv(object.getString("data"));
|
||||
if (null != pictureObj) {
|
||||
picture = pictureObj.getString("url");
|
||||
}
|
||||
@ -92,9 +93,9 @@ public class AuthFacebookRequest extends AuthDefaultRequest {
|
||||
*
|
||||
* @param object 请求响应内容
|
||||
*/
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (object.containsKey("error")) {
|
||||
throw new AuthException(object.getJSONObject("error").getString("message"));
|
||||
throw new AuthException(JsonUtil.parseKv(object.getString("error")).getString("message"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import com.xkcoding.http.support.HttpHeader;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
@ -52,22 +52,22 @@ public class AuthFeishuRequest extends AuthDefaultRequest {
|
||||
return cacheAppAccessToken;
|
||||
}
|
||||
String url = "https://open.feishu.cn/open-apis/auth/v3/app_access_token/internal/";
|
||||
JSONObject requestObject = new JSONObject();
|
||||
Kv requestObject = new Kv();
|
||||
requestObject.put("app_id", config.getClientId());
|
||||
requestObject.put("app_secret", config.getClientSecret());
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(url, requestObject.toJSONString(), new HttpHeader()
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(url, JsonUtil.toJsonString(requestObject), new HttpHeader()
|
||||
.add("Content-Type", "application/json")).getBody();
|
||||
JSONObject jsonObject = JSON.parseObject(response);
|
||||
this.checkResponse(jsonObject);
|
||||
String appAccessToken = jsonObject.getString("app_access_token");
|
||||
Kv kv = JsonUtil.parseKv(response);
|
||||
this.checkResponse(kv);
|
||||
String appAccessToken = kv.getString("app_access_token");
|
||||
// 缓存 app access token
|
||||
this.authStateCache.cache(cacheKey, appAccessToken, jsonObject.getLongValue("expire") * 1000);
|
||||
this.authStateCache.cache(cacheKey, appAccessToken, kv.getLongValue("expire") * 1000);
|
||||
return appAccessToken;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected AuthToken getAccessToken(AuthCallback authCallback) {
|
||||
JSONObject requestObject = new JSONObject();
|
||||
Kv requestObject = new Kv();
|
||||
requestObject.put("app_access_token", this.getAppAccessToken());
|
||||
requestObject.put("grant_type", "authorization_code");
|
||||
requestObject.put("code", authCallback.getCode());
|
||||
@ -81,9 +81,9 @@ public class AuthFeishuRequest extends AuthDefaultRequest {
|
||||
String response = new HttpUtils(config.getHttpConfig()).get(source.userInfo(), null, new HttpHeader()
|
||||
.add("Content-Type", "application/json")
|
||||
.add("Authorization", "Bearer " + accessToken), false).getBody();
|
||||
JSONObject object = JSON.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
this.checkResponse(object);
|
||||
JSONObject data = object.getJSONObject("data");
|
||||
Kv data = JsonUtil.parseKv(object.getString("data"));
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(object)
|
||||
.uuid(data.getString("union_id"))
|
||||
@ -99,7 +99,7 @@ public class AuthFeishuRequest extends AuthDefaultRequest {
|
||||
|
||||
@Override
|
||||
public AuthResponse refresh(AuthToken authToken) {
|
||||
JSONObject requestObject = new JSONObject();
|
||||
Kv requestObject = new Kv();
|
||||
requestObject.put("app_access_token", this.getAppAccessToken());
|
||||
requestObject.put("grant_type", "refresh_token");
|
||||
requestObject.put("refresh_token", authToken.getRefreshToken());
|
||||
@ -110,12 +110,12 @@ public class AuthFeishuRequest extends AuthDefaultRequest {
|
||||
|
||||
}
|
||||
|
||||
private AuthToken getToken(JSONObject param, String url) {
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(url, param.toJSONString(), new HttpHeader()
|
||||
private AuthToken getToken(Kv param, String url) {
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(url, JsonUtil.toJsonString(param), new HttpHeader()
|
||||
.add("Content-Type", "application/json")).getBody();
|
||||
JSONObject jsonObject = JSON.parseObject(response);
|
||||
this.checkResponse(jsonObject);
|
||||
JSONObject data = jsonObject.getJSONObject("data");
|
||||
Kv kv = JsonUtil.parseKv(response);
|
||||
this.checkResponse(kv);
|
||||
Kv data = JsonUtil.parseKv(kv.getString("data"));
|
||||
return AuthToken.builder()
|
||||
.accessToken(data.getString("access_token"))
|
||||
.refreshToken(data.getString("refresh_token"))
|
||||
@ -138,11 +138,11 @@ public class AuthFeishuRequest extends AuthDefaultRequest {
|
||||
/**
|
||||
* 校验响应内容是否正确
|
||||
*
|
||||
* @param jsonObject 响应内容
|
||||
* @param kv 响应内容
|
||||
*/
|
||||
private void checkResponse(JSONObject jsonObject) {
|
||||
if (jsonObject.getIntValue("code") != 0) {
|
||||
throw new AuthException(jsonObject.getString("message"));
|
||||
private void checkResponse(Kv kv) {
|
||||
if (kv.getIntValue("code") != 0) {
|
||||
throw new AuthException(kv.getString("message"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||
@ -32,7 +33,7 @@ public class AuthGiteeRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthToken getAccessToken(AuthCallback authCallback) {
|
||||
String response = doPostAuthorizationCode(authCallback.getCode());
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
this.checkResponse(accessTokenObject);
|
||||
return AuthToken.builder()
|
||||
.accessToken(accessTokenObject.getString("access_token"))
|
||||
@ -46,7 +47,7 @@ public class AuthGiteeRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthUser getUserInfo(AuthToken authToken) {
|
||||
String userInfo = doGetUserInfo(authToken);
|
||||
JSONObject object = JSONObject.parseObject(userInfo);
|
||||
Kv object = JsonUtil.parseKv(userInfo);
|
||||
this.checkResponse(object);
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(object)
|
||||
@ -70,7 +71,7 @@ public class AuthGiteeRequest extends AuthDefaultRequest {
|
||||
*
|
||||
* @param object 请求响应内容
|
||||
*/
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (object.containsKey("error")) {
|
||||
throw new AuthException(object.getString("error_description"));
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import com.xkcoding.http.support.HttpHeader;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
@ -53,7 +54,7 @@ public class AuthGithubRequest extends AuthDefaultRequest {
|
||||
HttpHeader header = new HttpHeader();
|
||||
header.add("Authorization", "token " + authToken.getAccessToken());
|
||||
String response = new HttpUtils(config.getHttpConfig()).get(UrlBuilder.fromBaseUrl(source.userInfo()).build(), null, header, false).getBody();
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(object.containsKey("error"), object.getString("error_description"));
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||
@ -32,7 +33,7 @@ public class AuthGitlabRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthToken getAccessToken(AuthCallback authCallback) {
|
||||
String response = doPostAuthorizationCode(authCallback.getCode());
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(object);
|
||||
|
||||
@ -48,7 +49,7 @@ public class AuthGitlabRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthUser getUserInfo(AuthToken authToken) {
|
||||
String response = doGetUserInfo(authToken);
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(object);
|
||||
|
||||
@ -69,7 +70,7 @@ public class AuthGitlabRequest extends AuthDefaultRequest {
|
||||
.build();
|
||||
}
|
||||
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
// oauth/token 验证异常
|
||||
if (object.containsKey("error")) {
|
||||
throw new AuthException(object.getString("error_description"));
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.utils.HttpUtils;
|
||||
import com.xkcoding.http.support.HttpHeader;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
@ -35,7 +36,7 @@ public class AuthGoogleRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthToken getAccessToken(AuthCallback authCallback) {
|
||||
String response = doPostAuthorizationCode(authCallback.getCode());
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
this.checkResponse(accessTokenObject);
|
||||
return AuthToken.builder()
|
||||
.accessToken(accessTokenObject.getString("access_token"))
|
||||
@ -51,7 +52,7 @@ public class AuthGoogleRequest extends AuthDefaultRequest {
|
||||
HttpHeader httpHeader = new HttpHeader();
|
||||
httpHeader.add("Authorization", "Bearer " + authToken.getAccessToken());
|
||||
String userInfo = new HttpUtils(config.getHttpConfig()).post(userInfoUrl(authToken), null, httpHeader).getBody();
|
||||
JSONObject object = JSONObject.parseObject(userInfo);
|
||||
Kv object = JsonUtil.parseKv(userInfo);
|
||||
this.checkResponse(object);
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(object)
|
||||
@ -99,7 +100,7 @@ public class AuthGoogleRequest extends AuthDefaultRequest {
|
||||
*
|
||||
* @param object 请求响应内容
|
||||
*/
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (object.containsKey("error") || object.containsKey("error_description")) {
|
||||
throw new AuthException(object.containsKey("error") + ":" + object.getString("error_description"));
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||
@ -74,7 +75,7 @@ public class AuthHuaweiRequest extends AuthDefaultRequest {
|
||||
form.put("nsp_svc", "OpenUP.User.getInfo");
|
||||
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(source.userInfo(), form, false).getBody();
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(object);
|
||||
|
||||
@ -111,7 +112,7 @@ public class AuthHuaweiRequest extends AuthDefaultRequest {
|
||||
}
|
||||
|
||||
private AuthToken getAuthToken(String response) {
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(object);
|
||||
|
||||
@ -159,7 +160,7 @@ public class AuthHuaweiRequest extends AuthDefaultRequest {
|
||||
* @param object obj
|
||||
* @return AuthUserGender
|
||||
*/
|
||||
private AuthUserGender getRealGender(JSONObject object) {
|
||||
private AuthUserGender getRealGender(Kv object) {
|
||||
int genderCodeInt = object.getIntValue("gender");
|
||||
String genderCode = genderCodeInt == 1 ? "0" : (genderCodeInt == 0) ? "1" : genderCodeInt + "";
|
||||
return AuthUserGender.getRealGender(genderCode);
|
||||
@ -170,7 +171,7 @@ public class AuthHuaweiRequest extends AuthDefaultRequest {
|
||||
*
|
||||
* @param object 接口返回的结果
|
||||
*/
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (object.containsKey("NSP_STATUS")) {
|
||||
throw new AuthException(object.getString("error"));
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||
@ -47,7 +48,7 @@ public class AuthJdRequest extends AuthDefaultRequest {
|
||||
params.put("grant_type", "authorization_code");
|
||||
params.put("code", authCallback.getCode());
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(source.accessToken(), params, false).getBody();
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(object);
|
||||
|
||||
@ -71,11 +72,11 @@ public class AuthJdRequest extends AuthDefaultRequest {
|
||||
.queryParam("v", "2.0");
|
||||
urlBuilder.queryParam("sign", GlobalAuthUtils.generateJdSignature(config.getClientSecret(), urlBuilder.getReadOnlyParams()));
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(urlBuilder.build(true)).getBody();
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(object);
|
||||
|
||||
JSONObject data = this.getUserDataJsonObject(object);
|
||||
Kv data = this.getUserDataJsonObject(object);
|
||||
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(data)
|
||||
@ -96,10 +97,10 @@ public class AuthJdRequest extends AuthDefaultRequest {
|
||||
* @param object 请求返回结果
|
||||
* @return data JSONObject
|
||||
*/
|
||||
private JSONObject getUserDataJsonObject(JSONObject object) {
|
||||
return object.getJSONObject("jingdong_user_getUserInfoByOpenId_response")
|
||||
.getJSONObject("getuserinfobyappidandopenid_result")
|
||||
.getJSONObject("data");
|
||||
private Kv getUserDataJsonObject(Kv object) {
|
||||
Kv userInfo = JsonUtil.parseKv(object.getString("jingdong_user_getUserInfoByOpenId_response"));
|
||||
userInfo = JsonUtil.parseKv(userInfo.getString("getuserinfobyappidandopenid_result"));
|
||||
return JsonUtil.parseKv(userInfo.getString("data"));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -110,7 +111,7 @@ public class AuthJdRequest extends AuthDefaultRequest {
|
||||
params.put("grant_type", "refresh_token");
|
||||
params.put("refresh_token", oldToken.getRefreshToken());
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(source.refresh(), params, false).getBody();
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(object);
|
||||
|
||||
@ -126,9 +127,9 @@ public class AuthJdRequest extends AuthDefaultRequest {
|
||||
.build();
|
||||
}
|
||||
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (object.containsKey("error_response")) {
|
||||
throw new AuthException(object.getJSONObject("error_response").getString("zh_desc"));
|
||||
throw new AuthException(JsonUtil.parseKv(object.getString("error_response")).getString("zh_desc"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||
@ -53,8 +54,8 @@ public class AuthKujialeRequest extends AuthDefaultRequest {
|
||||
}
|
||||
|
||||
private AuthToken getAuthToken(String response) {
|
||||
JSONObject accessTokenObject = checkResponse(response);
|
||||
JSONObject resultObject = accessTokenObject.getJSONObject("d");
|
||||
Kv accessTokenObject = checkResponse(response);
|
||||
Kv resultObject = JsonUtil.parseKv(accessTokenObject.getString("d"));
|
||||
return AuthToken.builder()
|
||||
.accessToken(resultObject.getString("accessToken"))
|
||||
.refreshToken(resultObject.getString("refreshToken"))
|
||||
@ -62,8 +63,8 @@ public class AuthKujialeRequest extends AuthDefaultRequest {
|
||||
.build();
|
||||
}
|
||||
|
||||
private JSONObject checkResponse(String response) {
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
private Kv checkResponse(String response) {
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
if (!"0".equals(accessTokenObject.getString("c"))) {
|
||||
throw new AuthException(accessTokenObject.getString("m"));
|
||||
}
|
||||
@ -77,11 +78,11 @@ public class AuthKujialeRequest extends AuthDefaultRequest {
|
||||
.queryParam("access_token", authToken.getAccessToken())
|
||||
.queryParam("open_id", openId)
|
||||
.build()).getBody();
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
if (!"0".equals(object.getString("c"))) {
|
||||
throw new AuthException(object.getString("m"));
|
||||
}
|
||||
JSONObject resultObject = object.getJSONObject("d");
|
||||
Kv resultObject = JsonUtil.parseKv(object.getString("d"));
|
||||
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(resultObject)
|
||||
@ -104,7 +105,7 @@ public class AuthKujialeRequest extends AuthDefaultRequest {
|
||||
String response = new HttpUtils(config.getHttpConfig()).get(UrlBuilder.fromBaseUrl("https://oauth.kujiale.com/oauth2/auth/user")
|
||||
.queryParam("access_token", authToken.getAccessToken())
|
||||
.build()).getBody();
|
||||
JSONObject accessTokenObject = checkResponse(response);
|
||||
Kv accessTokenObject = checkResponse(response);
|
||||
return accessTokenObject.getString("d");
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import com.xkcoding.http.support.HttpHeader;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
@ -44,7 +45,7 @@ public class AuthLineRequest extends AuthDefaultRequest {
|
||||
params.put("client_id", config.getClientId());
|
||||
params.put("client_secret", config.getClientSecret());
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(source.accessToken(), params, false).getBody();
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
return AuthToken.builder()
|
||||
.accessToken(accessTokenObject.getString("access_token"))
|
||||
.refreshToken(accessTokenObject.getString("refresh_token"))
|
||||
@ -60,7 +61,7 @@ public class AuthLineRequest extends AuthDefaultRequest {
|
||||
String userInfo = new HttpUtils(config.getHttpConfig()).get(source.userInfo(), null, new HttpHeader()
|
||||
.add("Content-Type", "application/x-www-form-urlencoded")
|
||||
.add("Authorization", "Bearer ".concat(authToken.getAccessToken())), false).getBody();
|
||||
JSONObject object = JSONObject.parseObject(userInfo);
|
||||
Kv object = JsonUtil.parseKv(userInfo);
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(object)
|
||||
.uuid(object.getString("userId"))
|
||||
@ -81,7 +82,7 @@ public class AuthLineRequest extends AuthDefaultRequest {
|
||||
params.put("client_id", config.getClientId());
|
||||
params.put("client_secret", config.getClientSecret());
|
||||
String userInfo = new HttpUtils(config.getHttpConfig()).post(source.revoke(), params, false).getBody();
|
||||
JSONObject object = JSONObject.parseObject(userInfo);
|
||||
Kv object = JsonUtil.parseKv(userInfo);
|
||||
// 返回1表示取消授权成功,否则失败
|
||||
AuthResponseStatus status = object.getBooleanValue("revoked") ? AuthResponseStatus.SUCCESS : AuthResponseStatus.FAILURE;
|
||||
return AuthResponse.builder().code(status.getCode()).msg(status.getMsg()).build();
|
||||
@ -95,7 +96,7 @@ public class AuthLineRequest extends AuthDefaultRequest {
|
||||
params.put("client_id", config.getClientId());
|
||||
params.put("client_secret", config.getClientSecret());
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(source.accessToken(), params, false).getBody();
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
return AuthResponse.builder()
|
||||
.code(AuthResponseStatus.SUCCESS.getCode())
|
||||
.data(AuthToken.builder()
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.alibaba.fastjson.JSONPath;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import com.xkcoding.http.constants.Constants;
|
||||
import com.xkcoding.http.support.HttpHeader;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
@ -18,6 +17,9 @@ import me.zhyd.oauth.utils.AuthScopeUtils;
|
||||
import me.zhyd.oauth.utils.HttpUtils;
|
||||
import me.zhyd.oauth.utils.UrlBuilder;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 领英登录
|
||||
@ -49,7 +51,7 @@ public class AuthLinkedinRequest extends AuthDefaultRequest {
|
||||
httpHeader.add("Authorization", "Bearer " + accessToken);
|
||||
|
||||
String response = new HttpUtils(config.getHttpConfig()).get(userInfoUrl(authToken), null, httpHeader, false).getBody();
|
||||
JSONObject userInfoObject = JSONObject.parseObject(response);
|
||||
Kv userInfoObject = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(userInfoObject);
|
||||
|
||||
@ -79,7 +81,7 @@ public class AuthLinkedinRequest extends AuthDefaultRequest {
|
||||
* @param userInfoObject 用户json对象
|
||||
* @return 用户名
|
||||
*/
|
||||
private String getUserName(JSONObject userInfoObject) {
|
||||
private String getUserName(Kv userInfoObject) {
|
||||
String firstName, lastName;
|
||||
// 获取firstName
|
||||
if (userInfoObject.containsKey("localizedFirstName")) {
|
||||
@ -102,28 +104,32 @@ public class AuthLinkedinRequest extends AuthDefaultRequest {
|
||||
* @param userInfoObject 用户json对象
|
||||
* @return 用户的头像地址
|
||||
*/
|
||||
private String getAvatar(JSONObject userInfoObject) {
|
||||
JSONObject profilePictureObject = userInfoObject.getJSONObject("profilePicture");
|
||||
private String getAvatar(Kv userInfoObject) {
|
||||
Kv profilePictureObject = userInfoObject.getKv("profilePicture");
|
||||
if (null == profilePictureObject || !profilePictureObject.containsKey("displayImage~")) {
|
||||
return null;
|
||||
}
|
||||
JSONObject displayImageObject = profilePictureObject.getJSONObject("displayImage~");
|
||||
Kv displayImageObject = profilePictureObject.getKv("displayImage~");
|
||||
if (null == displayImageObject || !displayImageObject.containsKey("elements")) {
|
||||
return null;
|
||||
}
|
||||
JSONArray displayImageElements = displayImageObject.getJSONArray("elements");
|
||||
List<Kv> displayImageElements = displayImageObject.getListKv("elements");
|
||||
if (null == displayImageElements || displayImageElements.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
JSONObject largestImageObj = displayImageElements.getJSONObject(displayImageElements.size() - 1);
|
||||
if (null == largestImageObj || !largestImageObj.containsKey("identifiers")) {
|
||||
Kv largestImageKv = displayImageElements.get(displayImageElements.size() - 1);
|
||||
if (null != largestImageKv) {
|
||||
if (!largestImageKv.containsKey("identifiers")) {
|
||||
return null;
|
||||
}
|
||||
JSONArray identifiers = largestImageObj.getJSONArray("identifiers");
|
||||
List<Kv> identifiers = largestImageKv.getListKv("identifiers");
|
||||
if (null == identifiers || identifiers.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
return identifiers.getJSONObject(0).getString("identifier");
|
||||
Kv identifierKv = identifiers.get(0);
|
||||
return identifierKv.getString("identifier");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -141,19 +147,26 @@ public class AuthLinkedinRequest extends AuthDefaultRequest {
|
||||
String emailResponse = new HttpUtils(config.getHttpConfig())
|
||||
.get("https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))", null, httpHeader, false)
|
||||
.getBody();
|
||||
JSONObject emailObj = JSONObject.parseObject(emailResponse);
|
||||
Kv emailObj = JsonUtil.parseKv(emailResponse);
|
||||
|
||||
this.checkResponse(emailObj);
|
||||
|
||||
Object obj = JSONPath.eval(emailObj, "$['elements'][0]['handle~']['emailAddress']");
|
||||
return null == obj ? null : (String) obj;
|
||||
ArrayList<Object> elements = emailObj.getArrayList("elements");
|
||||
for (Object element : elements) {
|
||||
Kv item = JsonUtil.parseKv(JsonUtil.toJsonString(element));
|
||||
String type = item.getString("type");
|
||||
if ("EMAIL".equalsIgnoreCase(type)) {
|
||||
item = JsonUtil.parseKv(item.getString("handle~"));
|
||||
return item.getString("emailAddress");
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private String getUserName(JSONObject userInfoObject, String nameKey) {
|
||||
private String getUserName(Kv userInfoObject, String nameKey) {
|
||||
String firstName;
|
||||
JSONObject firstNameObj = userInfoObject.getJSONObject(nameKey);
|
||||
JSONObject localizedObj = firstNameObj.getJSONObject("localized");
|
||||
JSONObject preferredLocaleObj = firstNameObj.getJSONObject("preferredLocale");
|
||||
Kv firstNameObj = JsonUtil.parseKv(userInfoObject.getString(nameKey));
|
||||
Kv localizedObj = JsonUtil.parseKv(firstNameObj.getString("localized"));
|
||||
Kv preferredLocaleObj = JsonUtil.parseKv(firstNameObj.getString("preferredLocale"));
|
||||
firstName = localizedObj.getString(preferredLocaleObj.getString("language") + "_" + preferredLocaleObj.getString("country"));
|
||||
return firstName;
|
||||
}
|
||||
@ -163,7 +176,7 @@ public class AuthLinkedinRequest extends AuthDefaultRequest {
|
||||
*
|
||||
* @param object 请求响应内容
|
||||
*/
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (object.containsKey("error")) {
|
||||
throw new AuthException(object.getString("error_description"), source);
|
||||
}
|
||||
@ -181,7 +194,7 @@ public class AuthLinkedinRequest extends AuthDefaultRequest {
|
||||
httpHeader.add(Constants.CONTENT_TYPE, "application/x-www-form-urlencoded");
|
||||
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(accessTokenUrl, null, httpHeader).getBody();
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(accessTokenObject);
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||
@ -42,7 +43,7 @@ public class AuthMeituanRequest extends AuthDefaultRequest {
|
||||
form.put("grant_type", "authorization_code");
|
||||
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(source.accessToken(), form, false).getBody();
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(object);
|
||||
|
||||
@ -61,7 +62,7 @@ public class AuthMeituanRequest extends AuthDefaultRequest {
|
||||
form.put("access_token", authToken.getAccessToken());
|
||||
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(source.userInfo(), form, false).getBody();
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(object);
|
||||
|
||||
@ -86,7 +87,7 @@ public class AuthMeituanRequest extends AuthDefaultRequest {
|
||||
form.put("grant_type", "refresh_token");
|
||||
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(source.refresh(), form, false).getBody();
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(object);
|
||||
|
||||
@ -100,7 +101,7 @@ public class AuthMeituanRequest extends AuthDefaultRequest {
|
||||
.build();
|
||||
}
|
||||
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (object.containsKey("error_code")) {
|
||||
throw new AuthException(object.getString("erroe_msg"));
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import com.xkcoding.http.constants.Constants;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
@ -45,7 +46,7 @@ public class AuthMiRequest extends AuthDefaultRequest {
|
||||
private AuthToken getToken(String accessTokenUrl) {
|
||||
String response = new HttpUtils(config.getHttpConfig()).get(accessTokenUrl).getBody();
|
||||
String jsonStr = response.replace(PREFIX, Constants.EMPTY);
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(jsonStr);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(jsonStr);
|
||||
|
||||
if (accessTokenObject.containsKey("error")) {
|
||||
throw new AuthException(accessTokenObject.getString("error_description"));
|
||||
@ -68,12 +69,12 @@ public class AuthMiRequest extends AuthDefaultRequest {
|
||||
// 获取用户信息
|
||||
String userResponse = doGetUserInfo(authToken);
|
||||
|
||||
JSONObject userProfile = JSONObject.parseObject(userResponse);
|
||||
Kv userProfile = JsonUtil.parseKv(userResponse);
|
||||
if ("error".equalsIgnoreCase(userProfile.getString("result"))) {
|
||||
throw new AuthException(userProfile.getString("description"));
|
||||
}
|
||||
|
||||
JSONObject object = userProfile.getJSONObject("data");
|
||||
Kv object = userProfile.getKv("data");
|
||||
|
||||
AuthUser authUser = AuthUser.builder()
|
||||
.rawUserInfo(object)
|
||||
@ -92,9 +93,9 @@ public class AuthMiRequest extends AuthDefaultRequest {
|
||||
.getClientId(), authToken.getAccessToken());
|
||||
|
||||
String emailResponse = new HttpUtils(config.getHttpConfig()).get(emailPhoneUrl).getBody();
|
||||
JSONObject userEmailPhone = JSONObject.parseObject(emailResponse);
|
||||
Kv userEmailPhone = JsonUtil.parseKv(emailResponse);
|
||||
if (!"error".equalsIgnoreCase(userEmailPhone.getString("result"))) {
|
||||
JSONObject emailPhone = userEmailPhone.getJSONObject("data");
|
||||
Kv emailPhone = userEmailPhone.getKv("data");
|
||||
authUser.setEmail(emailPhone.getString("email"));
|
||||
} else {
|
||||
Log.warn("小米开发平台暂时不对外开放用户手机及邮箱信息的获取");
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import com.xkcoding.http.support.HttpHeader;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
@ -51,7 +52,7 @@ public class AuthOktaRequest extends AuthDefaultRequest {
|
||||
.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(tokenUrl, null, header, false).getBody();
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
this.checkResponse(accessTokenObject);
|
||||
return AuthToken.builder()
|
||||
.accessToken(accessTokenObject.getString("access_token"))
|
||||
@ -83,9 +84,9 @@ public class AuthOktaRequest extends AuthDefaultRequest {
|
||||
HttpHeader header = new HttpHeader()
|
||||
.add("Authorization", "Bearer " + authToken.getAccessToken());
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(userInfoUrl(authToken), null, header, false).getBody();
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
this.checkResponse(object);
|
||||
JSONObject address = object.getJSONObject("address");
|
||||
Kv address = object.getKv("address");
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(object)
|
||||
.uuid(object.getString("sub"))
|
||||
@ -112,7 +113,7 @@ public class AuthOktaRequest extends AuthDefaultRequest {
|
||||
return AuthResponse.builder().code(status.getCode()).msg(status.getMsg()).build();
|
||||
}
|
||||
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (object.containsKey("error")) {
|
||||
throw new AuthException(object.getString("error_description"));
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||
@ -30,7 +31,7 @@ public class AuthOschinaRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthToken getAccessToken(AuthCallback authCallback) {
|
||||
String response = doPostAuthorizationCode(authCallback.getCode());
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
this.checkResponse(accessTokenObject);
|
||||
return AuthToken.builder()
|
||||
.accessToken(accessTokenObject.getString("access_token"))
|
||||
@ -43,7 +44,7 @@ public class AuthOschinaRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthUser getUserInfo(AuthToken authToken) {
|
||||
String response = doGetUserInfo(authToken);
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
this.checkResponse(object);
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(object)
|
||||
@ -97,7 +98,7 @@ public class AuthOschinaRequest extends AuthDefaultRequest {
|
||||
*
|
||||
* @param object 请求响应内容
|
||||
*/
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (object.containsKey("error")) {
|
||||
throw new AuthException(object.getString("error_description"));
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.enums.AuthUserGender;
|
||||
@ -38,7 +39,7 @@ public class AuthPinterestRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthToken getAccessToken(AuthCallback authCallback) {
|
||||
String response = doPostAuthorizationCode(authCallback.getCode());
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
this.checkResponse(accessTokenObject);
|
||||
return AuthToken.builder()
|
||||
.accessToken(accessTokenObject.getString("access_token"))
|
||||
@ -51,9 +52,9 @@ public class AuthPinterestRequest extends AuthDefaultRequest {
|
||||
String userinfoUrl = userInfoUrl(authToken);
|
||||
// TODO: 是否需要 .setFollowRedirects(true)
|
||||
String response = new HttpUtils(config.getHttpConfig()).get(userinfoUrl).getBody();
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
this.checkResponse(object);
|
||||
JSONObject userObj = object.getJSONObject("data");
|
||||
Kv userObj = object.getKv("data");
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(userObj)
|
||||
.uuid(userObj.getString("id"))
|
||||
@ -67,13 +68,13 @@ public class AuthPinterestRequest extends AuthDefaultRequest {
|
||||
.build();
|
||||
}
|
||||
|
||||
private String getAvatarUrl(JSONObject userObj) {
|
||||
private String getAvatarUrl(Kv userObj) {
|
||||
// image is a map data structure
|
||||
JSONObject jsonObject = userObj.getJSONObject("image");
|
||||
if (Objects.isNull(jsonObject)) {
|
||||
Kv kv = userObj.getKv("image");
|
||||
if (Objects.isNull(kv)) {
|
||||
return null;
|
||||
}
|
||||
return jsonObject.getJSONObject("60x60").getString("url");
|
||||
return kv.getKv("60x60").getString("url");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -109,7 +110,7 @@ public class AuthPinterestRequest extends AuthDefaultRequest {
|
||||
*
|
||||
* @param object 请求响应内容
|
||||
*/
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (!object.containsKey("status") && FAILURE.equals(object.getString("status"))) {
|
||||
throw new AuthException(object.getString("message"));
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||
@ -42,7 +43,7 @@ public class AuthProginnRequest extends AuthDefaultRequest {
|
||||
params.put("grant_type", "authorization_code");
|
||||
params.put("redirect_uri", config.getRedirectUri());
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(AuthDefaultSource.PROGINN.accessToken(), params, false).getBody();
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
this.checkResponse(accessTokenObject);
|
||||
return AuthToken.builder()
|
||||
.accessToken(accessTokenObject.getString("access_token"))
|
||||
@ -56,7 +57,7 @@ public class AuthProginnRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthUser getUserInfo(AuthToken authToken) {
|
||||
String userInfo = doGetUserInfo(authToken);
|
||||
JSONObject object = JSONObject.parseObject(userInfo);
|
||||
Kv object = JsonUtil.parseKv(userInfo);
|
||||
this.checkResponse(object);
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(object)
|
||||
@ -76,7 +77,7 @@ public class AuthProginnRequest extends AuthDefaultRequest {
|
||||
*
|
||||
* @param object 请求响应内容
|
||||
*/
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (object.containsKey("error")) {
|
||||
throw new AuthException(object.getString("error_description"));
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||
@ -48,7 +49,7 @@ public class AuthQqRequest extends AuthDefaultRequest {
|
||||
protected AuthUser getUserInfo(AuthToken authToken) {
|
||||
String openId = this.getOpenId(authToken);
|
||||
String response = doGetUserInfo(authToken);
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
if (object.getIntValue("ret") != 0) {
|
||||
throw new AuthException(object.getString("msg"));
|
||||
}
|
||||
@ -86,7 +87,7 @@ public class AuthQqRequest extends AuthDefaultRequest {
|
||||
String removePrefix = response.replace("callback(", "");
|
||||
String removeSuffix = removePrefix.replace(");", "");
|
||||
String openId = removeSuffix.trim();
|
||||
JSONObject object = JSONObject.parseObject(openId);
|
||||
Kv object = JsonUtil.parseKv(openId);
|
||||
if (object.containsKey("error")) {
|
||||
throw new AuthException(object.get("error") + ":" + object.get("error_description"));
|
||||
}
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import com.xkcoding.http.util.UrlUtil;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
@ -16,6 +17,7 @@ import me.zhyd.oauth.utils.AuthScopeUtils;
|
||||
import me.zhyd.oauth.utils.HttpUtils;
|
||||
import me.zhyd.oauth.utils.UrlBuilder;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import static me.zhyd.oauth.config.AuthDefaultSource.RENREN;
|
||||
@ -45,7 +47,7 @@ public class AuthRenrenRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthUser getUserInfo(AuthToken authToken) {
|
||||
String response = doGetUserInfo(authToken);
|
||||
JSONObject userObj = JSONObject.parseObject(response).getJSONObject("response");
|
||||
Kv userObj = JsonUtil.parseKv(response).getKv("response");
|
||||
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(userObj)
|
||||
@ -69,42 +71,42 @@ public class AuthRenrenRequest extends AuthDefaultRequest {
|
||||
|
||||
private AuthToken getToken(String url) {
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(url).getBody();
|
||||
JSONObject jsonObject = JSONObject.parseObject(response);
|
||||
if (jsonObject.containsKey("error")) {
|
||||
throw new AuthException("Failed to get token from Renren: " + jsonObject);
|
||||
Kv kv = JsonUtil.parseKv(response);
|
||||
if (kv.containsKey("error")) {
|
||||
throw new AuthException("Failed to get token from Renren: " + kv);
|
||||
}
|
||||
|
||||
return AuthToken.builder()
|
||||
.tokenType(jsonObject.getString("token_type"))
|
||||
.expireIn(jsonObject.getIntValue("expires_in"))
|
||||
.accessToken(UrlUtil.urlEncode(jsonObject.getString("access_token")))
|
||||
.refreshToken(UrlUtil.urlEncode(jsonObject.getString("refresh_token")))
|
||||
.openId(jsonObject.getJSONObject("user").getString("id"))
|
||||
.tokenType(kv.getString("token_type"))
|
||||
.expireIn(kv.getIntValue("expires_in"))
|
||||
.accessToken(UrlUtil.urlEncode(kv.getString("access_token")))
|
||||
.refreshToken(UrlUtil.urlEncode(kv.getString("refresh_token")))
|
||||
.openId(kv.getKv("user").getString("id"))
|
||||
.build();
|
||||
}
|
||||
|
||||
private String getAvatarUrl(JSONObject userObj) {
|
||||
JSONArray jsonArray = userObj.getJSONArray("avatar");
|
||||
if (Objects.isNull(jsonArray) || jsonArray.isEmpty()) {
|
||||
private String getAvatarUrl(Kv userObj) {
|
||||
List<Kv> kvs = userObj.getListKv("avatar");
|
||||
if (Objects.isNull(kvs) || kvs.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
return jsonArray.getJSONObject(0).getString("url");
|
||||
return kvs.get(0).getString("url");
|
||||
}
|
||||
|
||||
private AuthUserGender getGender(JSONObject userObj) {
|
||||
JSONObject basicInformation = userObj.getJSONObject("basicInformation");
|
||||
private AuthUserGender getGender(Kv userObj) {
|
||||
Kv basicInformation = userObj.getKv("basicInformation");
|
||||
if (Objects.isNull(basicInformation)) {
|
||||
return AuthUserGender.UNKNOWN;
|
||||
}
|
||||
return AuthUserGender.getRealGender(basicInformation.getString("sex"));
|
||||
}
|
||||
|
||||
private String getCompany(JSONObject userObj) {
|
||||
JSONArray jsonArray = userObj.getJSONArray("work");
|
||||
if (Objects.isNull(jsonArray) || jsonArray.isEmpty()) {
|
||||
private String getCompany(Kv userObj) {
|
||||
List<Kv> kvs = userObj.getListKv("work");
|
||||
if (Objects.isNull(kvs) || kvs.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
return jsonArray.getJSONObject(0).getString("name");
|
||||
return kvs.get(0).getString("name");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import com.xkcoding.http.support.HttpHeader;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
@ -18,6 +19,8 @@ import me.zhyd.oauth.utils.AuthScopeUtils;
|
||||
import me.zhyd.oauth.utils.HttpUtils;
|
||||
import me.zhyd.oauth.utils.UrlBuilder;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* slack登录, slack.com
|
||||
*
|
||||
@ -40,13 +43,13 @@ public class AuthSlackRequest extends AuthDefaultRequest {
|
||||
.add("Content-Type", "application/x-www-form-urlencoded");
|
||||
String response = new HttpUtils(config.getHttpConfig())
|
||||
.get(accessTokenUrl(authCallback.getCode()), null, header, false).getBody();
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
this.checkResponse(accessTokenObject);
|
||||
return AuthToken.builder()
|
||||
.accessToken(accessTokenObject.getString("access_token"))
|
||||
.scope(accessTokenObject.getString("scope"))
|
||||
.tokenType(accessTokenObject.getString("token_type"))
|
||||
.uid(accessTokenObject.getJSONObject("authed_user").getString("id"))
|
||||
.uid(accessTokenObject.getKv("authed_user").getString("id"))
|
||||
.build();
|
||||
}
|
||||
|
||||
@ -57,10 +60,10 @@ public class AuthSlackRequest extends AuthDefaultRequest {
|
||||
.add("Authorization", "Bearer ".concat(authToken.getAccessToken()));
|
||||
String userInfo = new HttpUtils(config.getHttpConfig())
|
||||
.get(userInfoUrl(authToken), null, header, false).getBody();
|
||||
JSONObject object = JSONObject.parseObject(userInfo);
|
||||
Kv object = JsonUtil.parseKv(userInfo);
|
||||
this.checkResponse(object);
|
||||
JSONObject user = object.getJSONObject("user");
|
||||
JSONObject profile = user.getJSONObject("profile");
|
||||
Kv user = object.getKv("user");
|
||||
Kv profile = user.getKv("profile");
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(user)
|
||||
.uuid(user.getString("id"))
|
||||
@ -81,7 +84,7 @@ public class AuthSlackRequest extends AuthDefaultRequest {
|
||||
.add("Authorization", "Bearer ".concat(authToken.getAccessToken()));
|
||||
String userInfo = new HttpUtils(config.getHttpConfig())
|
||||
.get(source.revoke(), null, header, false).getBody();
|
||||
JSONObject object = JSONObject.parseObject(userInfo);
|
||||
Kv object = JsonUtil.parseKv(userInfo);
|
||||
this.checkResponse(object);
|
||||
// 返回1表示取消授权成功,否则失败
|
||||
AuthResponseStatus status = object.getBooleanValue("revoked") ? AuthResponseStatus.SUCCESS : AuthResponseStatus.FAILURE;
|
||||
@ -93,13 +96,13 @@ public class AuthSlackRequest extends AuthDefaultRequest {
|
||||
*
|
||||
* @param object 请求响应内容
|
||||
*/
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (!object.getBooleanValue("ok")) {
|
||||
String errorMsg = object.getString("error");
|
||||
if (object.containsKey("response_metadata")) {
|
||||
JSONArray array = object.getJSONObject("response_metadata").getJSONArray("messages");
|
||||
if (null != array && array.size() > 0) {
|
||||
errorMsg += "; " + String.join(",", array.toArray(new String[0]));
|
||||
List<String> kvs = object.getKv("response_metadata").getArrayList("messages");
|
||||
if (null != kvs && kvs.size() > 0) {
|
||||
errorMsg += "; " + String.join(",", kvs.toArray(new String[0]));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import com.xkcoding.http.constants.Constants;
|
||||
import com.xkcoding.http.support.HttpHeader;
|
||||
import com.xkcoding.http.util.MapUtil;
|
||||
@ -44,7 +45,7 @@ public class AuthStackOverflowRequest extends AuthDefaultRequest {
|
||||
httpHeader.add(Constants.CONTENT_TYPE, "application/x-www-form-urlencoded");
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(accessTokenUrl, form, httpHeader, false).getBody();
|
||||
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
this.checkResponse(accessTokenObject);
|
||||
|
||||
return AuthToken.builder()
|
||||
@ -61,9 +62,9 @@ public class AuthStackOverflowRequest extends AuthDefaultRequest {
|
||||
.queryParam("key", this.config.getStackOverflowKey())
|
||||
.build();
|
||||
String response = new HttpUtils(config.getHttpConfig()).get(userInfoUrl).getBody();
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
this.checkResponse(object);
|
||||
JSONObject userObj = object.getJSONArray("items").getJSONObject(0);
|
||||
Kv userObj = object.getListKv("items").get(0);
|
||||
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(userObj)
|
||||
@ -97,7 +98,7 @@ public class AuthStackOverflowRequest extends AuthDefaultRequest {
|
||||
*
|
||||
* @param object 请求响应内容
|
||||
*/
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (object.containsKey("error")) {
|
||||
throw new AuthException(object.getString("error_description"));
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||
@ -37,7 +38,7 @@ public class AuthTaobaoRequest extends AuthDefaultRequest {
|
||||
return AuthToken.builder().accessCode(authCallback.getCode()).build();
|
||||
}
|
||||
|
||||
private AuthToken getAuthToken(JSONObject object) {
|
||||
private AuthToken getAuthToken(Kv object) {
|
||||
this.checkResponse(object);
|
||||
|
||||
return AuthToken.builder()
|
||||
@ -51,7 +52,7 @@ public class AuthTaobaoRequest extends AuthDefaultRequest {
|
||||
.build();
|
||||
}
|
||||
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (object.containsKey("error")) {
|
||||
throw new AuthException(object.getString("error_description"));
|
||||
}
|
||||
@ -60,7 +61,7 @@ public class AuthTaobaoRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthUser getUserInfo(AuthToken authToken) {
|
||||
String response = doPostAuthorizationCode(authToken.getAccessCode());
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
if (accessTokenObject.containsKey("error")) {
|
||||
throw new AuthException(accessTokenObject.getString("error_description"));
|
||||
}
|
||||
@ -82,7 +83,7 @@ public class AuthTaobaoRequest extends AuthDefaultRequest {
|
||||
public AuthResponse refresh(AuthToken oldToken) {
|
||||
String tokenUrl = refreshTokenUrl(oldToken.getRefreshToken());
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(tokenUrl).getBody();
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
return AuthResponse.builder()
|
||||
.code(AuthResponseStatus.SUCCESS.getCode())
|
||||
.data(this.getAuthToken(accessTokenObject))
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.utils.HttpUtils;
|
||||
import com.xkcoding.http.support.HttpHeader;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
@ -46,7 +46,7 @@ public class AuthTeambitionRequest extends AuthDefaultRequest {
|
||||
form.put("grant_type", "code");
|
||||
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(source.accessToken(), form, false).getBody();
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(accessTokenObject);
|
||||
|
||||
@ -65,7 +65,7 @@ public class AuthTeambitionRequest extends AuthDefaultRequest {
|
||||
|
||||
String response = new HttpUtils(config.getHttpConfig())
|
||||
.get(source.userInfo(), null, httpHeader, false).getBody();
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(object);
|
||||
|
||||
@ -95,7 +95,7 @@ public class AuthTeambitionRequest extends AuthDefaultRequest {
|
||||
form.put("_userId", uid);
|
||||
form.put("refresh_token", refreshToken);
|
||||
String response = new HttpUtils(config.getHttpConfig()).post(source.refresh(), form, false).getBody();
|
||||
JSONObject refreshTokenObject = JSONObject.parseObject(response);
|
||||
Kv refreshTokenObject = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(refreshTokenObject);
|
||||
|
||||
@ -113,7 +113,7 @@ public class AuthTeambitionRequest extends AuthDefaultRequest {
|
||||
*
|
||||
* @param object 请求响应内容
|
||||
*/
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if ((object.containsKey("message") && object.containsKey("name"))) {
|
||||
throw new AuthException(object.getString("name") + ", " + object.getString("message"));
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||
@ -31,7 +32,7 @@ public class AuthToutiaoRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthToken getAccessToken(AuthCallback authCallback) {
|
||||
String response = doGetAuthorizationCode(authCallback.getCode());
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(accessTokenObject);
|
||||
|
||||
@ -46,11 +47,11 @@ public class AuthToutiaoRequest extends AuthDefaultRequest {
|
||||
protected AuthUser getUserInfo(AuthToken authToken) {
|
||||
String userResponse = doGetUserInfo(authToken);
|
||||
|
||||
JSONObject userProfile = JSONObject.parseObject(userResponse);
|
||||
Kv userProfile = JsonUtil.parseKv(userResponse);
|
||||
|
||||
this.checkResponse(userProfile);
|
||||
|
||||
JSONObject user = userProfile.getJSONObject("data");
|
||||
Kv user = userProfile.getKv("data");
|
||||
|
||||
boolean isAnonymousUser = user.getIntValue("uid_type") == 14;
|
||||
String anonymousUserName = "匿名用户";
|
||||
@ -122,7 +123,7 @@ public class AuthToutiaoRequest extends AuthDefaultRequest {
|
||||
*
|
||||
* @param object 请求响应内容
|
||||
*/
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (object.containsKey("error_code")) {
|
||||
throw new AuthException(AuthToutiaoErrorCode.getErrorCode(object.getIntValue("error_code")).getDesc());
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import com.xkcoding.http.constants.Constants;
|
||||
import com.xkcoding.http.support.HttpHeader;
|
||||
import com.xkcoding.http.util.MapUtil;
|
||||
@ -134,7 +135,7 @@ public class AuthTwitterRequest extends AuthDefaultRequest {
|
||||
httpHeader.add("Authorization", header);
|
||||
String response = new HttpUtils(config.getHttpConfig())
|
||||
.get(userInfoUrl(authToken), null, httpHeader, false).getBody();
|
||||
JSONObject userInfo = JSONObject.parseObject(response);
|
||||
Kv userInfo = JsonUtil.parseKv(response);
|
||||
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(userInfo)
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||
@ -59,7 +60,7 @@ public class AuthWeChatEnterpriseThirdQrcodeRequest extends AbstractAuthWeChatEn
|
||||
protected AuthToken getAccessToken(AuthCallback authCallback) {
|
||||
try {
|
||||
String response = doGetAuthorizationCode(accessTokenUrl());
|
||||
JSONObject object = this.checkResponse(response);
|
||||
Kv object = this.checkResponse(response);
|
||||
AuthToken authToken = AuthToken.builder()
|
||||
.accessToken(object.getString("provider_access_token"))
|
||||
.expireIn(object.getIntValue("expires_in"))
|
||||
@ -72,10 +73,10 @@ public class AuthWeChatEnterpriseThirdQrcodeRequest extends AbstractAuthWeChatEn
|
||||
|
||||
@Override
|
||||
protected String doGetAuthorizationCode(String code) {
|
||||
JSONObject data = new JSONObject();
|
||||
Kv data = new Kv();
|
||||
data.put("corpid", config.getClientId());
|
||||
data.put("provider_secret", config.getClientSecret());
|
||||
return new HttpUtils(config.getHttpConfig()).post(accessTokenUrl(code), data.toJSONString()).getBody();
|
||||
return new HttpUtils(config.getHttpConfig()).post(accessTokenUrl(code), JsonUtil.toJsonString(data)).getBody();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -90,7 +91,7 @@ public class AuthWeChatEnterpriseThirdQrcodeRequest extends AbstractAuthWeChatEn
|
||||
|
||||
@Override
|
||||
protected AuthUser getUserInfo(AuthToken authToken) {
|
||||
JSONObject response = this.checkResponse(doGetUserInfo(authToken));
|
||||
Kv response = this.checkResponse(doGetUserInfo(authToken));
|
||||
return AuthUser.builder()
|
||||
.rawUserInfo(response)
|
||||
.build();
|
||||
@ -98,10 +99,10 @@ public class AuthWeChatEnterpriseThirdQrcodeRequest extends AbstractAuthWeChatEn
|
||||
|
||||
@Override
|
||||
protected String doGetUserInfo(AuthToken authToken) {
|
||||
JSONObject data = new JSONObject();
|
||||
Kv data = new Kv();
|
||||
data.put("auth_code", authToken.getCode());
|
||||
return new HttpUtils(config.getHttpConfig())
|
||||
.post(userInfoUrl(authToken), data.toJSONString()).getBody();
|
||||
.post(userInfoUrl(authToken), JsonUtil.toJsonString(data)).getBody();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -111,8 +112,8 @@ public class AuthWeChatEnterpriseThirdQrcodeRequest extends AbstractAuthWeChatEn
|
||||
build();
|
||||
}
|
||||
|
||||
private JSONObject checkResponse(String response) {
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
private Kv checkResponse(String response) {
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
if (object.containsKey("errcode") && object.getIntValue("errcode") != 0) {
|
||||
throw new AuthException(object.getString("errmsg"), source);
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||
@ -48,7 +49,7 @@ public class AuthWeChatMpRequest extends AuthDefaultRequest {
|
||||
String openId = authToken.getOpenId();
|
||||
|
||||
String response = doGetUserInfo(authToken);
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(object);
|
||||
|
||||
@ -85,7 +86,7 @@ public class AuthWeChatMpRequest extends AuthDefaultRequest {
|
||||
*
|
||||
* @param object 请求响应内容
|
||||
*/
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (object.containsKey("errcode")) {
|
||||
throw new AuthException(object.getIntValue("errcode"), object.getString("errmsg"));
|
||||
}
|
||||
@ -99,7 +100,7 @@ public class AuthWeChatMpRequest extends AuthDefaultRequest {
|
||||
*/
|
||||
private AuthToken getToken(String accessTokenUrl) {
|
||||
String response = new HttpUtils(config.getHttpConfig()).get(accessTokenUrl).getBody();
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(accessTokenObject);
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import me.zhyd.oauth.utils.HttpUtils;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
@ -45,7 +46,7 @@ public class AuthWeChatOpenRequest extends AuthDefaultRequest {
|
||||
String openId = authToken.getOpenId();
|
||||
|
||||
String response = doGetUserInfo(authToken);
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(object);
|
||||
|
||||
@ -81,7 +82,7 @@ public class AuthWeChatOpenRequest extends AuthDefaultRequest {
|
||||
*
|
||||
* @param object 请求响应内容
|
||||
*/
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (object.containsKey("errcode")) {
|
||||
throw new AuthException(object.getIntValue("errcode"), object.getString("errmsg"));
|
||||
}
|
||||
@ -95,7 +96,7 @@ public class AuthWeChatOpenRequest extends AuthDefaultRequest {
|
||||
*/
|
||||
private AuthToken getToken(String accessTokenUrl) {
|
||||
String response = new HttpUtils(config.getHttpConfig()).get(accessTokenUrl).getBody();
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
|
||||
this.checkResponse(accessTokenObject);
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import com.xkcoding.http.support.HttpHeader;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
@ -35,7 +36,7 @@ public class AuthWeiboRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
protected AuthToken getAccessToken(AuthCallback authCallback) {
|
||||
String response = doPostAuthorizationCode(authCallback.getCode());
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
if (accessTokenObject.containsKey("error")) {
|
||||
throw new AuthException(accessTokenObject.getString("error_description"));
|
||||
}
|
||||
@ -58,7 +59,7 @@ public class AuthWeiboRequest extends AuthDefaultRequest {
|
||||
httpHeader.add("API-RemoteIP", IpUtils.getLocalIp());
|
||||
String userInfo = new HttpUtils(config.getHttpConfig())
|
||||
.get(userInfoUrl(authToken), null, httpHeader, false).getBody();
|
||||
JSONObject object = JSONObject.parseObject(userInfo);
|
||||
Kv object = JsonUtil.parseKv(userInfo);
|
||||
if (object.containsKey("error")) {
|
||||
throw new AuthException(object.getString("error"));
|
||||
}
|
||||
@ -102,7 +103,7 @@ public class AuthWeiboRequest extends AuthDefaultRequest {
|
||||
@Override
|
||||
public AuthResponse revoke(AuthToken authToken) {
|
||||
String response = doGetRevoke(authToken);
|
||||
JSONObject object = JSONObject.parseObject(response);
|
||||
Kv object = JsonUtil.parseKv(response);
|
||||
if (object.containsKey("error")) {
|
||||
return AuthResponse.builder()
|
||||
.code(AuthResponseStatus.FAILURE.getCode())
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package me.zhyd.oauth.request;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.JsonUtil;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import com.xkcoding.http.HttpUtil;
|
||||
import me.zhyd.oauth.cache.AuthStateCache;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
@ -51,7 +52,7 @@ public class AuthXmlyRequest extends AuthDefaultRequest {
|
||||
map.put("grant_type", "authorization_code");
|
||||
map.put("redirect_uri", config.getRedirectUri());
|
||||
String response = HttpUtil.post(source.accessToken(), map, true).getBody();
|
||||
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||
Kv accessTokenObject = JsonUtil.parseKv(response);
|
||||
this.checkResponse(accessTokenObject);
|
||||
|
||||
return AuthToken.builder()
|
||||
@ -98,7 +99,7 @@ public class AuthXmlyRequest extends AuthDefaultRequest {
|
||||
map.put("access_token", authToken.getAccessToken());
|
||||
map.put("sig", GlobalAuthUtils.generateXmlySignature(map, config.getClientSecret()));
|
||||
String rawUserInfo = HttpUtil.get(source.userInfo(), map, false).getBody();
|
||||
JSONObject object = JSONObject.parseObject(rawUserInfo);
|
||||
Kv object = JsonUtil.parseKv(rawUserInfo);
|
||||
checkResponse(object);
|
||||
return AuthUser.builder()
|
||||
.uuid(object.getString("id"))
|
||||
@ -116,7 +117,7 @@ public class AuthXmlyRequest extends AuthDefaultRequest {
|
||||
*
|
||||
* @param object 接口返回的结果
|
||||
*/
|
||||
private void checkResponse(JSONObject object) {
|
||||
private void checkResponse(Kv object) {
|
||||
if (object.containsKey("errcode")) {
|
||||
throw new AuthException(object.getIntValue("error_no"), object.getString("error_desc"));
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package me.zhyd.oauth.utils;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xkcoding.json.util.Kv;
|
||||
import com.alibaba.fastjson.JSONPath;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
@ -31,7 +31,7 @@ public class JsonPathTest {
|
||||
|
||||
Map<String, Object> master = new HashMap<>();
|
||||
master.put("elements", list);
|
||||
JSONObject emailObj = JSONObject.parseObject(JSON.toJSONString(master));
|
||||
Kv emailObj = JsonUtil.parseKv(JSON.toJSONString(master));
|
||||
Object object = JSONPath.eval(emailObj, "$['elements'][0]['handle~']['emailAddress']");
|
||||
Assert.assertEquals("xxxx", object);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user