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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转载]spring security 的 logout 功能

發布時間:2024/9/5 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转载]spring security 的 logout 功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原文地址:spring?security?的?logout?功能作者:sumnny

轉載自:http://lengyun3566.iteye.com/blog/1114464

理解退出功能

術語退出(Logout)指的是用戶使其安全session失效的一種操作。一般來說,用戶在退出后,將會被重定向到站點的非安全保護的界面。讓我們在站點的頁頭部分添加一個“Log Out”的鏈接,并再次訪問站點以了解其如何實現功能的。

在站點頁頭上添加“Log Out”鏈接

正如我們在第二章中討論的那樣,Spring Security將會監視一些特殊的URL,這些URL將會觸發過濾器鏈中的一個或多個過濾器。用戶實現退出的URL標識為/j_spring_security_logout。在header.jsp中添加一個退出的鏈接與為一個錨標簽(即a標簽)添加適合的href屬性:

?

?

Html代碼?
  • Log Out
  • " quality="high" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">?
  • <c:url?value="/j_spring_security_logout"?var="logoutUrl"/>??
  • <li><a?href="${logoutUrl}">Log?Out</a></li>??
  • ?

    ?

    如果你重新加載站點并點擊“Log Out”鏈接,你會發現被重置到登錄form的界面。現在看來,登錄和退出是很有趣的!

    【使用JSTL URL標簽來處理相對URL。我們使用了JSTL核心庫中的url標簽來保證提供的URL在部署的web應用中能夠被正確處理。url標簽將提供的URL按照相對路徑(以/開始)進行處理。你可能會見過其他類似的實現技術如使用JSP的代碼((<%= request.getContextPath() %>)),但是JSTL的url標簽能夠使得你免于編寫內聯的代碼。】

    讓我們看一下在這個簡單操作的背后都發生了什么。

    退出是怎么實現的

    當我們點擊退出鏈接時,到底發生了什么?

    需要記住的一點是任何URL請求在被servlet處理之前,都會經過Spring Security的過濾器鏈。所以,/j_spring_security_logout這個URL請求并非對應系統中的一個JSP,也不必有一個真正的JSP或者Spring MVC的目標來對其進行處理。這種類型的URL通常被稱為虛擬URL。

    ?

    請求/j_spring_security_logout的URL被o.s.s.web.authentication.logout.LogoutFilter過濾器所攔截。在Spring Security的眾多默認過濾器中,LogoutFilter專門匹配這個虛擬URL并執行相應的操作。

    ?

    讓我們快速地查看一下Spring Security的security命名空間提供的默認退出功能:

    ?

    Xml代碼? " quality="high" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">?
  • <http?auto-config="true"?use-expressions="true">??
  • ??<logout?invalidate-session="true"??
  • ??????logout-success-url="/"??
  • ??????logout-url="/j_spring_security_logout"/>??
  • </http>??
  • ??

    ?

    基于這個基本配置,系統將會尋找在logout-url屬性配置的URL并實現用戶的退出。使得用戶退出系統將會涉及如下的三個步驟:

    1.??????使得HTTP session失效(如果invalidate-session屬性被設置為true);

    2.???????清除SecurityContex(真正使得用戶退出);

    3.???????將頁面重定向至logout-success-url指明的URL。

    以下的圖片闡述了退出的過程:



    ?o.s.s.web.authentication.logout.LogoutHandler接口的實現類可以在用戶通過LogoutFilter退出時被調用。你可以實現自己的LogoutHandler(盡管比較復雜)并將其關聯到LogoutFilter的生命周期中。通過LogoutFilter默認設置的LogoutHandler將會清除session以及remember me相關的功能,所以用戶的session中不會再持有認證相關的信息。最后,通過一個o.s.s.web.

    authentication.logout.LogoutSuccessHandler接口的默認實現,頁面得以重定向到一個URL。默認實現中會將頁面重定向到我們配置的成功退出URL地址(默認為/),但是我們自定義任何系統在用戶退出時想要的操作。值得注意的是,退出的處理不應該拋出異常,因為很重要的一點是要在用戶的安全session中避免可能出現的潛在不一致性。所以在實現自己的安全處理時要保證異常被正確的處理和記錄。

    修改logout URL

    讓我們嘗試重寫默認的logout URL來提供一個修改自動設置的簡單例子。我們將會修改logout URL為/logout。

    修改dogstore-security.xml配置文件來包含<logout>元素如下的代碼所示:

    ?

    ?

    Xml代碼? ... .. " quality="high" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">?
  • <http?auto-config="true"?use-expressions="true">??
  • ...??
  • ..<logout?invalidate-session="true"??
  • ??????logout-success-url="/"??
  • ??????logout-url="/logout"/>??
  • </http>??
  • ?

    ?

    修改/common/header.jsp文件來改變logout鏈接的herf屬性以匹配新的URL:

    ?

    ?

    Html代碼?
    • Log Out
    • " quality="high" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">?
  • <c:url?value="/logout"?var="logoutUrl"/>??
  • <li><a?href="${logoutUrl}">Log?Out</a></li>??
  • ?

    ?

    重新啟動應用并進行嘗試。你可以發現使用/logout URL取代了/j_spring_security_logout實現用戶的退出。你可能也會發現當你嘗試/j_spring_security_logout這個地址時,你會得到一個Page not Found(404)的錯誤,是因為這個URL不與任何一個實際的servlet資源相對應并且不會被過濾器所處理。

    Logout配置命令

    <logout>元素包含其他的配置指令以實現更復雜的退出功能,介紹如下:

    屬性

    描述

    invalidate-session

    如果被設置為true,用戶的HTTP session將會在退出時被失效。在一些場景下,這是必要的(如用戶擁有一個購物車時)

    logout-success-url

    用戶在退出后將要被重定向到的URL。默認為/。將會通過HttpServletResponse.redirect來處理。

    logout-url

    LogoutFilter要讀取的URL(在例子中,我們改變了它的設置)。

    success-handler-ref

    對一個LogoutSuccessHandler實現的引用。

    ?

    轉載于:https://www.cnblogs.com/kevin443/p/7726970.html

    總結

    以上是生活随笔為你收集整理的[转载]spring security 的 logout 功能的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日本wwwwwww| 欧美成本人视频 | 97超碰精品 | 男男啪啪无遮挡 | 亚洲午夜精品在线 | 激情久久av一区av二区av三区 | 欧美激情综合网 | 国产又粗又猛又爽免费视频 | 成人做爰www免费看视频网站 | 亚洲欧洲国产日韩 | 免费看女生裸体视频 | 亚洲区中文字幕 | 好吊妞在线观看 | 国产一级免费av | 午夜黄色录像 | 国产又色又爽 | 色丁香六月 | 97天天干 | yw视频在线观看 | 天天干天天操天天爱 | 成人a免费 | 午夜啪啪网站 | 狠狠干综合 | av片免费在线 | 国产精品一区二区三区在线看 | 中国久久久久 | 日韩精品免费在线观看 | 日本一区二区在线免费观看 | 欧美三级网| 污视频在线网站 | 无人在线观看高清视频 | 老师张开让我了一夜av | 97伊人| 麻豆视频免费版 | 精品九九| 男生桶女生肌肌 | 婷婷色中文 | 国产精品一区二区三区久久久 | 男人的天堂在线播放 | 无人在线观看高清视频 | 最新日韩中文字幕 | 玉女心经是什么意思 | 国产污污视频在线观看 | 日本大片黄| 日本免费a级片 | 明星双性精跪趴灌满h | 久久久久久久中文字幕 | 99热这里有精品 | 亚洲不卡中文字幕无码 | 国产人妖一区二区 | 精品欧美黑人一区二区三区 | 久久精品久久久久 | 在线欧美一区 | 美国免费高清电影在线观看 | 怡红院av久久久久久久 | 一个人看的视频www 色就是色网站 | 国产女教师一区二区三区 | 黄瓜视频在线观看 | 亚洲精品中文字幕成人片 | 欧美福利影院 | 一及黄色大片 | 在线视频亚洲色图 | 欧美视频免费看欧美视频 | 超碰久草 | 美女喷液视频 | 久久影| 久久999 | 制服中文字幕 | 美女av免费在线观看 | 高清一区二区三区四区五区 | 中文字幕日韩精品亚洲一区小树林 | 日韩成人av在线播放 | 欧洲一区二区三区四区 | 成人毛片18女人毛片 | 成 年 人 黄 色 大 片大 全 | 欧美日韩国产在线播放 | 亚洲视频在线视频 | 丰满少妇高潮在线观看 | 国产精品自拍亚洲 | 久久国产精品久久国产精品 | 成人免费看高清电影在线观看 | 国产精品揄拍100视频 | 国产又粗又长视频 | 国产高潮视频在线观看 | 婷婷综合精品 | 亚洲色图第一页 | 求av网址 | 狂野欧美性猛交xxxx巴西 | 国产成人精品a视频 | 成人一区二区三区在线 | 天天弄天天操 | 久久精品国产亚洲AV高清综合 | 国产精品无码人妻一区二区在线 | 999国产精品| 99视频只有精品 | 91刺激| 三上悠亚ssⅰn939无码播放 | 国产成人精品一区二区三区免费 | 少妇紧身牛仔裤裤啪啪 |