可扫描该二维码加入微信讨论组, 关于OAuth, OIDC, oauth2-shiro等.
若过期了请扫描下面的微信二维码先添加我, 然后把你拉入群里.
经过国庆期间的假期, oauth2-shiro的0.1-rc版本发布了, 相比0.1-beta版本, 更新内容如下:
1. 重构项目结构,实现模块化. 将OAUTH中的auth(authz模块)与resource(resources模块)分开成不同的子模块(或子项目). authz实现使用各类grant_type去获取token; resources实现资源管理, 通过token去访问, 另添加core模块, 将公共部分提取到该模块中,如定义ClientDetails, AccessToken
2. 提供两种方式来整合OLTU与SHIRO,
方式1: 给SHIRO添加Filter来扩展实现整合,并可使用Shiro的注解(如@RequiresRoles)来控制权限 –深度整合,耦合性高;
方式2: 扩展OLTU的OAuthFilter功能,新加ResourceOAuthFilter类来实现整合 –浅度整合, 使用更灵便;
3. 解决CORS(跨域调用)的问题, 如AJAX调用oauth接口
4. 更多的使用测试以及细节修改,如异常响应内容
oauth2-shiro 0.1-rc版本访问地址: http://git.oschina.net/mkk/oauth2-shiro/tree/0.1-rc/
oauth2-shiro 整合OLTU与SHIRO, 提供一个轻量的OAUTH2应用框架.
经过不断地试错与研究, 整合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具有如下特点:
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_tokenimplicit(token)
— 简化模式(在redirect_uri 的Hash传递token; Auth客户端运行在浏览器中,如JS,Flash)client_credentials
— 客户端模式(无用户,用户向客户端注册,然后客户端以自己的名义向’服务端’获取资源)
http://git.oschina.net/mkk/oauth2-shiro
在8月,由于工作繁忙,没有进行开发.
由于有的朋友提出需要看该项目的源代码,并由其去完成修改与开发,现在已将oauth2-shiro项目开源,
访问地址:
http://git.oschina.net/mkk/oauth2-shiro
但请注意: 该项目代码并未完整开发完成; 若需要完整的实现请访问 http://git.oschina.net/shengzhao/spring-oauth-server
项目更新动态文章: http://andaily.com/blog/?p=312
我将不断开发完善该项目.也希望您的参与.
oauth2-shiro项目至7月已经完成的功能有:
1.项目框架的搭建,使用的版本oltu(1.0.0), shiro(1.2.3);
2. grant_type=’authorization_code’的实现;
3. grant_type=’password’的实现;
4. grant_type=’implicit’的实现;
5. grant_type=’client_credentials’的实现;
6. grant_type=’refresh_token’的实现;
目前正在开发 对资源访问的控制.
但还有以下工作要做:
1. 重构项目,分模块,分为authz-server,resource-server,client 三个模块, 这样更符合实际项目的需要;
2.对token, refresh_token值进行加密(不能直接将其值存入数据库中,但这是可选的);
3.对client_secret添加validator, 用于满足如果client_secret进入加密的情况;
4.添加 UserApprovalHandler,扩展用户自定义approval行为;
5.重构代码, 将tokenService,codeService从oauthService抽出来,而不是合在一起.
继续进行中,最终项目访问地址: http://git.oschina.net/mkk/oauth2-shiro (目前访问为404).
在使用spring-oauth-server项目时,是否感觉到了一丝丝的复杂呢?是否对里面的许多源代码都不知然然呢?你有,我也有.就算我写了,实现了,看了不少.还是会有– 但大部分的程序员是没有如此多的时间来研究的.
是时候给你们另一个项目了: oauth2-shiro, 你肯定值拥有.
oauth2-shiro是整合Apache Oltu 与 Shiro.的项目. 使用Spring MVC,Spring JDBC等来实现.
所有的与oauth流程操作的代码都在controller里实现. 所有代码可见,可扩展性强.
加以对各种oauth授权验证的流程的熟悉, 将帮助你真正理解与使用OAUTH2.
该项目正在开发中,等开发完毕,通过spring-oauth-client测试后,将会开源,供大家学习,使用,交流….
我将在博客中不断发布项目的更新信息.