Spring Security json Access maven 

OAUTH2宗旨参数表达

 

grant_type参数表明表格:

grant_type

说明

authorization_code

标准的Server授权模式

password

基于用户密码的授权模式

client_credentials

基于APP密钥的授权模式

refresh_token

刷新accessToken

 

 

response_type参数表达表格:

response_type

说明

code

标准的Server授权模式响应模式

token

脚本的授权响应模式,直接返回token,需要对回调进行校验

 

OAUTH2各个请求流程

Authorization Code(标准请求流程,必须兑现)

正规的的Server授权格局,与近期开放平台的Session机制很像。

 

APP首头阵送获取code请求

GET /authorize?response_type=code&client_id=s6BhdRkqt3&

         redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb
HTTP/1.1

     Host: server.example.com

 

容器重返code

HTTP/1.1 302 Found

     Location: https://client.example.com/cb?code=i1WsRn1uB1

 

APP依据code发送获取token请求

POST /token HTTP/1.1

     Host: server.example.com

     Content-Type: application/x-www-form-urlencoded

 

     grant_type=authorization_code&client_id=s6BhdRkqt3&

     client_secret=gX1fBat3bV&code=i1WsRn1uB1&

     redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb

 

 

容器直接重返token

     HTTP/1.1 200 OK

     Content-Type: application/json

     Cache-Control: no-store

 

     {

       “access_token”:”SlAV32hkKG”,

       “token_type”:”example”,

       “expires_in”:3600,

       “refresh_token”:”8xLOxBtZp8″,

       “example_parameter”:”example-value”

     }

 

 

 

Implicit 格兰特(直接发放方式)

适用于运作于浏览器中的脚本应用,必要校验callback地址,而且只回去该应用注册的回调地址

 

APP直接伸手token

GET /authorize?response_type=token&client_id=s6BhdRkqt3&

         redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb
HTTP/1.1

     Host: server.example.com

 

容器通过重定向重回token

HTTP/1.1 302 Found

     Location: http://example.com/rd\#access\_token=FJQbwq9&

               token_type=example&expires_in=3600

 

 

Resource Owner Password Credentials (基于用户名与密码形式)

号称用户名密码形式,须要提供终端用户的用户名和密码,适用于诸如操作系统只怕高权力的利用。

 

APP直接带上用户名和密码请求

POST /token HTTP/1.1

     Host: server.example.com

     Content-Type: application/x-www-form-urlencoded

 

     grant_type=password&client_id=s6BhdRkqt3&

     client_secret=47HDu8s&username=johndoe&password=A3ddj3w

 

 

容器直接再次回到token

     HTTP/1.1 200 OK

     Content-Type: application/json

     Cache-Control: no-store

 

     {

       “access_token”:”SlAV32hkKG”,

       “token_type”:”example”,

       “expires_in”:3600,

       “refresh_token”:”8xLOxBtZp8″,

       “example_parameter”:”example-value”

     }

 

Client Credentials

根据APP的密钥间接进行授权,APP的权限非常的大,慎用。那一个情势能够考虑用于近日大家不须要弹出授权的例外应用,如淘江湖,前端插件等。

 

 

APP直接根据客户端的密码来呼吁

POST /token HTTP/1.1

     Host: server.example.com

     Content-Type: application/x-www-form-urlencoded

 

     grant_type=client_credentials&client_id=s6BhdRkqt3&

     client_secret=47HDu8s

 

容器直接回到token

HTTP/1.1 200 OK

     Content-Type: application/json

     Cache-Control: no-store

 

     {

       “access_token”:”SlAV32hkKG”,

       “token_type”:”example”,

       “expires_in”:3600,

       “refresh_token”:”8xLOxBtZp8″,

       “example_parameter”:”example-value”

     }

 

 

预先考虑完结的流程

Authorization
Code为大家供给事先帮忙的流程,很多开源的OAUTH达成都以预先达成了该授权流程。ETAO的B2C网站会用那一个流程与开放平台交互。

 

 图片 1

开源完结

现阶段OAUTH 2有比较多的开源完结,在那之中比较好的开源完毕是OAuth for Spring
Security,大家可以参照http://static.springsource.org/spring-security/oauth/tutorial.html以此网址去具体掌握。有趣味的同室能够去这一个网址去下载其源代码看看http://maven.springframework.org/milestone/org/springframework/security/oauth/spring-security-oauth/1.0.0.M2/spring-security-oauth-1.0.0.M2-sources.jar ,容器重要关心下边多少个类:org.springframework.security.oauth2.provider.OAuth2AuthorizationFilter

org.springframework.security.oauth2.provider. DefaultOAuth2GrantManager

org.springframework.security.oauth2.provider.verification.VerificationCodeFilter

率先个和第③个类为参数校验和参数解析,第一个类为响应生成的类。

TIP首要关注上边包车型地铁类:

org.springframework.security.oauth2.provider.OAuth2ProtectedResourceFilter

以此类重点完结了对AccessToken的校验

 

详尽的例子请访问:http://git.oschina.net/shengzhao/spring-oauth-server

相关文章

网站地图xml地图