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应用程序中用户会话的示例 :
<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应用程序中的用户会话数...相关推荐
- Spring Security MVC登录注销示例教程
Spring Security MVC登录注销示例教程 今天我们将了解Spring Security Login Example.在阅读这篇文章之前,请先阅读我在"Spring 4 Secu ...
- java web超时提醒_如何在Java Web应用程序中动态设置会话超时?
我需要给我的用户一个Web界面来更改会话超时间隔. 因此,Web应用程序的不同安装对其会话可以具有不同的超时,但是它们的web.xml不能相同. 您的问题很简单,您需要在运行时配置会话超时间隔,并且应 ...
- java mongodb_MongoDB Java Servlet Web应用程序示例教程
java mongodb Welcome to MongoDB Web Application example. Earlier in MongoDB Java Example we learned ...
- Web应用程序中的Spring JDBC入门
在上一篇文章中,我已经向您展示了如何设置基本的Spring 3 MVC Web应用程序 . 重复使用该项目设置作为模板,我将向您展示如何增强它以与JDBC一起使用. 有了它,您可以存储和检索数据库中的 ...
- Spring MVC文件上传示例教程 - 单个和多个文件
Spring MVC文件上传示例教程 - 单个和多个文件 文件上传是任何Web应用程序中非常常见的任务.我们之前已经看过如何在Servlet和Struts2文件上传中上传文件.今天我们将学习Sprin ...
- 基于Spring Security角色的访问授权示例
Today we will look into spring security role based access and authorization example. However before ...
- 在Spring MVC Web应用程序中添加社交登录:集成测试
我已经写了关于为使用Spring Social 1.1.0的应用程序编写单元测试的挑战,并为此提供了一种解决方案 . 尽管单元测试很有价值,但是它并不能真正告诉我们我们的应用程序是否正常运行. 这就是 ...
- 在Spring MVC Web应用程序中添加社交登录:单元测试
Spring Social 1.0具有spring-social-test模块,该模块为测试Connect实现和API绑定提供支持. 该模块已从Spring Social 1.1.0中删除,并由 Sp ...
- spring_在基于Spring的Web应用程序中使用Http Session
spring 在基于Spring的Web应用程序中拥有和使用Http会话有多种方法. 这是基于最近项目经验的总结. 方法1 只需在需要的HttpSession中注入即可. @Service publi ...
最新文章
- 虚拟机使用镜像文件安装系统
- SAP MM 模块调研问卷样例
- Linux网编程收藏网址
- linux怎么永久保存,Linux系统中,让alias命令永久保存的方法!
- Web开发学习路线图
- MySQL where后面的列子查询使用
- FFmpeg使用遇到问题记录
- mod游戏什么意思计算机,MOD运算
- Linq下有一个非常实用的SelectMany方法,很多人却不会用
- 年轻就是程序员的资本?我不敢苟同!
- 计算机小知识应用,电脑使用小知识
- android下拉刷新listView剖析
- 怎样下载网页中.ts视频文件
- ESXI 中的虚拟机导出到本地
- IP路由原理——技术详解
- 企业微信与帆软BI内网服务器集成
- 《那些年啊,那些事——一个程序员的奋斗史》——98
- 使用VGG模型自定义图像分类任务
- 计算机视觉与图形学-立体匹配专题-金字塔立体匹配网络
- Text-to-Table: A New Way of Information Extraction
热门文章
- HAPPY2020暑假训练前复习
- CF453C:Little Pony and Summer Sun Celebration(dfs、构造)
- P8208-[THUPC2022 初赛]骰子旅行【dp】
- CF802O-April Fools‘ Problem(hard)【wqs二分,优先队列】
- P7099-[yLOI2020]灼【数学期望,结论】
- P4424-[HNOI/AHOI2018]寻宝游戏【结论】
- 纪中C组模拟赛总结(2019.7.9)
- L2-016 愿天下有情人都是失散多年的兄妹 CCCC
- 芋道 Spring Boot 自动配置原理
- JAVA多线程和并发面试问题