SpringBoot2.x如何设置Session失效时间及失效跳转
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家分享的是有关SpringBoot2.x如何设置Session失效时间及失效跳转的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。设置Session失效时间及失效跳
千家信息网最后更新 2026年11月01日SpringBoot2.x如何设置Session失效时间及失效跳转
这篇文章给大家分享的是有关SpringBoot2.x如何设置Session失效时间及失效跳转的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
设置Session失效时间及失效跳转
#Session超时时间设置,单位是秒,默认是30分钟 server.servlet.session.timeout=10
然而并没有什么用,因为SpringBoot在TomcatServletWebServerFactory代码中写了这个
private long getSessionTimeoutInMinutes() { Duration sessionTimeout = this.getSession().getTimeout(); return this.isZeroOrLess(sessionTimeout) ? 0L : Math.max(sessionTimeout.toMinutes(), 1L); }如果说某些人看不懂 Duration 这个类是什么,我不推荐你接着看下去了,因为没有什么帮助。
Session失效后如何跳转到Session失效地址
package cn.coreqi.security.config; import cn.coreqi.security.Filter.SmsCodeFilter;import cn.coreqi.security.Filter.ValidateCodeFilter;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.security.config.annotation.web.builders.HttpSecurity;import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;import org.springframework.security.crypto.password.NoOpPasswordEncoder;import org.springframework.security.crypto.password.PasswordEncoder;import org.springframework.security.web.authentication.AuthenticationFailureHandler;import org.springframework.security.web.authentication.AuthenticationSuccessHandler;import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;@Configurationpublic class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private AuthenticationSuccessHandler coreqiAuthenticationSuccessHandler; @Autowired private AuthenticationFailureHandler coreqiAuthenticationFailureHandler; @Autowired private SmsCodeAuthenticationSecurityConfig smsCodeAuthenticationSecurityConfig; @Bean public PasswordEncoder passwordEncoder(){ return NoOpPasswordEncoder.getInstance(); } @Override protected void configure(HttpSecurity http) throws Exception { ValidateCodeFilter validateCodeFilter = new ValidateCodeFilter(); validateCodeFilter.setAuthenticationFailureHandler(coreqiAuthenticationFailureHandler); SmsCodeFilter smsCodeFilter = new SmsCodeFilter(); //http.httpBasic() //httpBasic登录 BasicAuthenticationFilter http.addFilterBefore(smsCodeFilter, UsernamePasswordAuthenticationFilter.class) //加载用户名密码过滤器的前面 .addFilterBefore(validateCodeFilter, UsernamePasswordAuthenticationFilter.class) //加载用户名密码过滤器的前面 .formLogin() //表单登录 UsernamePasswordAuthenticationFilter .loginPage("/coreqi-signIn.html") //指定登录页面 //.loginPage("/authentication/require") .loginProcessingUrl("/authentication/form") //指定表单提交的地址用于替换UsernamePasswordAuthenticationFilter默认的提交地址 .successHandler(coreqiAuthenticationSuccessHandler) //登录成功以后要用我们自定义的登录成功处理器,不用Spring默认的。 .failureHandler(coreqiAuthenticationFailureHandler) //自己体会把 .and() .sessionManagement() .invalidSessionUrl("session/invalid") //session过期后跳转的URL .and() .authorizeRequests() //对授权请求进行配置 .antMatchers("/coreqi-signIn.html","/code/image","/session/invalid").permitAll() //指定登录页面不需要身份认证 .anyRequest().authenticated() //任何请求都需要身份认证 .and().csrf().disable() //禁用CSRF .apply(smsCodeAuthenticationSecurityConfig); //FilterSecurityInterceptor 整个SpringSecurity过滤器链的最后一环 }} @GetMapping("/session/invalid") @ResponseStatus(code = HttpStatus.UNAUTHORIZED) public SimpleResponse sessionInvalid(){ String message = "session失效"; return new SimpleResponse(message); }设置Session失效的几种方式
如果是1.5.6版本
这里可以在application中加上bean文件
package com.example.demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;import org.springframework.context.annotation.Bean;@SpringBootApplicationpublic class DemoApplication {undefinedpublic static void main(String[] args) { SpringApplication.run(DemoApplication.class, args);}//设置session过期时间@Beanpublic EmbeddedServletContainerCustomizer containerCustomizer() { return new EmbeddedServletContainerCustomizer() { public void customize(ConfigurableEmbeddedServletContainer container) { container.setSessionTimeout(7200);// 单位为S } };}}
还可以设置
application.yml
server:port: 8081servlet:session:timeout: 60s

@RestControllerpublic class HelloController {undefined@PostMapping("test")public Integer getTest(@RequestParam("nyy")String nn, HttpServletRequest httpServletRequest ){ HttpSession session = httpServletRequest.getSession(); session.setMaxInactiveInterval(60); int maxInactiveInterval = session.getMaxInactiveInterval(); long lastAccessedTime = session.getLastAccessedTime(); return maxInactiveInterval;}}感谢各位的阅读!关于"SpringBoot2.x如何设置Session失效时间及失效跳转"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
登录
时间
地址
过滤器
成功
内容
单位
密码
更多
用户
用户名
篇文章
表单
身份
身份认证
页面
帮助
认证
不错
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
华服互联网科技靠谱吗
广州淘业互联网络科技
广州万易互联网科技有限公司
重生之互联网科技帝国
国智互联网科技
互联网电商科技
深圳互联网科技公司
紫鲸互联网科技
奔汉互联网科技
中盈科技互联网信息有限公司
深圳国际航运科技和互联网
中国互联网有什么科技含量
互联网还是高科技吗
花神(南京)互联网科技有限公司
未来五年的互联网科技
互联网科技和信息
西安小鹰速贷互联网科技有限公司
美国互联网科技公司
互联网科技手机排行榜
互联网科技创新创业项目
互联网科技的发展
多迪互联网科技有限公司
承德科技产业互联网发展
互联网对科技的发展
未来五年的互联网科技
卓翼科技产业互联网合作
广州千川互联网科技有限公司
从那以后互联网科技有限公司
上海互联网科技公司ppt
网互联网络科技