oauth2-shiro 2.0.0版本发布,安全大升级

oauth2-shiro v2.0.0版本正式发布,在距上一次发布7年后,更新了大版本,对安全漏洞等问题进行大升级。

该版本主要更新内容:

  1. 升级使用springboot,调整工程结构,打包由war换成jar,使用thymeleaf替换servlet/jsp;spring大版本升级到5.3提升安全性。
  2. JDK由1.7升级到1.8,日志框架使用logback替换log4j(处理掉log4j安全漏洞)。
  3. 升级shiro版本到v1.11.0,解决相应的shiro版本漏洞。
  4. 密码存储算法由MD5替换为SHA-256,并支持盐(salt),让密码存储更安全可靠(通过配置参数authz.store.credentials.alg来控制与向下兼容)。
  5. OAuth token支持使用JWT格式(通过配置参数authz.token.generator.type来控制与向下兼容)。
  6. 对初始的账户密码与client secret使用更加安全的密码策略:包括大小写字母,数字与特殊符号,长度至少10位。

v2.0.0版本链接:https://gitee.com/mkk/oauth2-shiro/tree/2.0.0/

【推荐升级】

oauth2-shiro 0.2版本发布

oauth2-shiro 0.2版本正式发布, 在7月完成开发工作,但由于当时发布 http://git.oschina.net/mkk/oauth2-shiro-redis 项目竟然给忘记了. 该版本主要更新如下

1.更新首页UI, 参照spring-oauth-server

2.Add client details overview

3.Add client details testing

4.user add/edit, overview

5.添加API使用说明, 举例各个场景

6.发布到测试服务器

7.resources模块更新UI说明

 

从0.2版本开始可在线测试,测试地址分别为:

authz: https://andaily.com/authz/

resources:https://andaily.com/rs/

0.2版本访问地址: http://git.oschina.net/mkk/oauth2-shiro/tree/0.2/

oauth2-shiro 整合OLTU与SHIRO, 提供一个轻量的OAUTH2应用框架.

oauth2-shiro 0.1-beta 发布

经过不断地试错与研究, 整合oauth2与shiro的 oauth2-shiro项目 0.1-beta 发布.

oauth2-shiro

整合Apache OltuShiro. 提供一个轻量的OAUTH2应用框架.

并根据不同的应用场景提供不同的实现(如web场景,移动设备).

该项目与spring-oauth-server实现相同的需求与场合. 只是在实现上使用的技术不同(spring-oauth-server使用Spring Security + spring-security-oauth2实现; oauth2-oltu实现); 相比spring-oauth-server, oauth2-oltu具有如下特点:

  • 更加透明 — 每一步实现都有可以查看的, 更容易理解的代码, 一目也然
  • 更多的可自定义与可扩展 — 不管是ERROR返回信息的内容或格式, 都可根据需要自定义, 对请求参数,处理细节等可添加更多的具体实现
  • 可读性更强 — 由于Shiro, Oltu 没有Spring Security,spring-security-oauth2 的门槛高, 所有代码都是常用的Controller或Java Bean实现各项业务, 更可读,更易于理解
  • 模块化 — 得益于Oltu的模块化设计, 将authzserver, resourceserver分开成不同的模块, 使用时可根据实际需要将二者合并在一个项目中可拆分为不同的模块

 

主要技术及版本

Spring — 3.2.2.RELEASE
oltu — 1.0.0
shiro — 1.2.3
MySQL — 5.6

 

支持的 grant_type
说明 oauth2-shiro 项目支持的grant_type(授权方式)与功能

  1. authorization_code — 授权码模式(即先登录获取code,再获取token)
  2. password — 密码模式(将用户名,密码传过去,直接获取token)
  3. refresh_token — 刷新access_token
  4. implicit(token) — 简化模式(在redirect_uri 的Hash传递token; Auth客户端运行在浏览器中,如JS,Flash)
  5. client_credentials — 客户端模式(无用户,用户向客户端注册,然后客户端以自己的名义向’服务端’获取资源)

 

http://git.oschina.net/mkk/oauth2-shiro

 

apache-shiro-logo oltu_head