spring-security-oauth2从v2.4.0.RELEASE开始不推荐使用并迁移

spring-oauth-server最新的版本中使用的spring-security-oauth2版本为v2.3.8.RELEASE;但之后的版本中将不再升级spring-security-oauth2的版本。

这是因为在spring-security-oauth2官方从v2.4.0.RELEASE版本开始将所有类标识为过期的(@Deprecated),并且说明了原因。

* @deprecated See the <a href=”https://github.com/spring-projects/spring-security/wiki/OAuth-2.0-Migration-Guide”>OAuth 2.0 Migration Guide</a> for Spring Security 5.

所有类在IDE中显示为不推荐使用。

在查看迁移的文章 https://github.com/spring-projects/spring-security/wiki/OAuth-2.0-Migration-Guide 中说明有具体原因。

为此,在spring-oauth-server的最新开发版本中(https://gitee.com/shengzhao/spring-oauth-server/tree/2.1.1/)也将去掉spring security oauth2依赖,改用新的Spring Security提供的 spring-security-authorization-server来替换。

尽请期待。

spring-oauth-server v2.1.0增加token存储的配置说明

spring-oauth-server的v2.1.0版本中增加了新的配置属性:

sos.token.store=jwt

该配置项有两个可选值:jwt或jdbc(默认)

jwt – 表示使用jwt作为token的数据格式,性能更高,推荐使用;配置实现详见 JWTTokenStoreConfiguration.java类;

jdbc – 表示使用数据库存储token的数据(包括refresh token),支持之前版本的实现,也是默认选项,对应的配置实现详见 JdbcTokenStoreConfiguration.java

https://gitee.com/shengzhao/spring-oauth-server

OAuth2中token升级使用JWT的实现参考

OAuth2中默认使用 Bearer Tokens (一般用UUID值)作为token的数据格式,但也支持升级使用JSON Web Token(JWT)来作为token的数据格式。

20200918101526

下面以 spring-oauth-server 升级使用JWT来说明

重点在于提供一个 JwtTokenStore的配置类,详细可参见 MyOIDC 工程中的配置:https://gitee.com/mkk/MyOIDC/blob/master/myoidc-server/src/main/java/myoidc/server/config/OAuth2ServerConfiguration.java

需要注意的是底层使用的算法,可以是RSA也可以对称加密的HMAC等,具体可查看 JwtAccessTokenConverter.java 类。

对应的工程中需要增加 spring-security-jwt 库的依赖(如果是Maven工程)。

 

spring-oauth-server 2.0.2 发布,扩展 OAuth2 Server

spring-oauth-server在2020-06-04更新发布了2.0.2版本,spring-oauth-server是Spring与Oauth2整合示例。

此版本更新内容如下:

1.Fix CVE-2019-3778, use spring-security-oauth 2.3.5.RELEASE

2.解决数据库多条 access_token问题,增加唯一约束

3.升级Spring-Boot版本为2.1.4.RELEASE

 

2.0.2版本release链接: https://gitee.com/shengzhao/spring-oauth-server/releases

 

MyOIDC v1.1.1 发布,基于 OIDC 协议的参考实现,根据各类库提供实现参考

MyOIDC  –基于OIDC协议的参考实现,根据各类库提供实现参考 。正式版本v1.1.1发布,主要更新内容:

  1. 修改启动方法为jar直接运行
  2. 更新How-To-Use.txt
  3. AccessToken使用时允许获取更详细用户信息
  4. 增加 JWKS test与使用说明示例
  5. jose4j升级使用0.7.1版本

openid

GitHub:   https://github.com/monkeyk/MyOIDC/tree/v1.1.1

Gitee:  https://gitee.com/mkk/MyOIDC/tree/v1.1.1

MyOIDC v1.1.0 发布–基于OIDC协议的参考实现,根据各类库提供实现参考

MyOIDC  –基于OIDC协议的参考实现,根据各类库提供实现参考 。第1个正式版本v1.1.0发布,主要更新内容:

  1. 实现OIDC协议的主要流程,包括 DiscoveryEndpoint等各类Endpoint提供实现参考;实现OIDC中主要的认证授权流程;JWKS API实现等。
  2. 实现myoidc-server, myoidc-client 两模块的各类功能细节,能实际使用,形成操作闭环。
  3. openid

V1.1.0 代码库链接:

GitHub:  https://github.com/monkeyk/MyOIDC/tree/v1.1.0

Gitee: https://gitee.com/mkk/MyOIDC/tree/v1.1.0/

 

解决oauth_access_token表出现一个UserName有多条数据异常

在spring-oauth-server的ISSUE #IAI2E#IP5N9中提到的oauth_access_token表会出现多条相同username的数据的异常情况,

解决办法如下:

1.对 oauth_access_token 表的authentication_id 字段增加唯一索引,创建索引SQL如下:

ALTER TABLE oauth_access_token ADD UNIQUE INDEX authentication_id_unique_index(authentication_id);

若是新建数据库,则直接按照 spring-oauth-server开发要求运行SQL文件(initial_db.ddl)即可(创建表的SQL中已经加了唯一索引)

 

2.推荐使用将access token 数据存入redis来提升性能与解决此问题,详细请访问 http://andaily.com/blog/?p=19776

 

spring-oauth-server 2.0.1 发布,基于Spring-Boot2.x实现,向微服务靠拢

spring-oauth-server在2019-08-04更新发布了2.0.1版本,

此版本是使用Spring Boot重构实现后的第2个发布版本(2.0.0是第1个),更新内容如下:

  1. 将项目用视频方式讲解出来,更直观学习与掌握,视频链接http://list.youku.com/albumlist/show/id_51900110.html(不断更新中)
  2. Fix issue #IJO9R /oauth/rest_token 接口 client_secret字段没有校验
  3. Use spring-boot version to :   2.0.2.RELEASE
  4. 修改ROLE的错误配置
  5. 升级Spring Security OAuth版本为2.3.4.RELEASE
  6. 增加将AccessToken存入Redis的配置参考,提高读写性能
  7. 增加使用代码生成AccessToken功能

 

2.0.1分支链接:https://gitee.com/shengzhao/spring-oauth-server/tree/2.0.1/

spring-oauth-server

 

 

历史更新