日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

springsecurity中session失效后怎样处理_结合Spring Security进行web应用会话安全管理

發(fā)布時(shí)間:2025/3/12 javascript 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springsecurity中session失效后怎样处理_结合Spring Security进行web应用会话安全管理 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

結(jié)合Spring Security進(jìn)行web應(yīng)用會(huì)話安全管理

在本文中,將為大家說(shuō)明如何結(jié)合Spring Security 管理web應(yīng)用的會(huì)話。如果您閱讀后覺(jué)得本文對(duì)您有幫助,期待您能關(guān)注、轉(zhuǎn)發(fā)!您的支持是我不竭的創(chuàng)作動(dòng)力!

一、Spring Security創(chuàng)建使用session的方法

Spring Security提供4種方式精確的控制會(huì)話的創(chuàng)建:

  • always:如果當(dāng)前請(qǐng)求沒(méi)有session存在,Spring Security創(chuàng)建一個(gè)session。
  • ifRequired(默認(rèn)): Spring Security在需要時(shí)才創(chuàng)建session
  • never: Spring Security將永遠(yuǎn)不會(huì)主動(dòng)創(chuàng)建session,但是如果session已經(jīng)存在,它將使用該session
  • stateless:Spring Security不會(huì)創(chuàng)建或使用任何session。適合于接口型的無(wú)狀態(tài)應(yīng)用,該方式節(jié)省資源。

在Spring Security配置中加入session創(chuàng)建的策略。繼承WebSecurityConfigurerAdapter ,重寫(xiě)configure(HttpSecurity http) 方法(為了方便移動(dòng)端觀看,我將下列代碼非規(guī)范換行,一行中盡量簡(jiǎn)短)

@Overrideprotected void configure(HttpSecurity http) throws Exception { http.sessionManagement() .sessionCreationPolicy( SessionCreationPolicy.IF_REQUIRED )}

重要的是:該配置只能控制Spring Security如何創(chuàng)建與使用session,而不是控制整個(gè)應(yīng)用程序。如果我們不明確指定,Spring Security可能不會(huì)創(chuàng)建session,但是我們的應(yīng)用程序可能會(huì)創(chuàng)建session(一般spring應(yīng)用的session管理交由Spring Session進(jìn)行)!

二、會(huì)話超時(shí)管理

2.1 會(huì)話超時(shí)處理

會(huì)話超時(shí)之后,我們通常希望應(yīng)用跳轉(zhuǎn)到一個(gè)指定的URL,顯示會(huì)話超時(shí)信息。可以使用如下的配置的代碼實(shí)現(xiàn)。

http.sessionManagement() //超時(shí)session跳轉(zhuǎn)頁(yè)面 .expiredUrl("/sessionExpired.html") //非法session跳轉(zhuǎn)頁(yè)面 .invalidSessionUrl("/invalidSession.html");

2.2.會(huì)話超時(shí)時(shí)間配置

在Spring boot應(yīng)用中有兩種設(shè)置會(huì)話超時(shí)時(shí)間的方式,Spring Security對(duì)這兩種方式完全兼容,即:當(dāng)會(huì)話超時(shí)之后用戶需要重新登錄才能訪問(wèn)應(yīng)用:

  • server.servlet.session.timeout=15m
  • spring.session.timeout = 15m

第一種方式是springBoot應(yīng)用自帶的session超時(shí)配置,第二種方式是我們使用Spring Session之后,提供的session超時(shí)配置。第二種方式的優(yōu)先級(jí)更高。

三、Spring Security的會(huì)話固化保護(hù)

session-fixation-protection 即session的固化保護(hù)功能,該功能的目的是一定程度上防止非法用戶竊取用戶session及cookies信息,進(jìn)而模擬session的行為。
默認(rèn)情況下,Spring Security啟用了migrationSession保護(hù)方式。即對(duì)于同一個(gè)cookies的SESSIONID用戶,每次登錄驗(yàn)證將創(chuàng)建一個(gè)新的HTTP會(huì)話,舊的HTTP會(huì)話將無(wú)效,并且舊會(huì)話的屬性將被復(fù)制。

http.sessionManagement() .sessionFixation().migrateSession()

如果這不是您需要的方式,則可以使用其他兩個(gè)選項(xiàng):

  • 設(shè)置為“none”時(shí),原始會(huì)話不會(huì)無(wú)效
  • 設(shè)置“newSession”后,將創(chuàng)建一個(gè)干凈的會(huì)話,而不會(huì)復(fù)制舊會(huì)話中的任何屬性

四、Cookie的安全

熟悉Session實(shí)現(xiàn)原理的朋友一定都知道,提高Cookies的安全性,實(shí)際上就是提高session的安全性。在Spring Boot中可以通過(guò)配置方式來(lái)實(shí)現(xiàn):

server.servlet.session.cookie.http-only=trueserver.servlet.session.cookie.secure=true
  • httpOnly:如果為true,則瀏覽器腳本將無(wú)法訪問(wèn)cookie
  • secure:如果為true,則僅通過(guò)HTTPS連接發(fā)送cookie,HTTP無(wú)法攜帶cookie。

總結(jié)

以上是生活随笔為你收集整理的springsecurity中session失效后怎样处理_结合Spring Security进行web应用会话安全管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。