1
0
mirror of synced 2025-12-08 14:54:17 +08:00

Compare commits

...

8 Commits

Author SHA1 Message Date
yadong.zhang
a75bac2cf7 🔖 发布1.9.2,修改AuthConfig类,适配spring starter配置 2019-07-22 17:30:18 +08:00
yadong.zhang
666d50b461 Merge branch 'master' into dev 2019-07-22 17:21:00 +08:00
yadong.zhang
7515301f50 Merge pull request #26 from xkcoding/refactor-AuthConfig
♻️ 添加注解,方便 justauth-spring-boot-starter 直接使用
2019-07-22 16:39:13 +08:00
Yangkai.Shen
cab222059c ♻️ 添加注解,方便 justauth-spring-boot-starter 直接使用 2019-07-22 15:29:48 +08:00
yadong.zhang
798e7556ba 🔖 增加stackoverflow参数校验、解决Pinterest获取用户失败的问题,发布v1.9.1 2019-07-20 17:21:21 +08:00
yadong.zhang
1244524da0 Merge branch 'master' of https://github.com/zhangyd-c/JustAuth 2019-07-19 22:28:35 +08:00
yadong.zhang
6708525d99 Merge pull request #25 from dyc12ii/master
升级fastjson版本至1.2.58,避免安全漏洞
2019-07-19 11:19:44 +08:00
dingyanchao
a599ced6b0 fastjson version 2019-07-19 11:15:08 +08:00
17 changed files with 78 additions and 41 deletions

View File

@@ -6,7 +6,7 @@
</p>
<p align="center">
<a target="_blank" href="https://search.maven.org/search?q=JustAuth">
<img src="https://img.shields.io/badge/Maven Central-1.9.0-blue.svg" ></img>
<img src="https://img.shields.io/badge/Maven Central-1.9.2-blue.svg" ></img>
</a>
<a target="_blank" href="https://gitee.com/yadong.zhang/JustAuth/blob/master/LICENSE">
<img src="https://img.shields.io/apm/l/vim-mode.svg?color=yellow" ></img>
@@ -15,7 +15,7 @@
<img src="https://img.shields.io/badge/JDK-1.8+-green.svg" ></img>
</a>
<a target="_blank" href="https://apidoc.gitee.com/yadong.zhang/JustAuth/">
<img src="https://img.shields.io/badge/Docs-1.9.0-orange.svg" ></img>
<img src="https://img.shields.io/badge/Docs-1.9.2-orange.svg" ></img>
</a>
</p>
@@ -76,7 +76,7 @@ JustAuth如你所见它仅仅是一个**第三方授权登录**的**工具
<dependency>
<groupId>me.zhyd.oauth</groupId>
<artifactId>JustAuth</artifactId>
<version>1.9.0</version>
<version>1.9.2</version>
</dependency>
```
- 调用api
@@ -148,7 +148,7 @@ _请知悉经咨询CSDN官方客服得知CSDN的授权开放平台已经
2. 把fork过去的项目也就是你仓库中的项目clone到你的本地
3. 修改代码
4. commit后push到自己的库
5. 发起PRpull request 请求
5. 发起PRpull request 请求,提交到`dev`分支
6. 等待作者合并
## 致谢

View File

@@ -6,7 +6,7 @@
<groupId>me.zhyd.oauth</groupId>
<artifactId>JustAuth</artifactId>
<version>1.9.0</version>
<version>1.9.2</version>
<name>JustAuth</name>
<url>https://gitee.com/yadong.zhang/JustAuth</url>
@@ -57,7 +57,7 @@
<hutool-version>4.5.15</hutool-version>
<lombok-version>1.18.4</lombok-version>
<junit-version>4.11</junit-version>
<fastjson-version>1.2.44</fastjson-version>
<fastjson-version>1.2.58</fastjson-version>
<alipay-sdk-version>3.7.4.ALL</alipay-sdk-version>
<slf4j-version>1.7.25</slf4j-version>
</properties>
@@ -190,4 +190,4 @@
</distributionManagement>
</profile>
</profiles>
</project>
</project>

View File

@@ -1,7 +1,6 @@
package me.zhyd.oauth.config;
import lombok.Builder;
import lombok.Getter;
import lombok.*;
/**
* JustAuth配置类
@@ -11,7 +10,10 @@ import lombok.Getter;
* @since 1.8
*/
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AuthConfig {
/**

View File

@@ -80,6 +80,7 @@ public abstract class AuthDefaultRequest implements AuthRequest {
/**
* 返回获取accessToken的url
*
* @param code 授权码
* @return 返回获取accessToken的url
*/
protected String accessTokenUrl(String code) {
@@ -95,6 +96,7 @@ public abstract class AuthDefaultRequest implements AuthRequest {
/**
* 返回获取accessToken的url
*
* @param refreshToken refreshToken
* @return 返回获取accessToken的url
*/
protected String refreshTokenUrl(String refreshToken) {
@@ -110,6 +112,7 @@ public abstract class AuthDefaultRequest implements AuthRequest {
/**
* 返回获取userInfo的url
*
* @param authToken token
* @return 返回获取userInfo的url
*/
protected String userInfoUrl(AuthToken authToken) {
@@ -119,6 +122,7 @@ public abstract class AuthDefaultRequest implements AuthRequest {
/**
* 返回获取revoke authorization的url
*
* @param authToken token
* @return 返回获取revoke authorization的url
*/
protected String revokeUrl(AuthToken authToken) {

View File

@@ -76,7 +76,7 @@ public class AuthDingTalkRequest extends AuthDefaultRequest {
/**
* 返回获取userInfo的url
*
* @param authToken
* @param authToken 用户授权后的token
* @return 返回获取userInfo的url
*/
@Override

View File

@@ -80,7 +80,7 @@ public class AuthGoogleRequest extends AuthDefaultRequest {
/**
* 返回获取userInfo的url
*
* @param authToken
* @param authToken 用户授权后的token
* @return 返回获取userInfo的url
*/
@Override

View File

@@ -200,7 +200,7 @@ public class AuthLinkedinRequest extends AuthDefaultRequest {
/**
* 返回获取userInfo的url
*
* @param authToken
* @param authToken 用户授权后的token
* @return 返回获取userInfo的url
*/
@Override

View File

@@ -128,7 +128,7 @@ public class AuthMiRequest extends AuthDefaultRequest {
/**
* 返回获取userInfo的url
*
* @param authToken
* @param authToken 用户授权后的token
* @return 返回获取userInfo的url
*/
@Override

View File

@@ -139,7 +139,7 @@ public class AuthMicrosoftRequest extends AuthDefaultRequest {
/**
* 返回获取userInfo的url
*
* @param authToken
* @param authToken 用户授权后的token
* @return 返回获取userInfo的url
*/
@Override
@@ -150,7 +150,7 @@ public class AuthMicrosoftRequest extends AuthDefaultRequest {
/**
* 返回获取accessToken的url
*
* @param refreshToken
* @param refreshToken 用户授权后的token
* @return 返回获取accessToken的url
*/
@Override

View File

@@ -77,7 +77,7 @@ public class AuthOschinaRequest extends AuthDefaultRequest {
/**
* 返回获取userInfo的url
*
* @param authToken
* @param authToken 用户授权后的token
* @return 返回获取userInfo的url
*/
@Override

View File

@@ -43,10 +43,8 @@ public class AuthPinterestRequest extends AuthDefaultRequest {
@Override
protected AuthUser getUserInfo(AuthToken authToken) {
String userinfoUrl = UrlBuilder.fromBaseUrl(userInfoUrl(authToken))
.queryParam("fields", "id,username,first_name,last_name,bio,image")
.build();
HttpResponse response = HttpRequest.post(userinfoUrl).execute();
String userinfoUrl = userInfoUrl(authToken);
HttpResponse response = HttpRequest.get(userinfoUrl).setFollowRedirects(true).execute();
JSONObject object = JSONObject.parseObject(response.body());
this.checkResponse(object);
JSONObject userObj = object.getJSONObject("data");
@@ -82,6 +80,19 @@ public class AuthPinterestRequest extends AuthDefaultRequest {
.build();
}
/**
* 返回获取userInfo的url
*
* @param authToken token
* @return 返回获取userInfo的url
*/
protected String userInfoUrl(AuthToken authToken) {
return UrlBuilder.fromBaseUrl(source.userInfo())
.queryParam("access_token", authToken.getAccessToken())
.queryParam("fields", "id,username,first_name,last_name,bio,image")
.build();
}
/**
* 检查响应内容是否正确
*

View File

@@ -100,7 +100,7 @@ public class AuthRenrenRequest extends AuthDefaultRequest {
/**
* 返回获取userInfo的url
*
* @param authToken
* @param authToken 用户授权后的token
* @return 返回获取userInfo的url
*/
@Override

View File

@@ -76,7 +76,7 @@ public class AuthWeiboRequest extends AuthDefaultRequest {
/**
* 返回获取userInfo的url
*
* @param authToken
* @param authToken authToken
* @return 返回获取userInfo的url
*/
@Override

View File

@@ -26,6 +26,9 @@ public class AuthChecker {
if (isSupported && AuthSource.ALIPAY == source) {
isSupported = StringUtils.isNotEmpty(config.getAlipayPublicKey());
}
if (isSupported && AuthSource.STACK_OVERFLOW == source) {
isSupported = StringUtils.isNotEmpty(config.getStackOverflowKey());
}
return isSupported;
}

View File

@@ -45,7 +45,7 @@ public class GlobalAuthUtil {
}
}
private static String urlEncode(String value) {
public static String urlEncode(String value) {
if (value == null) {
return "";
}

View File

@@ -14,7 +14,6 @@ import java.util.Map;
* </p>
*
* @author yangkai.shen (https://xkcoding.com)
* @date Created in 2019-07-18 15:47
* @version 1.0
* @since 1.8
*/

View File

@@ -1,4 +1,12 @@
### 2019/07/19
### 2019/07/22 [v1.9.2](https://gitee.com/yadong.zhang/JustAuth/releases/v1.9.2)
1. 合并github上[@xkcoding](https://github.com/xkcoding) 的[pr#26](https://github.com/zhangyd-c/JustAuth/pull/26)AuthConfig类添加lombok注解方便 [justauth-spring-boot-starter](https://github.com/xkcoding/justauth-spring-boot-starter) 直接使用
### 2019/07/22 [v1.9.1](https://gitee.com/yadong.zhang/JustAuth/releases/v1.9.1)
1. 增加`stackoverflow`参数校验
2. 解决`Pinterest`获取用户失败的问题
3. 添加注释
### 2019/07/19 [v1.9.0](https://gitee.com/yadong.zhang/JustAuth/releases/v1.9.0)
1. 合并github上[@dyc12ii](https://github.com/dyc12ii) 的[pr#25](https://github.com/zhangyd-c/JustAuth/pull/25)升级fastjson版本至1.2.58,避免安全漏洞
2. `AuthUserGender`枚举类挪到`enums`包下
@@ -28,29 +36,33 @@
4. `ResponseStatus` 改名为 `AuthResponseStatus` 并且移动到 `me.zhyd.oauth.model`
5. 合并github上[@xkcoding](https://github.com/xkcoding) 的[pr#18](https://github.com/zhangyd-c/JustAuth/pull/18),修复小米回调错误问题 同时 支持微信获取
### 2019/07/15
### 2019/07/15 [v1.8.1](https://gitee.com/yadong.zhang/JustAuth/releases/v1.8.1)
1. 新增 `AuthState`内置默认的state生成规则和校验规则
### 2019/07/12
1. 合并[Braavos96](https://github.com/Braavos96)提交的[PR#16](https://github.com/zhangyd-c/JustAuth/pull/16)
### 2019/06/28
### 2019/06/28 [v1.8.0](https://gitee.com/yadong.zhang/JustAuth/releases/v1.8.0)
1. 修复百度登录获取不到token失效时间的问题
2. 增加state参数校验预防CSRF。**强烈建议启用state**
### 2019/06/27
1.改login方法的参数为AuthCallback封装回调返回的参数
2. 支持state参数
3. 增加code和state参数校验
1.复百度登录获取不到token失效时间的问题
2. 增加state参数校验预防CSRF。**强烈建议启用state**
3. 修改login方法的参数为AuthCallback封装回调返回的参数
4. 支持state参数
5. 增加code和state参数校验
### 2019/06/25
由于state安全问题1.8.0以前的版本都有隐藏的CSRF漏洞问题所以强烈建议正在使用JustAuth的朋友升级到1.8.0版本!
### 2019/06/25 [v1.7.1](https://gitee.com/yadong.zhang/JustAuth/releases/v1.7.1)
qq授权登录时需要获取`openId`作为`uuid`,在`1.6.1-beta``1.7.0`版本中,引入了`unionId`这一属性。获取`unionid`需要单独向qq团队**发送邮件**申请权限,鉴于这一申请权限的步骤比较麻烦(需要填写的内容比较多),所以在`AuthConfig`中增加了一个`unionId`属性,当为**true**时才会获取unionid当为false时只获取openId。如果你需要该功能 则在自行申请了相关权限后将该属性置为true即可。关于unionId的参考链接[UnionID介绍](http://wiki.connect.qq.com/unionid%E4%BB%8B%E7%BB%8D)
### 2019/06/19
### 2019/06/19 [v1.7.0](https://gitee.com/yadong.zhang/JustAuth/releases/v1.7.0)
1. 合并[xkcoding](https://github.com/xkcoding)提交的[PR](https://github.com/zhangyd-c/JustAuth/pull/14)重构了部分代码jar包由原来的`130+kb`优化到现在的`110+kb`
2. 合并[skqing](https://gitee.com/skqing)提交的[PR](https://gitee.com/yadong.zhang/JustAuth/pulls/3) 解决抖音登录失败问题
### 2019/06/18
### 2019/06/18 [v1.6.1-beta](https://gitee.com/yadong.zhang/JustAuth/releases/v1.6.1-beta)
1. 解决Issue [#IY2HW](https://gitee.com/yadong.zhang/JustAuth/issues/IY2HW)
2. 解决Issue [#IY2OH](https://gitee.com/yadong.zhang/JustAuth/issues/IY2OH)
3. 解决Issue [#IY2FV](https://gitee.com/yadong.zhang/JustAuth/issues/IY2FV)
@@ -58,15 +70,15 @@ qq授权登录时需要获取`openId`作为`uuid`,在`1.6.1-beta`和`1.7.0`
5. 解决Issue [#IY1QR](https://gitee.com/yadong.zhang/JustAuth/issues/IY1QR) 增加对Config属性的校验功能主要校验redirect uri的合法性
6. 合并[skqing](https://gitee.com/skqing)提交的[PR](https://gitee.com/yadong.zhang/JustAuth/pulls/2)解决一些BUG
### 2019/06/06
### 2019/06/06 [v1.6.0-beta](https://gitee.com/yadong.zhang/JustAuth/releases/v1.6.0-beta)
1. 增加今日头条的授权登陆
2. 发布1.6.0-beta版本今日头条开发者暂时不能认证 所以无法做测试等测试通过后正式发布release版本
### 2019/05/28
### 2019/05/28 [v1.5.0](https://gitee.com/yadong.zhang/JustAuth/releases/v1.5.0)
1. 增加小米账号和微软的授权登陆
2. 发布1.5.0版本
### 2019/05/26
### 2019/05/26 [v1.4.0](https://gitee.com/yadong.zhang/JustAuth/releases/v1.4.0)
1. 增加抖音和Linkedin的授权登陆
2. 修改部分图片命名
3. 优化部分代码
@@ -74,22 +86,22 @@ qq授权登录时需要获取`openId`作为`uuid`,在`1.6.1-beta`和`1.7.0`
5. 修复支付宝登陆时用户名为空的问题
### 2019/05/24
### 2019/05/24 [v1.3.3](https://gitee.com/yadong.zhang/JustAuth/releases/v1.3.3)
1. 修复一些问题
2. 升级api在AuthUser中增加`uuid`属性,可以通过`uuid` + `source`唯一确定一个用户,此举解决了用户身份归属的问题。
3. 发布1.3.3版本的jar包到公开仓库1.3.2忘记发布了,( ╯□╰ )
4. 重要经咨询官方客服得知CSDN的授权开放平台已经下线如果以前申请过的应用可以继续使用但是不再支持申请新的应用。so, 本项目中的CSDN登录只能针对少部分用户使用了
### 2019/05/23
### 2019/05/23 [v1.3.1](https://gitee.com/yadong.zhang/JustAuth/releases/v1.3.1)
1. 修复QQ登录的问题
2. 发布1.3.1版本的jar包到公开仓库
### 2019/05/21
### 2019/05/21 [v1.3.0](https://gitee.com/yadong.zhang/JustAuth/releases/v1.3.0)
1. 新增google授权登录
2. 新增facebook授权登录
3. 发布1.3.0版本的jar包到公开仓库
### 2019/05/18
### 2019/05/18 [v1.1.0](https://gitee.com/yadong.zhang/JustAuth/releases/v1.1.0) | [v1.2.0](https://gitee.com/yadong.zhang/JustAuth/releases/v1.2.0)
1. 发布1.1.0版本的jar包到公开仓库支持qq和微信登录
2. 支持淘宝登录
3. 修改`AuthUser.java`类中的`accessToken`属性,由原本的~~accessToken (String)~~改为`token (AuthToken)`
@@ -98,4 +110,10 @@ qq授权登录时需要获取`openId`作为`uuid`,在`1.6.1-beta`和`1.7.0`
### 2019/05/17
1. 增加qq和微信的授权登录
2. 修改getAccessToken方法的返回值
2. 修改getAccessToken方法的返回值
### 2019/03/27 [v1.0.1](https://gitee.com/yadong.zhang/JustAuth/releases/v1.0.1)
集成 支付宝授权登录
### 2019/03/25 [v1.0.0](https://gitee.com/yadong.zhang/JustAuth/releases/v1.0.0)
史上最全的整合第三方登录的工具,目前已支持Github、Gitee、微博、钉钉和百度、Coding、腾讯云开发者平台和OSChina登录。 Login, so easy!