直接设置SecurityContextHolder内容方式配置spring security

位置:首页>文章>详情   分类: 教程分享 > Java教程   阅读(837)   2024-04-17 12:31:24

参考地址:spring文档

9.3.2直接设置SecurityContextHolder内容

事实上,Spring Security不介意你把Authentication对象放在里面SecurityContextHolder。唯一的关键要求是,SecurityContextHolder包含一个Authentication代表在之前AbstractSecurityInterceptor(我们将在后面看到更多)需要授权用户操作的主体。

您可以(和许多用户做)编写自己的过滤器或MVC控制器,以提供与不基于Spring Security的认证系统的互操作性。例如,您可能使用容器管理身份验证,使当前用户可从ThreadLocal或JNDI位置获得。或者,你可能为一个有遗留的专有认证系统,这是一个公司的“标准”,你几乎无法控制的公司工作。在这样的情况下,很容易让Spring Security工作,并仍然提供授权功能。所有你需要做的是编写一个过滤器(或等效的),从一个位置读取第三方用户信息,构建一个Spring Security特定的Authentication对象,并将其放入SecurityContextHolder。在这种情况下,您还需要考虑通常由内置的身份验证基础结构自动处理的事情。例如, 在将响应写入客户端脚注之前 ,您可能需要抢先创建HTTP会话以缓存请求之间的上下文:[响应已提交后无法创建会话。

如果你想知道如何AuthenticationManager在一个现实世界的例子中实现,我们将在核心服务章节中看到。

标签2:
地址:https://www.leftso.com/article/124.html

相关阅读

直接设置SecurityContextHolder内容方式配置spring security
Java编程中spring security4是一个spring框架项目的一个安全方面的项目。主要用于用户认证,授权,角色认证
Spring Security 配置多个Authentication Providers认证器
spring boot 整合spring security采用mongodb数据库方式
spring security常用注解@Secured、@PreAuthorize 、@PostAuthorize说明,Java编程,spring security
解决spring security 整合到spring boot中,UserDetailsService接口的loadUserByUsername方法参数username输入为空问题。一  检查...
本文主要翻译spring官方的基于spring security框架的oauth2开发指南,spring,oauth2,spring框架,Java编程
spring boot 入门之security oauth2 jwt完美整合例子,Java编程中spring boot框架+spring security框架+spring security o...
Spring Security可以参与许多不同的认证环境。虽然我们建议人们使用Spring Security进行身份验证,而不是与现有的容器管理身份验证集成,但它仍然受到支持 - 与您自己的专有...