如果您不知道, Spring安全性可能会限制用户可以拥有的会话数。 如果要开发Web应用程序,尤其是Java JEE中的安全Web应用程序 ,则必须提出与在线银行门户相似的要求,例如, 每个用户一次只能有一个会话,或者每个用户没有并发会话 。 即使您也可以在不使用Spring安全性但使用Spring安全性的情况下实现此功能,它只是小菜一碟:)。 您只需要在spring安全配置文件中添加几行XML,就可以完成。 为了实现此功能,可以使用<concurrency-control>标记。 您可以配置应用程序支持的最大会话数,然后Spring安全性将自动检测用户是否违反了限制,并将其定向到您使用此标记指定的无效会话URL,例如定向到注销页面。
与此类似, Spring Security提供了许多现成的功能,这是authenticationauthorizationsession managementpassword encodingsecure accesssession timeout等所需的安全企业或Web应用程序。

在我们的Spring安全性示例中,我们看到了如何使用Spring安全性在Active Directory中执行LDAP身份验证,并且在此Spring安全性示例中,我们将看到如何限制Java Web应用程序中用户可以拥有的会话数或如何限制并发用户会话。

Spring Security示例:限制用户会话数

就像我说的那样,当您使用spring安全框架或库时,这很容易。 实际上,所有内容都是声明性的,不需要任何代码即可启用并发会话以禁用功能

您将需要在您的Spring Security Configuration文件中包含以下xml片段,该片段主要命名为
applicaContext-security.xml 。 这是示例Spring安全性限制Java Web应用程序中用户会话的示例

<session-management invalid-session-url="/logout.html"><concurrency-control max-sessions="1" error-if-maximum-exceeded="true" />
</session-management>

如您所见,您可以指定每个用户允许多少个并发会话 ,最安全的系统(如在线银行门户)仅允许每个用户一个经过身份验证的会话。

您甚至可以指定一个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应用程序中的用户会话数...相关推荐

  1. Spring Security MVC登录注销示例教程

    Spring Security MVC登录注销示例教程 今天我们将了解Spring Security Login Example.在阅读这篇文章之前,请先阅读我在"Spring 4 Secu ...

  2. java web超时提醒_如何在Java Web应用程序中动态设置会话超时?

    我需要给我的用户一个Web界面来更改会话超时间隔. 因此,Web应用程序的不同安装对其会话可以具有不同的超时,但是它们的web.xml不能相同. 您的问题很简单,您需要在运行时配置会话超时间隔,并且应 ...

  3. java mongodb_MongoDB Java Servlet Web应用程序示例教程

    java mongodb Welcome to MongoDB Web Application example. Earlier in MongoDB Java Example we learned ...

  4. Web应用程序中的Spring JDBC入门

    在上一篇文章中,我已经向您展示了如何设置基本的Spring 3 MVC Web应用程序 . 重复使用该项目设置作为模板,我将向您展示如何增强它以与JDBC一起使用. 有了它,您可以存储和检索数据库中的 ...

  5. Spring MVC文件上传示例教程 - 单个和多个文件

    Spring MVC文件上传示例教程 - 单个和多个文件 文件上传是任何Web应用程序中非常常见的任务.我们之前已经看过如何在Servlet和Struts2文件上传中上传文件.今天我们将学习Sprin ...

  6. 基于Spring Security角色的访问授权示例

    Today we will look into spring security role based access and authorization example. However before ...

  7. 在Spring MVC Web应用程序中添加社交登录:集成测试

    我已经写了关于为使用Spring Social 1.1.0的应用程序编写单元测试的挑战,并为此提供了一种解决方案 . 尽管单元测试很有价值,但是它并不能真正告诉我们我们的应用程序是否正常运行. 这就是 ...

  8. 在Spring MVC Web应用程序中添加社交登录:单元测试

    Spring Social 1.0具有spring-social-test模块,该模块为测试Connect实现和API绑定提供支持. 该模块已从Spring Social 1.1.0中删除,并由 Sp ...

  9. spring_在基于Spring的Web应用程序中使用Http Session

    spring 在基于Spring的Web应用程序中拥有和使用Http会话有多种方法. 这是基于最近项目经验的总结. 方法1 只需在需要的HttpSession中注入即可. @Service publi ...

最新文章

  1. 虚拟机使用镜像文件安装系统
  2. SAP MM 模块调研问卷样例
  3. Linux网编程收藏网址
  4. linux怎么永久保存,Linux系统中,让alias命令永久保存的方法!
  5. Web开发学习路线图
  6. MySQL where后面的列子查询使用
  7. FFmpeg使用遇到问题记录
  8. mod游戏什么意思计算机,MOD运算
  9. Linq下有一个非常实用的SelectMany方法,很多人却不会用
  10. 年轻就是程序员的资本?我不敢苟同!
  11. 计算机小知识应用,电脑使用小知识
  12. android下拉刷新listView剖析
  13. 怎样下载网页中.ts视频文件
  14. ESXI 中的虚拟机导出到本地
  15. IP路由原理——技术详解
  16. 企业微信与帆软BI内网服务器集成
  17. 《那些年啊,那些事——一个程序员的奋斗史》——98
  18. 使用VGG模型自定义图像分类任务
  19. 计算机视觉与图形学-立体匹配专题-金字塔立体匹配网络
  20. Text-to-Table: A New Way of Information Extraction

热门文章

  1. HAPPY2020暑假训练前复习
  2. CF453C:Little Pony and Summer Sun Celebration(dfs、构造)
  3. P8208-[THUPC2022 初赛]骰子旅行【dp】
  4. CF802O-April Fools‘ Problem(hard)【wqs二分,优先队列】
  5. P7099-[yLOI2020]灼【数学期望,结论】
  6. P4424-[HNOI/AHOI2018]寻宝游戏【结论】
  7. 纪中C组模拟赛总结(2019.7.9)
  8. L2-016 愿天下有情人都是失散多年的兄妹 CCCC
  9. 芋道 Spring Boot 自动配置原理
  10. JAVA多线程和并发面试问题