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

编程教程 > Java > Spring (1313) 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
Spring Security 配置多个Authentication Providers认证器
环境JDK 17Spring Boot 3.2.1-3.2.3Spring Security 6.2.1-6.3.1Spring Security 权限/角色常
spring boot 整合spring security采用mongodb数据库方式
spring security常用注解@Secured、@PreAuthorize 、@PostAuthorize说明,Java编程,spring security
Java编程中spring security4是一个spring框架项目的一个安全方面的项目。主要用于用户认证,授权,角色认证
前言使用Spring Boot 3 Security 6.2 JWT 完成无状态的REST接口认证和授权管理。环境JDK 17Spring Boot 3.3.2
解决spring security 整合到spring boot中,UserDetailsService接口的loadUserByUsername方法参数username输入为空问题。一  检查...
spring boot 2.0 security 5.0 整合,实现自定义表单登录。spring boot 2.0框架使用。
使用OAuth2安全的Spring REST API,Secure Spring REST API using OAuth2(含demo代码下载)
1.概述本文继续使用spring boot 和Spring Security系列进行注册,并着重于如何正确实现角色和权限
引言在这篇文章中,我们将讨论如何使用Spring Boot Security OAuth2保护REST API
spring boot 入门之security oauth2 jwt完美整合例子,Java编程中spring boot框架+spring security框架+spring security o...
本文主要翻译spring官方的基于spring security框架的oauth2开发指南,spring,oauth2,spring框架,Java编程