springboot 设置过期时间

1 #Session超时时间设置,单位是秒,默认是30分钟
2 server.session.timeout=10

然而并没有什么用,因为SpringBoot在TomcatServletWebServerFactory代码中写了这个

1     private long getSessionTimeoutInMinutes() {
2         Duration sessionTimeout = this.getSession().getTimeout();
3         return this.isZeroOrLess(sessionTimeout) ? 0L : Math.max(sessionTimeout.toMinutes(), 1L);
4     }

Session失效后如何跳转到Session失效地址

 1 package cn.coreqi.security.config;
 2 
 3 import cn.coreqi.security.Filter.SmsCodeFilter;
 4 import cn.coreqi.security.Filter.ValidateCodeFilter;
 5 import org.springframework.beans.factory.annotation.Autowired;
 6 import org.springframework.context.annotation.Bean;
 7 import org.springframework.context.annotation.Configuration;
 8 import org.springframework.security.config.annotation.web.builders.HttpSecurity;
 9 import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
10 import org.springframework.security.crypto.password.NoOpPasswordEncoder;
11 import org.springframework.security.crypto.password.PasswordEncoder;
12 import org.springframework.security.web.authentication.AuthenticationFailureHandler;
13 import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
14 import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
15 
16 @Configuration
17 public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
18 
19     @Autowired
20     private AuthenticationSuccessHandler coreqiAuthenticationSuccessHandler;
21 
22     @Autowired
23     private AuthenticationFailureHandler coreqiAuthenticationFailureHandler;
24 
25     @Autowired
26     private SmsCodeAuthenticationSecurityConfig smsCodeAuthenticationSecurityConfig;
27 
28     @Bean
29     public PasswordEncoder passwordEncoder(){
30         return NoOpPasswordEncoder.getInstance();
31     }
32 
33 
34     @Override
35     protected void configure(HttpSecurity http) throws Exception {
36         ValidateCodeFilter validateCodeFilter = new ValidateCodeFilter();
37         validateCodeFilter.setAuthenticationFailureHandler(coreqiAuthenticationFailureHandler);
38 
39         SmsCodeFilter smsCodeFilter = new SmsCodeFilter();
40 
41 
42         //http.httpBasic()    //httpBasic登录 BasicAuthenticationFilter
43         http.addFilterBefore(smsCodeFilter, UsernamePasswordAuthenticationFilter.class)    //加载用户名密码过滤器的前面
44                 .addFilterBefore(validateCodeFilter, UsernamePasswordAuthenticationFilter.class)    //加载用户名密码过滤器的前面
45                 .formLogin()    //表单登录 UsernamePasswordAuthenticationFilter
46                     .loginPage("/coreqi-signIn.html")  //指定登录页面
47                     //.loginPage("/authentication/require")
48                     .loginProcessingUrl("/authentication/form") //指定表单提交的地址用于替换UsernamePasswordAuthenticationFilter默认的提交地址
49                     .successHandler(coreqiAuthenticationSuccessHandler) //登录成功以后要用我们自定义的登录成功处理器,不用Spring默认的。
50                     .failureHandler(coreqiAuthenticationFailureHandler) //自己体会把
51                 .and()
52                 .sessionManagement()
53                     .invalidSessionUrl("session/invalid")    //session过期后跳转的URL
54                 .and()
55                 .authorizeRequests()    //对授权请求进行配置
56                     .antMatchers("/coreqi-signIn.html","/code/image","/session/invalid").permitAll() //指定登录页面不需要身份认证
57                     .anyRequest().authenticated()  //任何请求都需要身份认证
58                     .and().csrf().disable()    //禁用CSRF
59                 .apply(smsCodeAuthenticationSecurityConfig);
60             //FilterSecurityInterceptor 整个SpringSecurity过滤器链的最后一环
61     }
62 }
1     @GetMapping("/session/invalid")
2     @ResponseStatus(code = HttpStatus.UNAUTHORIZED)
3     public SimpleResponse sessionInvalid(){
4         String message = "session失效";
5         return new SimpleResponse(message);
6     }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot项目时间管理系统是一款基于SpringBoot技术开发的高效时间管理工具,旨在帮助用户更好地规划、追踪和管理自己的时间。通过使用该系统,用户能够提高个人或团队的生产力,实现任务和项目的高效协调。 系统采用微服务架构设计,后端使用SpringBoot框架搭配MyBatis或JPA等ORM框架与数据库进行交互,前端则可能采用AngularJS、React或Vue.js等现代JavaScript框架来构建动态的用户界面。通常,系统会利用RESTful API来实现前后端的分离,确保系统的灵活性和可维护性。 在功能模块方面,时间管理系统通常包括以下几个关键特性: 1. 任务管理:用户可以创建、编辑和删除任务,为每个任务设置优先级、截止日期和相关标签。 2. 日历视图:系统提供日历视图功能,用户可以在日历上查看任务安排和重要事件,实现时间块的管理。 3. 时间跟踪:系统支持对任务的时间跟踪,记录用户在各个任务上花费的时间,帮助分析时间分配情况。 4. 目标设定:用户可以设定短期和长期目标,并将目标拆分为可执行的任务,助力目标达成。 5. 报告生成:系统可以根据用户的任务完成情况和时间分配自动生成报告,便于用户回顾和优化时间管理策略。 6. 提醒和通知:对于即将到期或重要的任务,系统可以发送提醒和通知,确保用户不会错过任何关键事项。 7. 团队协作:如果系统支持团队协作,团队成员可以共享任务、查看彼此的进度,并在项目中协同工作。 8. 数据同步:对于多设备使用者,系统提供数据同步功能,确保在不同设备上都能访问最新的数据。 通过这些功能,SpringBoot项目时间管理系统能够帮助用户有效地管理时间,提高工作效率。它不仅适用于个人时间管理,也适合团队合作中的项目管理。系统的设计注重用户体验和数据安全,力求为用户提供一个简洁、高效且可靠的时间管理解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值