diff --git a/pom.xml b/pom.xml
index e4ab741..2ae4cb4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
me.zhyd.oauth
JustAuth
- 1.16.5
+ 1.16.6
JustAuth
https://gitee.com/yadong.zhang/JustAuth
@@ -58,9 +58,9 @@
1.6
false
1.0.5
+ 0.0.4
1.18.20
4.13.2
- 1.2.83
4.17.5.ALL
0.8.2
@@ -77,17 +77,17 @@
simple-http
${simple-http.version}
+
+ com.xkcoding.json
+ simple-json
+ ${simple-json.version}
+
junit
junit
${junit-version}
test
-
- com.alibaba
- fastjson
- ${fastjson-version}
-
com.alipay.sdk
alipay-sdk-java
diff --git a/src/main/java/me/zhyd/oauth/model/AuthUser.java b/src/main/java/me/zhyd/oauth/model/AuthUser.java
index ab88b52..284b4dd 100644
--- a/src/main/java/me/zhyd/oauth/model/AuthUser.java
+++ b/src/main/java/me/zhyd/oauth/model/AuthUser.java
@@ -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 rawUserInfo;
/**
* 微信公众号 - 网页授权的登录时可用
diff --git a/src/main/java/me/zhyd/oauth/request/AbstractAuthDingtalkRequest.java b/src/main/java/me/zhyd/oauth/request/AbstractAuthDingtalkRequest.java
index b331e78..9fe5a70 100644
--- a/src/main/java/me/zhyd/oauth/request/AbstractAuthDingtalkRequest.java
+++ b/src/main/java/me/zhyd/oauth/request/AbstractAuthDingtalkRequest.java
@@ -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"))
diff --git a/src/main/java/me/zhyd/oauth/request/AbstractAuthMicrosoftRequest.java b/src/main/java/me/zhyd/oauth/request/AbstractAuthMicrosoftRequest.java
index 2195d5e..4e466c1 100644
--- a/src/main/java/me/zhyd/oauth/request/AbstractAuthMicrosoftRequest.java
+++ b/src/main/java/me/zhyd/oauth/request/AbstractAuthMicrosoftRequest.java
@@ -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 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)
diff --git a/src/main/java/me/zhyd/oauth/request/AbstractAuthWeChatEnterpriseRequest.java b/src/main/java/me/zhyd/oauth/request/AbstractAuthWeChatEnterpriseRequest.java
index a2105cf..2505ebb 100644
--- a/src/main/java/me/zhyd/oauth/request/AbstractAuthWeChatEnterpriseRequest.java
+++ b/src/main/java/me/zhyd/oauth/request/AbstractAuthWeChatEnterpriseRequest.java
@@ -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);
}
diff --git a/src/main/java/me/zhyd/oauth/request/AuthAlipayRequest.java b/src/main/java/me/zhyd/oauth/request/AuthAlipayRequest.java
index 98acc0e..b1b0ffe 100644
--- a/src/main/java/me/zhyd/oauth/request/AuthAlipayRequest.java
+++ b/src/main/java/me/zhyd/oauth/request/AuthAlipayRequest.java
@@ -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())
diff --git a/src/main/java/me/zhyd/oauth/request/AuthAliyunRequest.java b/src/main/java/me/zhyd/oauth/request/AuthAliyunRequest.java
index 9d4f98f..c36a5cf 100644
--- a/src/main/java/me/zhyd/oauth/request/AuthAliyunRequest.java
+++ b/src/main/java/me/zhyd/oauth/request/AuthAliyunRequest.java
@@ -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"))
diff --git a/src/main/java/me/zhyd/oauth/request/AuthAmazonRequest.java b/src/main/java/me/zhyd/oauth/request/AuthAmazonRequest.java
index 99652cb..7898793 100644
--- a/src/main/java/me/zhyd/oauth/request/AuthAmazonRequest.java
+++ b/src/main/java/me/zhyd/oauth/request/AuthAmazonRequest.java
@@ -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);
}
}
diff --git a/src/main/java/me/zhyd/oauth/request/AuthBaiduRequest.java b/src/main/java/me/zhyd/oauth/request/AuthBaiduRequest.java
index 99be903..3106468 100644
--- a/src/main/java/me/zhyd/oauth/request/AuthBaiduRequest.java
+++ b/src/main/java/me/zhyd/oauth/request/AuthBaiduRequest.java
@@ -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"))
diff --git a/src/main/java/me/zhyd/oauth/request/AuthCodingRequest.java b/src/main/java/me/zhyd/oauth/request/AuthCodingRequest.java
index 6adc72b..9735a98 100644
--- a/src/main/java/me/zhyd/oauth/request/AuthCodingRequest.java
+++ b/src/main/java/me/zhyd/oauth/request/AuthCodingRequest.java
@@ -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"));
}
diff --git a/src/main/java/me/zhyd/oauth/request/AuthCsdnRequest.java b/src/main/java/me/zhyd/oauth/request/AuthCsdnRequest.java
index 074a38d..541cc20 100644
--- a/src/main/java/me/zhyd/oauth/request/AuthCsdnRequest.java
+++ b/src/main/java/me/zhyd/oauth/request/AuthCsdnRequest.java
@@ -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"));
}
diff --git a/src/main/java/me/zhyd/oauth/request/AuthDouyinRequest.java b/src/main/java/me/zhyd/oauth/request/AuthDouyinRequest.java
index fcd7485..79310cb 100644
--- a/src/main/java/me/zhyd/oauth/request/AuthDouyinRequest.java
+++ b/src/main/java/me/zhyd/oauth/request/AuthDouyinRequest.java
@@ -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"))
diff --git a/src/main/java/me/zhyd/oauth/request/AuthElemeRequest.java b/src/main/java/me/zhyd/oauth/request/AuthElemeRequest.java
index 7011011..8acdcd6 100644
--- a/src/main/java/me/zhyd/oauth/request/AuthElemeRequest.java
+++ b/src/main/java/me/zhyd/oauth/request/AuthElemeRequest.java
@@ -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"));
}
diff --git a/src/main/java/me/zhyd/oauth/request/AuthFacebookRequest.java b/src/main/java/me/zhyd/oauth/request/AuthFacebookRequest.java
index e9897a8..b1a3a10 100644
--- a/src/main/java/me/zhyd/oauth/request/AuthFacebookRequest.java
+++ b/src/main/java/me/zhyd/oauth/request/AuthFacebookRequest.java
@@ -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"));
}
}
diff --git a/src/main/java/me/zhyd/oauth/request/AuthFeishuRequest.java b/src/main/java/me/zhyd/oauth/request/AuthFeishuRequest.java
index 88f5b50..3e1e28c 100644
--- a/src/main/java/me/zhyd/oauth/request/AuthFeishuRequest.java
+++ b/src/main/java/me/zhyd/oauth/request/AuthFeishuRequest.java
@@ -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"));
}
}
diff --git a/src/main/java/me/zhyd/oauth/request/AuthGiteeRequest.java b/src/main/java/me/zhyd/oauth/request/AuthGiteeRequest.java
index 735701c..668a0a5 100644
--- a/src/main/java/me/zhyd/oauth/request/AuthGiteeRequest.java
+++ b/src/main/java/me/zhyd/oauth/request/AuthGiteeRequest.java
@@ -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"));
}
diff --git a/src/main/java/me/zhyd/oauth/request/AuthGithubRequest.java b/src/main/java/me/zhyd/oauth/request/AuthGithubRequest.java
index 2023162..556feac 100644
--- a/src/main/java/me/zhyd/oauth/request/AuthGithubRequest.java
+++ b/src/main/java/me/zhyd/oauth/request/AuthGithubRequest.java
@@ -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"));
diff --git a/src/main/java/me/zhyd/oauth/request/AuthGitlabRequest.java b/src/main/java/me/zhyd/oauth/request/AuthGitlabRequest.java
index a56a69d..fad5a4c 100644
--- a/src/main/java/me/zhyd/oauth/request/AuthGitlabRequest.java
+++ b/src/main/java/me/zhyd/oauth/request/AuthGitlabRequest.java
@@ -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"));
diff --git a/src/main/java/me/zhyd/oauth/request/AuthGoogleRequest.java b/src/main/java/me/zhyd/oauth/request/AuthGoogleRequest.java
index 04d7493..402d12b 100644
--- a/src/main/java/me/zhyd/oauth/request/AuthGoogleRequest.java
+++ b/src/main/java/me/zhyd/oauth/request/AuthGoogleRequest.java
@@ -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"));
}
diff --git a/src/main/java/me/zhyd/oauth/request/AuthHuaweiRequest.java b/src/main/java/me/zhyd/oauth/request/AuthHuaweiRequest.java
index e2e9067..def0f9b 100644
--- a/src/main/java/me/zhyd/oauth/request/AuthHuaweiRequest.java
+++ b/src/main/java/me/zhyd/oauth/request/AuthHuaweiRequest.java
@@ -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"));
}
diff --git a/src/main/java/me/zhyd/oauth/request/AuthJdRequest.java b/src/main/java/me/zhyd/oauth/request/AuthJdRequest.java
index bb54375..b84e3cc 100644
--- a/src/main/java/me/zhyd/oauth/request/AuthJdRequest.java
+++ b/src/main/java/me/zhyd/oauth/request/AuthJdRequest.java
@@ -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"));
}
}
diff --git a/src/main/java/me/zhyd/oauth/request/AuthKujialeRequest.java b/src/main/java/me/zhyd/oauth/request/AuthKujialeRequest.java
index aac5ec1..5ea3413 100644
--- a/src/main/java/me/zhyd/oauth/request/AuthKujialeRequest.java
+++ b/src/main/java/me/zhyd/oauth/request/AuthKujialeRequest.java
@@ -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");
}
diff --git a/src/main/java/me/zhyd/oauth/request/AuthLineRequest.java b/src/main/java/me/zhyd/oauth/request/AuthLineRequest.java
index 18db7a8..a02c383 100644
--- a/src/main/java/me/zhyd/oauth/request/AuthLineRequest.java
+++ b/src/main/java/me/zhyd/oauth/request/AuthLineRequest.java
@@ -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()
diff --git a/src/main/java/me/zhyd/oauth/request/AuthLinkedinRequest.java b/src/main/java/me/zhyd/oauth/request/AuthLinkedinRequest.java
index 40598c8..d1de03f 100644
--- a/src/main/java/me/zhyd/oauth/request/AuthLinkedinRequest.java
+++ b/src/main/java/me/zhyd/oauth/request/AuthLinkedinRequest.java
@@ -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 displayImageElements = displayImageObject.getListKv("elements");
if (null == displayImageElements || displayImageElements.isEmpty()) {
return null;
}
- JSONObject largestImageObj = displayImageElements.getJSONObject(displayImageElements.size() - 1);
- if (null == largestImageObj || !largestImageObj.containsKey("identifiers")) {
- return null;
+ Kv largestImageKv = displayImageElements.get(displayImageElements.size() - 1);
+ if (null != largestImageKv) {
+ if (!largestImageKv.containsKey("identifiers")) {
+ return null;
+ }
+ List identifiers = largestImageKv.getListKv("identifiers");
+ if (null == identifiers || identifiers.isEmpty()) {
+ return null;
+ }
+ Kv identifierKv = identifiers.get(0);
+ return identifierKv.getString("identifier");
}
- JSONArray identifiers = largestImageObj.getJSONArray("identifiers");
- if (null == identifiers || identifiers.isEmpty()) {
- return null;
- }
- return identifiers.getJSONObject(0).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