Spring Security--获取登录成功的用户信息

这里讲的是securiy处理用户信息的方法。

首先,服务端一定是讲用户信息存到Httpsession中。

1.首先,前端发起一个登陆请求,这个请求会经过security 一系列的过滤器,其中有一个SecurityContextPersistenceFilter过滤器,主要用来处理当前用户信息。在用户登录成功后,自动将用户信息存入到SecurityContextHolder中。 SecurityContextHolder 的底层就是 ThreadLocal。

也就是说只有在主线程中才可以获取到用户信息。我们举个例子:

Spring Security--获取登录成功的用户信息_第1张图片

 代码如上,运行一下

Spring Security--获取登录成功的用户信息_第2张图片

 打印了一个Uer信息,新线程里的报了个空。

2.在登录请求处理完毕后,响应数据给前端时,也会经过SecurityContextPersistenceFilter 过滤器,此时,会将用户信息存入Httpsession中。

3.下一个请求来的时候,还是会经过SecurityContextPersistenceFilter 过滤器,,此时系统还是会从Httpsession 中读取出登录成功的用户信息,并将之存入SecurityContextHolder 中。

然后也可以在Httpsession中拿值

Spring Security--获取登录成功的用户信息_第3张图片

 

 

 

你可能感兴趣的:(Spring,Security,spring,spring,boot)