Spring Security并发会话控制示例教程–如何限制Java JEE Web应用程序中的用户会话数...
如果您不知道, Spring安全性可能會限制用戶可以擁有的會話數。 如果要開發Web應用程序,尤其是Java JEE中的安全Web應用程序 ,則必須提出與在線銀行門戶相似的要求,例如, 每個用戶一次只能有一個會話,或者每個用戶沒有并發會話 。 即使您也可以在不使用Spring安全性但使用Spring安全性的情況下實現此功能,它只是小菜一碟:)。 您只需要在spring安全配置文件中添加幾行XML,就可以完成。 為了實現此功能,可以使用<concurrency-control>標記。 您可以配置應用程序支持的最大會話數,然后Spring安全性將自動檢測用戶是否違反了限制,并將其定向到您使用此標記指定的無效會話URL,例如定向到注銷頁面。
與此類似, Spring Security提供了許多現成的功能,這是authentication , authorization , session management , password encoding , secure access , session timeout等所需的安全企業或Web應用程序。
在我們的Spring安全性示例中,我們看到了如何使用Spring安全性在Active Directory中執行LDAP身份驗證,并且在此Spring安全性示例中,我們將看到如何限制Java Web應用程序中用戶可以擁有的會話數或如何限制并發用戶會話。
Spring Security示例:限制用戶會話數
就像我說的那樣,當您使用spring安全框架或庫時,這很容易。 實際上,所有內容都是聲明性的,不需要任何代碼即可啟用并發會話以禁用功能 。
您將需要在您的Spring Security Configuration文件中包含以下xml片段,該片段主要命名為
applicaContext-security.xml 。 這是示例Spring安全性限制Java Web應用程序中用戶會話的示例 :
如您所見,您可以指定每個用戶允許多少個并發會話 ,最安全的系統(如在線銀行門戶)僅允許每個用戶一個經過身份驗證的會話。
您甚至可以指定一個URL,如果用戶提交無效的會話標識符,則該用戶將被帶到該URL,該URL可用于檢測會話超時。 session-management元素用于捕獲與會話相關的內容。
Max-session指定允許多少個并發身份驗證會話,如果將error-if-maximum-exceeded Max-session error-if-maximum-exceeded設置為true,則在用戶嘗試登錄另一個會話時將標記錯誤。
例如,如果您嘗試從瀏覽器兩次登錄到該Spring Security應用程序,那么您將收到一條錯誤消息,指出“此主體超過最大會話數為1” ,如下所示:
相依性
此代碼依賴于spring-security框架。 您需要下載spring安全罐(例如spring-security-web-3.1.0.ja r)并將其添加到應用程序classpath中 。
這個簡單的Spring Security示例展示了Spring Security的強大功能,一小段xml代碼段可以在Java Web應用程序中添加非常有用且方便的安全功能 。
我強烈建議對使用Servlet JSP創建的新Java Web應用程序或現有Java Web應用程序使用spring security。
這就是如何在Java Web應用程序中使用Spring Security限制用戶會話數的全部內容。 讓我知道您在項目中實施此安全功能時是否遇到任何問題。
翻譯自: https://www.javacodegeeks.com/2018/04/spring-security-concurrent-session-control-example-tutorial-how-to-limit-number-of-user-session-in-java-jee-web-application.html
總結
以上是生活随笔為你收集整理的Spring Security并发会话控制示例教程–如何限制Java JEE Web应用程序中的用户会话数...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何申请企业邮箱(如何申请企业邮箱账号)
- 下一篇: java美元兑换,(Java实现) 美元