spring security的知识摘要
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了spring security的知识摘要,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5111字,纯文字阅读大概需要8分钟。
内容图文
![spring security的知识摘要](/upload/InfoBanner/zyjiaocheng/1023/abd4b39789d24841a1a228246f69dc0d.jpg)
spring security的知识摘要
1.首先spring security特点的主要操作可能是两个操作
第一个被称为“认证”,是为用户建立一个他所声明的主体。主体一般是指用户,设备或可以在系统中执行动作的其他系统。**
第二个叫“授权”,指的是一个用户能否在应用中执行某个操作,在到达授权判断之前,身份的主体已经由身份验证过程建立。
这些概念是通用的,不是Spring Security特有的。
2.对身份认证支持各种验证模式,有自己的,但大多数都是第三方提供的
其中有一个叫JA-SIG Central Authentication Service (CAS,这是一个流行的开源单点登录系统)
简单的说,CAS(Central Authentication Service – 中心认证服务)的目的就是使分布在一个企业内部各个不同异构系统的认证工作集中在一起,通过一个公用的认证系统统一管理和验证用户的身份。在CAS上认证的用户将获得CAS颁发的一个证书,使用这个证书,用户可以在承认CAS证书的各个系统上自由穿梭访问,不需要再次的登录认证。打个比方:对于加入欧盟的国家而言,在他们国家中的公民可以凭借着自己的身份证,在整个欧洲旅行,不用签证。对于企业内部系统而言,CAS就是这个颁发欧盟认证的系统,其它系统都是加入欧盟的国家,它们要共同遵守和承认CAS的认证规则。
因此CAS的设计愿景就是:
1。实现一个易用的、能跨不同Web应用的单点登录认证中心;
2。实现统一的用户身份和密钥管理,减少多套密码系统造成的管理成本和安全漏洞;
3。降低认证模块在IT系统设计中的耦合度,提供更好的SOA设计和更弹性的安全策略
具体参照Web 单点登录系统 JA-SIG CAS
3.SpringSecurity 是一个安全框架,那它提供了哪些安全措施呢?主要是三个方面,
- 身份认证(你是谁?)
- 权限校验(你能做什么?允许操作的范围)
- 攻击防护(防止伪造身份)
4.说说Security 流程
1、 首先, 当用户登录时, 前端会把用户输入的用户名、 密码信息传输到后台, 后台用一个类对象将其封装起来,
通常使用的是UsernamePasswordAuthenticationToken这个类。
2、 再来, 到程序负责验证这个类对象。 验证方法是调用Service根据username从数据库中取用户信息到实体类的实例中,
比较两者的密码, 如果密码正确就成功登陆, 同时把包含着用户的用户名、 密码、 所具有的权限等信息的类对象
放到SecurityContextHolder(安全上下文容器, 类似Session) 中去。
3、 其次, 在用户访问一个资源的时候, 需要先判断是否是受限资源。 如果是的话还要判断当前是否未登录,
没有的话就跳到登录页面。
4、 最后!如果用户已经登录, 并访问一个受限资源的时候, 程序要根据url去数据库中取出该资源所对应的
所有可以访问的角色, 然后拿着当前用户的所有角色一一对比, 判断用户是否可以访问。
5.OAuth2 和JWT区别与联系是?
JWT是一种认证协议
JWT提供了一种用于发布接入令牌(Access Token),并对发布的签名接入令牌进行验证的方法。 令牌(Token)本身包含了一系列声明,应用程序可以根据这些声明限制用户对资源的访问。
OAuth2是一种授权框架
另一方面,OAuth2是一种授权框架,提供了一套详细的授权机制(指导)。用户或应用可以通过公开的或私有的设置,授权第三方应用访问特定资源。
6.什么是JWT
Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。
7.什么是Oauth2
OAuth(开放授权)是一个开放标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容,OAuth2.0是OAuth协议的延续版本,但不向后兼容OAuth 1.0即完全废止了OAuth1.0。
应用场景
第三方应用授权登录:在APP或者网页接入一些第三方应用时,时长会需要用户登录另一个合作平台,比如QQ,微博,微信的授权登录。
8.SpringSecurity基本原理
要想让一个系统的登录流程走SpringSecurity框架的逻辑,那么首先需要先写一个类去继承WebSecurityConfigurerAdapter,然后重写里面的configure方法,这个时候如果不做任何配置,去访问服务器中的任意接口的时候都会弹出一个alert框去输入一个用户名和密码。
认证原理
其中,表单登录只是其中的一种过滤方式,httpBasic这种过滤方式是在表单登录之后,类似于责任链模式,除了这两种方式SpringSecurity还支持很多种过滤方式。当请求通过这些绿色的过滤器之后,请求会进入到FilterSecurityInterceptor适配器上,这个是整个SpringSecurity过滤器的最后一环,是最终的守门人,它会去决定请求最终能否去访问到我们的Rest服务,那它依据什么区判断的呢?就是依据我们代码中写的后五行(对请求进行授权,然后对系统中的anyRequest任何请求都要去进行授权认证),这些规则都会被放到
FilterSecurityInterceptor中,当认证成功则可以访问资源,如果认证失败,就会根据失败原因抛出相应的异常,进入到ExceptionTranslationFilter中,这个过滤器根据这些异常会做出相应的处理。
注意:
在这一系列过滤器链中,绿色的过滤器可以通过配置去完成自定义配置,蓝色及黄色是不能控制的。它们一定都会生效且位置固定。(ExceptionTranslationFilter一定在FilterSecurityInterceptor之前)
9.Spring Security 中的四种常见权限控制方式
- 表达式控制 URL 路径权限
- 表达式控制方法权限
- 使用过滤注解
- 动态权限
具体参照Spring Security 中的四种权限控制方式
,直接有springsecurity一个系列的
比如Spring Boot+CAS 单点登录,如何对接数据库?
用 Swagger 测试接口,怎么在请求头中携带 Token等等
10.springboot + spring security验证token进行用户认证
核心组件
SecurityContextHolder:存放身份信息的容器
Authentication:用户信息的抽象
AuthenticationManager:身份认证器
详情点击token进行用户认证
11.SpringSecurity用户认证流程
当用户发送登录请求的时候,首先进入到UsernamePasswordAuthenticationFilter中进行校验。
详情SpringSecurity用户认证流程
内容总结
以上是互联网集市为您收集整理的spring security的知识摘要全部内容,希望文章能够帮你解决spring security的知识摘要所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。