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

编程教程 > Java > Spring (1302) 2024-11-26 14:39:04

参考地址: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在一个现实世界的例子中实现,我们将在核心服务章节中看到。


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
直接设置SecurityContextHolder内容方式配置spring security
环境JDK 17Spring Boot 3.2.1-3.2.3Spring Security 6.2.1-6.3.1Spring Security 权限/角色常
Java编程中spring security4是一个spring框架项目的一个安全方面的项目。主要用于用户认证,授权,角色认证
前言使用Spring Boot 3 Security 6.2 JWT 完成无状态的REST接口认证和授权管理。环境JDK 17Spring Boot 3.3.2
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 boot 2.0 security 5.0 整合,实现自定义表单登录。spring boot 2.0框架使用。
Spring Security可以参与许多不同的认证环境。虽然我们建议人们使用Spring Security进行身份验证,而不是与现有的容器管理身份验证集成,但它仍然受到支持 - 与您自己的专有...
使用OAuth2安全的Spring REST API,Secure Spring REST API using OAuth2(含demo代码下载)
1.概述本文继续使用spring boot 和Spring Security系列进行注册,并着重于如何正确实现角色和权限