成都建设官方网站网络营销课程实训总结
1、SecurityContextHolder 当前安全上下文对象的简介
SecurityContextHolder 是 Spring Security 中的一个核心组件,它用于存储当前安全下文(Securty Context)的详细信息。这些信息包括当前已认证的用户、用户的授予权限以及其他相关的安全细节。
默认情况下,SecurityContextHolder 将认证详细信息存储在线程局部变量中,确保安全上下文隔离到各个线程。这意味着每个线程都有自己的安全上下文,互不干扰。SecurityContextHolder 支持安全上下文在不同线程间的传播,这对于异步处理至关重要。
在应用程序中,经常需要获取当前登录用户的信息,如用户名、角色等。可以通过 SecurityContextHolder.getContext().getAuthentication() 来获取当前的 Authentication 对象,进而获取用户信息。
【示例】获取 SecurityContextHolder 对象的信息。
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;/*** 首页* @author pan_junbiao*/
@RequestMapping("/")
public void index()
{// 通过 SecurityContextHolder 安全上下文信息,获取当前的 Authentication 对象Authentication authentication = SecurityContextHolder.getContext().getAuthentication();// 打印 Authentication 信息System.out.println("用户名称:" + authentication.getName());System.out.println("主要信息:" + authentication.getPrincipal());System.out.println("登录密码:" + authentication.getCredentials());System.out.println("用户详情:" + authentication.getDetails());System.out.println("权限信息:" + authentication.getAuthorities