当前位置:首页 > 民俗文化

granted 【技术分享】Spring Security入坑指南

UserDetailsService的实现主要用于加载用户信息并提供给其他组件,但不能对用户进行认证,认证管理器完成认证操作。

如果用户想要自定义身份验证过程,他们需要实现身份验证提供程序接口。

授予的权限

getAuthorities()身份验证方法返回一个GrantedAuthority对象数组。GrantAuthority对象通常由UserDetailsService加载。

总结

安全上下文持有者获取安全上下文

安全上下文保存与请求相关的身份验证和其他安全信息

身份验证代表经过身份验证的用户信息

授予的权限表示授予用户的权限信息

用户详细信息包含构建身份验证对象所需的必要信息,这些信息来自应用程序的DAO或其他数据源

用户详细信息服务根据传入的用户名字符串构造一个用户详细信息对象

1.2认证链接

基本认证流程包括:

1.用户输入用户名和密码

2.系统会验证用户名和密码是否正确

3.系统获取用户的角色、权限等信息。

以上三个步骤完成了一个身份验证过程,并且在Spring Security中,相应地完成了以下操作:

1.后端获取用户名和密码,并使用它们来生成usernamepassworauthenticationtoken对象,这是身份验证的一个实现类。

2 .令牌被传递到身份验证管理器的实例中进行验证

3.身份验证成功后,身份验证管理器将返回一个身份验证实例,其中包括用户的所有详细信息,包括角色、权限等。

通过调用SecurityContextHolder建立安全上下文。getContext()。设置身份验证(…),并传入身份验证对象

完成上述过程后,当前用户身份验证完成。以下代码演示了身份验证链接的最基本过程(不是SpringSecurity框架源代码)

直接设置SecurityContextHolder

Spring Security并不关心身份验证实例是如何放入SecurityContextHolder的,只要SecurityContextHolder中有一个有效的身份验证来代表一个经过身份验证的用户,那么就可以使用抽象安全概念来授权用户的操作。因此,开发人员也可以选择使用其他认证框架提供的认证信息。开发者只需要使用一个过滤器从第三方获取用户信息,然后构造一个Authentication对象,放入SecurityContextHolder。但是,如果不使用内置的身份验证,一些原本自动完成的事情就需要开发人员来处理,比如在开始创建HTTP session来缓存上下文。

1.3 web应用程序中的身份验证

在处理Web应用中的认证时,Spring Security主要参与ExceptionTranslationFilter和AuthenticationEntryPoint,以及一个认证机制,用来调用AuthenticationManager完成核心的认证部分。

异常转换过滤器

是一个Spring Security筛选器,用于检测所有抛出的Spring Security异常,这些异常通常由抽象安全接口抛出。抽象安全接口只负责抛出异常,而异常控制转换过滤器负责确定如何处理异常。例如,如果当前用户已通过身份验证但权限不足,它将返回403错误代码,或者如果当前用户未通过身份验证,它将启动身份验证点。

认证机制

浏览器提交用户的认证信息后,服务器需要收集这些信息。在Spring Security中,从客户端获取认证信息的功能称为“认证机制”。例如,基本身份验证,当收集到客户端提交的身份验证信息时,后端将创建一个身份验证对象,然后将其提交给身份验证管理器进行验证。

然后认证机制会收到一个包含完整信息的认证对象,并认为该请求合法,然后将认证放入SecurityContextHolder,然后重试原来的请求。如果身份验证管理器拒绝该请求,身份验证机制将要求客户端重试。

保存用户身份验证信息

一般在Web应用中,用户登录后,服务器缓存用户的认证信息,用户的后续操作通过其会话id进行认证。在Spring Security框架中,保存SecurityContext persistencefilter的任务被移交给Security context persistencefilter,Security context信息默认保存为HttpSessio属性。每当有请求到来,它就通过SecurityContextHolder获取认证信息,并在请求结束后清除SecurityContextHolder。出于安全原因,应该通过SecurityContextHolder获取安全上下文,而不是直接从HttpSession获取。

1.4权限控制(授权)

Spring Security的权限控制依赖于AOP。权限控制可以应用于方法调用和web请求。在Spring Security中,访问决策管理器主要负责做出权限控制决策。

安全对象

安全对象是指可以添加安全配置的所有对象。最常见的例子是方法调用和web请求。

每个支持的安全对象都有自己的拦截器,它是抽象安全拦截器的子类。当调用抽象安全概念时,如果当前用户主体已经过身份验证,则安全上下文容器将包含一个有效的身份验证对象。当抽象安全接口处理安全对象的请求时,过程如下:

1.查看与当前请求相关联的配置属性

2.将当前的安全对象、身份验证对象和配置属性提交给访问决策管理器,后者将做出授权决策。

3.可以选择在呼叫发生的位置替换身份验证对象

4.授权完成后,允许调用安全对象。

5.当调用返回时,立即调用AfterInvocationManager(如果已配置)

配置属性

配置属性由接口ConfigAttribute表示,可以理解为抽象安全接口(AbstractSecurityInterceptor)使用的具有特殊含义的字符串。AbsractSecurityInterceptor配置有安全性数据源用来查看安全对象的配置属性。配置属性可用于简单地表示角色名称或更复杂的含义,其有用性取决于访问决策管理器实现的复杂性。或者简单来说,配置属性只代表特殊含义,比如角色名称的字符串,但是如何解释取决于AccessDedcisionManager的实现。举一个简单的例子,当我们使用AccessDedcisionManager的默认实现时,我们可以将配置属性ROLE_A添加到方法或url请求的注释中,这意味着只有当用户的GrantedAuthority与ROLE_A匹配时,我们才能使用此方法或调用此请求。这里只做简单说明,具体用途后面展开。

安全拦截器和“安全对象”模型

下图是安全拦截器和安全对象的模型,给出了各个组件之间的关系。有些组件在介绍中没有提到,将在以下说明中展开。

1.《granted 【技术分享】Spring Security入坑指南》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《granted 【技术分享】Spring Security入坑指南》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guoji/786035.html

上一篇

开荒牛 台球界的领军人物,就像是“一头开荒牛”,37岁美艳动人依然单

下一篇

心痛!4岁女孩拥有"天使面孔" 却患罕见基因病或倒退成植物人

燃气管理 【经验分享】浅谈城镇燃气管理部门安全管理措施

惠州惠阳区住房和城乡规划建设局 近年来,随着我国城市建设步伐的加快,燃气行业发展迅速,同时燃气安全监管一直困扰着燃气管理部门。经过十多年对燃气市场安全管理的不断改革和创新,燃气事故发生率逐年下降,安全生产形势保持稳定和积极。结合作者所在地区的实际情况,燃气管理部门的...

静脉通舒 兼顾疗效和安全性,下肢深静脉血栓形成后综合征如何治疗?

目的 探讨舒洛地特在治疗下肢深静脉血栓综合征中的临床应用及效果。 方式 对75例下肢深静脉血栓形成综合征(PTS)患者进行随访,其中舒洛地特联合消肿药物组40例,口服消肿药物组35例。通过门诊随访评价两组的安全性,根据Villata评分评价预防血栓后遗症的效果。 结...

锅炉工岗位责任制 锅炉房安全管理八项制度

锅炉工岗位责任制 锅炉房安全管理八项制度

一、岗位责任制 为了加强锅炉管理,保证锅炉安全经济运行,要求锅炉房人员必须明确本岗位的职责范围。 (一)锅炉房管理人员责任制 管理人员应具备锅炉安全技术知识,并熟悉国家安全法规的有关规定。具体要求如下: 1.组织消防员和水质实验室人员的技术培训和安全教育。 2.参与...

毛不易 无限歌谣季毛不易唱了什么歌 毛不易合唱对象是岳云鹏吗

  • 毛不易 无限歌谣季毛不易唱了什么歌 毛不易合唱对象是岳云鹏吗
  • 毛不易 无限歌谣季毛不易唱了什么歌 毛不易合唱对象是岳云鹏吗
  • 毛不易 无限歌谣季毛不易唱了什么歌 毛不易合唱对象是岳云鹏吗
紧抓时代风口 猿辅导优质教学服务获用户青睐

紧抓时代风口 猿辅导优质教学服务获用户青睐

  在当前全球化和国际化的新浪潮中,在线教育发展面临着全新的机遇和挑战。特别是在去年网课发展、学生在家平均时长增强的新形势下,在线教育更是逐渐成为超越和取代传统线下...

官方回应达利园薯片疑用发芽土豆 食品安全监管要零容忍

1日,有汉川网友反映,达利园厂用发芽土豆做薯片。视频中,大量发芽的土豆堆放在一起,旁边机器还正在运行。随后,汉川市市场监督管理局发布情况说明,网友所发视频与被检单位情况不一致。汉川市市场监督管理局表示,该事件还在进一步调查中,具体调查结果会对外公布。网友评论延伸阅读食品安全监管要零容忍食品安全是“产出来”的,也是“管出来”的。对食品安全进行严格监管,才能给公众注入信心,让公众吃得放心。执法监管是一...

数字遗产 “数字遗产”谁来继承?B站将离世用户账号列为纪念账号

数字遗产 “数字遗产”谁来继承?B站将离世用户账号列为纪念账号

图片来源:unsplash记者|肖12月24日,bilibili通过官方微博账号@毕丽毕丽弹幕宣布。从今天起,对于不幸去世的bilibili用户,该平台将把他们的账户列为“纪念账户”,并在获得直系亲属的确认和同意后予以保护。Bilibili在微博公告中表示,根据客服...

叉车怎么操作 叉车安全操作规程,叉车左右升降怎么用,叉车资格证怎么办理

随着社会的发展和进步,叉车在企业物流系统中发挥着越来越重要的作用。 目前,市场上有许多可供选择的叉车品种。下面的编辑向您介绍了叉车的安全操作方法。 如何使用叉车从左到右起重。 如何处理叉车资格证书? 让我们了解一下。 叉车安全操作规范的驾驶规范。 司机培训:司机必须...