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 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); diff --git a/src/main/java/me/zhyd/oauth/request/AuthMeituanRequest.java b/src/main/java/me/zhyd/oauth/request/AuthMeituanRequest.java index 63b64b4..f9a3afd 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthMeituanRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthMeituanRequest.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; @@ -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")); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthMiRequest.java b/src/main/java/me/zhyd/oauth/request/AuthMiRequest.java index 7d473ca..4785cc5 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthMiRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthMiRequest.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.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("小米开发平台暂时不对外开放用户手机及邮箱信息的获取"); diff --git a/src/main/java/me/zhyd/oauth/request/AuthOktaRequest.java b/src/main/java/me/zhyd/oauth/request/AuthOktaRequest.java index 5f35430..48231d4 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthOktaRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthOktaRequest.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; @@ -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")); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthOschinaRequest.java b/src/main/java/me/zhyd/oauth/request/AuthOschinaRequest.java index af5eb4e..1773833 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthOschinaRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthOschinaRequest.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 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")); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthPinterestRequest.java b/src/main/java/me/zhyd/oauth/request/AuthPinterestRequest.java index 9895876..8fbe7b7 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthPinterestRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthPinterestRequest.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.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")); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthProginnRequest.java b/src/main/java/me/zhyd/oauth/request/AuthProginnRequest.java index 03a56be..a758908 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthProginnRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthProginnRequest.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; @@ -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")); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthQqRequest.java b/src/main/java/me/zhyd/oauth/request/AuthQqRequest.java index c750695..560ef0e 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthQqRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthQqRequest.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; @@ -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")); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthRenrenRequest.java b/src/main/java/me/zhyd/oauth/request/AuthRenrenRequest.java index 2de6cc5..07b840f 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthRenrenRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthRenrenRequest.java @@ -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 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 kvs = userObj.getListKv("work"); + if (Objects.isNull(kvs) || kvs.isEmpty()) { return null; } - return jsonArray.getJSONObject(0).getString("name"); + return kvs.get(0).getString("name"); } /** diff --git a/src/main/java/me/zhyd/oauth/request/AuthSlackRequest.java b/src/main/java/me/zhyd/oauth/request/AuthSlackRequest.java index b1e1e30..830e82f 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthSlackRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthSlackRequest.java @@ -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 kvs = object.getKv("response_metadata").getArrayList("messages"); + if (null != kvs && kvs.size() > 0) { + errorMsg += "; " + String.join(",", kvs.toArray(new String[0])); } } diff --git a/src/main/java/me/zhyd/oauth/request/AuthStackOverflowRequest.java b/src/main/java/me/zhyd/oauth/request/AuthStackOverflowRequest.java index 969b456..97c54fe 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthStackOverflowRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthStackOverflowRequest.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.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")); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthTaobaoRequest.java b/src/main/java/me/zhyd/oauth/request/AuthTaobaoRequest.java index f1df52b..320240a 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthTaobaoRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthTaobaoRequest.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; @@ -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)) diff --git a/src/main/java/me/zhyd/oauth/request/AuthTeambitionRequest.java b/src/main/java/me/zhyd/oauth/request/AuthTeambitionRequest.java index d529379..31688c2 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthTeambitionRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthTeambitionRequest.java @@ -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")); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthToutiaoRequest.java b/src/main/java/me/zhyd/oauth/request/AuthToutiaoRequest.java index ef6a84b..78034b4 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthToutiaoRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthToutiaoRequest.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; @@ -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()); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthTwitterRequest.java b/src/main/java/me/zhyd/oauth/request/AuthTwitterRequest.java index 3ef9403..b8b6bb1 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthTwitterRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthTwitterRequest.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.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) diff --git a/src/main/java/me/zhyd/oauth/request/AuthWeChatEnterpriseThirdQrcodeRequest.java b/src/main/java/me/zhyd/oauth/request/AuthWeChatEnterpriseThirdQrcodeRequest.java index ed25196..e4b1d7f 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthWeChatEnterpriseThirdQrcodeRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthWeChatEnterpriseThirdQrcodeRequest.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; @@ -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); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthWeChatMpRequest.java b/src/main/java/me/zhyd/oauth/request/AuthWeChatMpRequest.java index 5ee1374..7ed73e2 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthWeChatMpRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthWeChatMpRequest.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; @@ -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); diff --git a/src/main/java/me/zhyd/oauth/request/AuthWeChatOpenRequest.java b/src/main/java/me/zhyd/oauth/request/AuthWeChatOpenRequest.java index 7198887..6080abe 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthWeChatOpenRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthWeChatOpenRequest.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 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); diff --git a/src/main/java/me/zhyd/oauth/request/AuthWeiboRequest.java b/src/main/java/me/zhyd/oauth/request/AuthWeiboRequest.java index 5f6024a..34e5498 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthWeiboRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthWeiboRequest.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; @@ -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()) diff --git a/src/main/java/me/zhyd/oauth/request/AuthXmlyRequest.java b/src/main/java/me/zhyd/oauth/request/AuthXmlyRequest.java index 2430aa2..e0c4ab6 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthXmlyRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthXmlyRequest.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.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")); } diff --git a/src/test/java/me/zhyd/oauth/utils/JsonPathTest.java b/src/test/java/me/zhyd/oauth/utils/JsonPathTest.java index 64ba241..ff87ede 100644 --- a/src/test/java/me/zhyd/oauth/utils/JsonPathTest.java +++ b/src/test/java/me/zhyd/oauth/utils/JsonPathTest.java @@ -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 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); }