- 0
- 0
- 约3.62千字
- 约 15页
- 2026-02-09 发布于陕西
- 举报
目CONTENTS
录一会话管理
二用户退出
用户,为了避免用户的每次操作都进行认证,可以将
。会话就是系统为了所提供
的机制,常见的有基于。Spring
Security提供会话管理功能,只需要配置即可使用。同时,如果想结束
当前会话,可以在自定义退出功能中销毁会话中的用户信息。下面将在
SpringBoot项目中基于SpringSecurity。
会话管理
SpringSecurity对用户信息后,会将的上
下文对象SecurityContext中,SecurityContext与当前线程进行绑定,
时,可以通过SecurityContextHolder获取对象,进而使用
对象获取用户信息。
Authenticationauthentication=
SecurityContextHolder.getContext().getAuthentication();
if(!authentication.isAuthenticated()){
returnnull;
}
UserDetailsuserDetails=(UserDetails)
authentication.getPrincipal();
Stringusername=userDetails.getUsername();
默认情况下,SpringSecurity会为每个的用户新建一个
,开发者也可以根据具体的需求对Session的创建进行。
有以下四种。
如果没有Session就创建一个。
如果需要就创建一个Session,是默认的创建策略。
SpringSecurity将不会创建Session,但是如果项目中其他地方创建了
Session,那么SpringSecurity可以使用它。
SpringSecurity将绝对不会创建Session,也不使用Session。
当项目中,但是想要项目,可
以选择使用never策略。
@Bean
publicSecurityFilterChainsecurityFilterChain(HttpSecurityhttp)throwsException{
http.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.NEVER);
returnhttp.build();
}
SpringSecurity对用户信息,会将的上
下文对象如果项目中情况下Session的,如
果想要对Session默认的超时时间进行修改,可以在SpringBoot的
Session的超时时间。
ser
原创力文档

文档评论(0)