springSecurity_oauth2学习(一)

首先要搞清楚几个概念。

http://www.ruanyifeng.com/blog/2019/04/oauth_design.html

springSecurity是springResource社区的一个安全组件,提供了细粒度的权限控制,可以精确到每一个业务的方法。提供的是应用程序层的安全解决方案。

OAuth 2.0 是目前最流行的授权机制,用来授权第三方应用,获取用户数据。简单说,OAuth 就是一种授权机制。数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据。系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用

 

(1) Third-party application:第三方应用程序,本文中又称"客户端"(client)

(2)HTTP service:HTTP服务提供商,本文中简称"服务提供商",

(3)Resource Owner:资源所有者,本文中又称"用户"(user)。

(4)User Agent:用户代理,本文中就是指浏览器。

(5)Authorization server:认证服务器,即服务提供商专门用来处理认证的服务器。

(6)Resource server:资源服务器,即服务提供商存放用户生成的资源的服务器。它与认证服务器,可以是同一台服务器,也可以是不同的服务器。

密码模式(Resource Owner Password Credentials Grant)中,用户向客户端提供自己的用户名和密码。客户端使用这些信息,向"服务商提供商"索要授权。

在这种模式中,用户必须把自己的密码给客户端,但是客户端不得储存密码。这通常用在用户对客户端高度信任的情况下,比如客户端是操作系统的一部分,或者由一个著名公司出品。而认证服务器只有在其他授权模式无法执行的情况下,才能考虑使用这种模式。

c步驟中

客户端发出的HTTP请求,包含以下参数:

  • grant_type:表示授权类型,此处的值固定为"password",必选项。
  • username:表示用户名,必选项。
  • password:表示用户的密码,必选项。
  • scope:表示权限范围,可选项。

更新令牌

如果用户访问的时候,客户端的"访问令牌"已经过期,则需要使用"更新令牌"申请一个新的访问令牌。

客户端发出更新令牌的HTTP请求,包含以下参数:

  • granttype:表示使用的授权模式,此处的值固定为"refreshtoken",必选项。
  • refresh_token:表示早前收到的更新令牌,必选项。
  • scope:表示申请的授权范围,不可以超出上一次申请的范围,如果省略该参数,则表示与上一次一致

配置springSecurity

  1. 配置webSecurityConfigureAdapter

首先重写其中的configure(AuthenticationManagerBuilder auth)方法.这也就意味着应用的每一个请求都需要认证。自动生成了一个登陆表单等等安全防护工作。

其次重写其中的configure(httpSecurity http)方法,这里配置是否所有用户需要验证身份?那些资源需要验证。

 配置OAuth2

  1. Authorization server的配置

在任何继承AuthorizationServerConfigureAdapter接口的类上加上@EnableAuthorizationServer注解开始授权服务功能。并实现下面三个配置

  • ClientDetailsServiceConfigure:配置客户端信息
  • AuthorizationServerEndopintsConfigure:配置授权Token的节点和Token服务
  • AuthorizationServerSecurityConfiguree:配置Token节点的安全策略

2.ResourceServer的配置

ResourceServer提供了受保护的资源可以是api接口,也可以是页面等。在加了@configuration的注解上用@EnableResourceServer注解开启资源服务功能。如有必要可以配置以下内容。

  • tokenService:如果授权服务和资源服务不在一个程序上则需要配置。配置token是如何编码解码的。也可以使用RemoteTokenService类即资源服务采用远程授权服务进行Token解码。这时也可不配置。
  • resourceId:配置资源id

3.OAuth2Client

 

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值