经过不断地试错与研究, 整合oauth2与shiro的 oauth2-shiro项目 0.1-beta 发布.
整合Apache Oltu 与 Shiro. 提供一个轻量的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(授权方式)与功能
authorization_code
— 授权码模式(即先登录获取code,再获取token)
password
— 密码模式(将用户名,密码传过去,直接获取token)
refresh_token
— 刷新access_token
implicit(token)
— 简化模式(在redirect_uri 的Hash传递token; Auth客户端运行在浏览器中,如JS,Flash)
client_credentials
— 客户端模式(无用户,用户向客户端注册,然后客户端以自己的名义向’服务端’获取资源)
http://git.oschina.net/mkk/oauth2-shiro