spring security 到 oauth2 学习

一、spring security介绍

Spring Security: 是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。Spring Security 主要实现了Authentication(认证,解决who are you? ) 和 Access Control(访问控制,也就是what are you allowed to do?,也称为Authorization)。简单点说就是Spring Security提供了登录校验和登录之后访问的权限控制。

二、spring security原理介绍

根据介绍可以猜想要实现登录校验和权限控制,就需要进行请求的拦截。Spring Security使用的是过滤器拦截方式,并且要实现复杂的功能很显然需要多个过滤器,Spring Security构建了过滤器链,不同的过滤器实现不同的功能。
在这里插入图片描述

上图列出了一些主要的过滤器
问题: 这个过滤器链是怎么形成的呢?
我们在使用Spring Security时需要导入它的相关依赖,通过引入依赖,将jar包中的bean添加到我们当前服务的容器,再利用spring中bean的属性注入,在初始化某些bean时,将过滤器加载到list集合中(list的添加顺序就保证了过滤器的调用顺序)
在这里插入图片描述

三、spring security简单使用

1.导入依赖

	<!-- 实现对 Spring Security 的自动化配置 -->
     <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-security</artifactId>
     </dependency>

导入这样一个依赖,根据上面原理的介绍就会生成一个过滤器链路,在访问具体接口时,就需要进行登录验证。
2.认证使用:默认的用户名和密码验证是基于一个内置的用户名和密码校验,如果想要自定义登录的用户名和密码需要实现UserDetailsService 接口,重写 loadUserByUsername() 方法。
3.授权使用:继承WebSecurityConfigurerAdapter 类重写方法 configure(HttpSecurity http) 在方法中配置用户访问资源授权。

四、Spring Security OAuth2介绍

Spring Security OAuth2: OAuth(Open Authorization)是一个关于授权(authorization)的开放网络标准,允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容。OAuth在全世界得到广泛应用,目前的版本是2.0版。

五、Spring Security OAuth2设计思路

OAuth在"客户端"与"服务提供商"之间,设置了一个授权层(authorization layer)。“客户端"不能直接登录"服务提供商”,只能登录授权层,以此将用户与客户端区分开来。"客户端"登录授权层所用的令牌(token),与用户的密码不同。用户可以在登录的时候,指定授权层令牌的权限范围和有效期,"客户端"登录授权层以后,"服务提供商"根据令牌的权限范围和有效期,向"客户端"开放用户储存的资料。
这里用公众号登录做个例子,假设我们自己要开发一个微信公众号,现在用户从我们自己的公众号上去进行微信授权登录,我们自己的微信公众号就是客户端,我们需要获取客户的微信信息(因为微信收集了用户的实名信息,地理位置等等信息),那么微信就是服务提供商,但是微信不能直接把客户的微信密码告诉我们,所以提供了微信开发者平台,这里微信开发者平台就是授权层。
在这里插入图片描述
上面的图摘自微信开发平台。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值