欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot2.x設(shè)置Session失效時(shí)間及失效跳轉(zhuǎn)方式

 更新時(shí)間:2022年03月17日 11:07:13   作者:奇  
這篇文章主要介紹了SpringBoot2.x設(shè)置Session失效時(shí)間及失效跳轉(zhuǎn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

設(shè)置Session失效時(shí)間及失效跳轉(zhuǎn)

#Session超時(shí)時(shí)間設(shè)置,單位是秒,默認(rèn)是30分鐘
?server.servlet.session.timeout=10

然而并沒有什么用,因?yàn)镾pringBoot在TomcatServletWebServerFactory代碼中寫了這個(gè)

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

如果說某些人看不懂 Duration 這個(gè)類是什么,我不推薦你接著看下去了,因?yàn)闆]有什么幫助。

Session失效后如何跳轉(zhuǎn)到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;
@Configuration
public 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默認(rèn)的提交地址
? ? ? ? ? ? ? ? ? ? .successHandler(coreqiAuthenticationSuccessHandler) //登錄成功以后要用我們自定義的登錄成功處理器,不用Spring默認(rèn)的。
? ? ? ? ? ? ? ? ? ? .failureHandler(coreqiAuthenticationFailureHandler) //自己體會(huì)把
? ? ? ? ? ? ? ? .and()
? ? ? ? ? ? ? ? .sessionManagement()
? ? ? ? ? ? ? ? ? ? .invalidSessionUrl("session/invalid") ? ?//session過期后跳轉(zhuǎn)的URL
? ? ? ? ? ? ? ? .and()
? ? ? ? ? ? ? ? .authorizeRequests() ? ?//對(duì)授權(quán)請(qǐng)求進(jìn)行配置
? ? ? ? ? ? ? ? ? ? .antMatchers("/coreqi-signIn.html","/code/image","/session/invalid").permitAll() //指定登錄頁面不需要身份認(rèn)證
? ? ? ? ? ? ? ? ? ? .anyRequest().authenticated() ?//任何請(qǐng)求都需要身份認(rèn)證
? ? ? ? ? ? ? ? ? ? .and().csrf().disable() ? ?//禁用CSRF
? ? ? ? ? ? ? ? .apply(smsCodeAuthenticationSecurityConfig);
? ? ? ? ? ? //FilterSecurityInterceptor 整個(gè)SpringSecurity過濾器鏈的最后一環(huán)
? ? }
}
? ? @GetMapping("/session/invalid")
? ? @ResponseStatus(code = HttpStatus.UNAUTHORIZED)
? ? public SimpleResponse sessionInvalid(){
? ? ? ? String message = "session失效";
? ? ? ? return new SimpleResponse(message);
? ? }

設(shè)置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;
@SpringBootApplication
public class DemoApplication {undefined
public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
}
//設(shè)置session過期時(shí)間
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
    return new EmbeddedServletContainerCustomizer() {
        public void customize(ConfigurableEmbeddedServletContainer container) {
            container.setSessionTimeout(7200);// 單位為S
        }
    };
}
}

還可以設(shè)置

application.yml

server:
port: 8081
servlet:
session:
timeout: 60s

@RestController
public 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;
}
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java如何高效使用OpenCV圖像處理庫

    Java如何高效使用OpenCV圖像處理庫

    OpenCV是一個(gè)開源的計(jì)算機(jī)視覺庫,它提供了一系列豐富的圖像處理和計(jì)算機(jī)視覺算法,包括圖像讀取、顯示、濾波、特征檢測、目標(biāo)跟蹤等功能,這篇文章主要給大家介紹了關(guān)于Java如何高效使用OpenCV圖像處理庫的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • 詳解如何把Java中if-else代碼重構(gòu)成高質(zhì)量代碼

    詳解如何把Java中if-else代碼重構(gòu)成高質(zhì)量代碼

    這篇文章主要介紹了詳解如何把Java中if-else代碼重構(gòu)成高質(zhì)量代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Java實(shí)現(xiàn)帶有權(quán)重隨機(jī)算法的示例詳解

    Java實(shí)現(xiàn)帶有權(quán)重隨機(jī)算法的示例詳解

    這篇文章主要為大家詳細(xì)介紹了Java如何實(shí)現(xiàn)帶有權(quán)重隨機(jī)算法,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • mybatis開啟spring事務(wù)代碼解析

    mybatis開啟spring事務(wù)代碼解析

    這篇文章主要介紹了mybatis開啟spring事務(wù)代碼解析,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-12-12
  • springboot?接收LocalDateTime方式

    springboot?接收LocalDateTime方式

    這篇文章主要介紹了springboot?接收LocalDateTime方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • IDEA一鍵生成方法的序列圖神操作

    IDEA一鍵生成方法的序列圖神操作

    為了能夠更快更清晰地搞清對(duì)象之間的調(diào)用關(guān)系,我經(jīng)常需要用到序列圖。手動(dòng)畫序列圖還是很麻煩費(fèi)時(shí)的,不過?IDEA?提供了一個(gè)叫做SequenceDiagram?的插件幫助我們解決這個(gè)問題。通SequenceDiagram?這個(gè)插件,我們一鍵可以生成時(shí)序圖
    2022-01-01
  • Java實(shí)現(xiàn)單向鏈表的基本功能詳解

    Java實(shí)現(xiàn)單向鏈表的基本功能詳解

    這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)單向鏈表基本功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • SpringMVC下實(shí)現(xiàn)Excel文件上傳下載

    SpringMVC下實(shí)現(xiàn)Excel文件上傳下載

    這篇文章主要為大家詳細(xì)介紹了SpringMVC下實(shí)現(xiàn)Excel文件上傳下載,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • SpringCloud使用Feign文件上傳、下載

    SpringCloud使用Feign文件上傳、下載

    這篇文章主要為大家詳細(xì)介紹了SpringCloud使用Feign文件上傳、下載功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Spark-Sql入門程序示例詳解

    Spark-Sql入門程序示例詳解

    Spark?SQL?作為?Spark?四大核心組件之一,主要用于處理結(jié)構(gòu)化數(shù)據(jù)或半結(jié)構(gòu)化數(shù)據(jù),它支持在Spark?中使用?SQL?對(duì)數(shù)據(jù)進(jìn)行查詢,本文給大家介紹Spark-Sql入門程序,感興趣的朋友跟隨小編一起看看吧
    2021-12-12

最新評(píng)論