spring-oauth-server 数据扩展实现思路

spring-oauth-server 默认使用数据库MySql实现数据存储, 使用MyBatis, JDBC实现数据库连接与处理.

但在实际项目使用过程中, 有的项目需要使用其他的数据存储解决方案, 如 LDAP, 文件, ACCESS, REDIS, MongoDB等等. 这时如何办, 如何去扩展呢? 在此给一些步骤与建议.具体如下

 

1. 在项目中加入必要的MAVEN dependencies; 如 redis的, LDAP的.(建议使用基于spring-data 系列的, 方便与Spring 整合);  并去掉不需要的dependencies, (如当前的 mybatis, mysql);

2. 用你需要的存储技术 实现spring-security-oauth2提供的以下3个接口:

  • AuthorizationCodeServices
  • TokenStore
  • ClientDetailsService

3.修改security.xml中的对应的3个接口的默认配置, 分别为 JdbcTokenStore, CustomJdbcClientDetailsService, JdbcAuthorizationCodeServices;  用自己实现的替换默认的.

4.测试修改. 保证oauth_test.txt(位于others目录)中的示例能够正常运行, 或使用spring-oauth-client测试

 

扩展

若需要完全替换掉MYSQL, 则还需要提供 OauthRepository 与 UserRepository 的实现并配置.

 

——————————————————————————

若需要提供商业化的技术支持 或 提供整套的技术方案, 请联系 sz@monkeyk.com

 

http://git.oschina.net/shengzhao/spring-oauth-server

oauth2-shiro 0.1-rc 发布

经过国庆期间的假期, 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应用框架.