Spring Security OAuth 学习笔记(一)

Spring Security OAuth学习笔记(一)(原创)

Spring Security OAuth项目是SpringOAuth协议实现的一个开源项目。提供  OAuth providersOAuth  consumers的实现。以下是个人的学习笔记仅供参考。

OAuth协议相关的参考资料:

http://oauth.net/(官网)

http://wenku.baidu.com/view/b37ed7260722192e4536f66e.htmlOauth2.0

http://netment.iteye.com/blog/945402

Spring Security OAuth相关的参考资料:

http://static.springsource.org/spring-security/oauth/(官网)

http://www.springsource.org/spring-security-oauth(官网)

https://github.com/SpringSource/spring-security-oauth/wiki/oauth2(用户指南)

https://github.com/SpringSource/spring-security-oauth/(下载)

第三方平台实现的参考资料:

http://open.weibo.com/wiki/Oauth2(新浪)

http://dev.baidu.com/wiki/connect/index.php?title=%E7%99%BE%E5%BA%A6OAuth2.0%E5%AE%98%E6%96%B9%E5%8F%82%E8%80%83%E6%96%87%E6%A1%A3(百度)

http://wiki.dev.renren.com/wiki/Authentication(人人)

  Spring Security OAuth配置

关于OAuth for Spring Security 的配置可以参考官方源码包中提供的 OAuth1.0OAuth2.0的例子。


Spring Security OAuth 学习笔记(一)

 

         当前我所使用的版本:SpringSource-spring-security-oauth-1.0.0.M5-47-g324fb78.zip

可以根据我提供的参考资料链接地址下载相关版本。

         Spring Security OAuth的配置详解可以参考官网给出的用户指南。

 

 

  服务端配置(Provider)                  

一、过滤链配置      

客户端(consumer)获取访问票据(Access Token)时会验证客户端的合法性。

认证管理器配置:clientAuthenticationManager

{@link ClientDetailsUserDetailsService}


 

 

       该过滤链会拦截所有资源,最主要过滤的有两部分资源:

       1、授权码(Authorization  Code: /oauth/authorize

       2、开放的服务接口(Rest API

       此处与官网源码提供的例子有不同之处,加入Jasig CAS作为认证入口,可以忽略不计。


Spring Security OAuth 学习笔记(一)

  

二、认证管理器配置

clientAuthenticationManager:验证客户端(consumer)的合法性。

authenticationManager:验证最终用户(End-User)的合法性。


Spring Security OAuth 学习笔记(一)

三、Tokens管理

              @{link AuthorizationServerTokenServices}:接口定义了一些对Tokens(access token) 的管理方法(创建、刷新).

              @{link RandomValueTokenServices}: 采用随机生成的方式;

              @{link InMemoryTokenStore}: 采用基于内存的方式存储.


四、服务端的验证与授权流程(方式)

Spring Security OAuth实现了OAuth协议规范中定义的以下几种方式。

 

Authentication Code,又称Web Server Flow,适用于所有有Server端配合的应用和无Server端应用

Implicit Grant,又称User-Agent Flow,适用于所有无Server端配合的应用(桌面客户端需要内嵌浏览器)

Client Credentials,即采用应用公钥、密钥获取Access Token,适用于任何类型应用。

Refresh Token,即令牌刷新方式,适用于所有有Server端配合的应用

用户名密码流程(协议中Resource Owner Password Credentials Flow)。此流程适用于无法使用浏览器发起服务端和客户端验流程的应用。


五、配置服务端受保护的资源

六、Clients管理

预先注册的客户端(consumer)相关配置信息,然后颁发给每一个客户端。


Spring Security OAuth 学习笔记(一)

 

 

  客户端配置(Consumer)

可以参考官方用户指南:

https://github.com/SpringSource/spring-security-oauth/wiki/oauth2(用户指南)

你可能感兴趣的:(java,spring,REST,Security,OAuth)