[Java][Spring][scurity]同步session控制,防止一个用户多次登录

[Spring][scurity]同步session控制。防止一个用户多次登录

假设你希望限制单个用户仅仅能登录到你的程序一次,Spring Security通过加入以下简单的部分支持这个功能。

1、你须要把以下的监听器加入到你的web.xml文件中,让Spring Security获得session生存周期事件:

<listener>

<listener-class>

org.springframework.security.ui.session.HttpSessionEventPublisher

</listener-class>

</listener>

2、控制单个用户仅仅能登录到你的程序一次的两种控制手段

2.1、第二次登录会让第一次登录失效。

然后。在你的application_context增加例如以下部分:

<http>

...

<concurrent-session-control max-sessions="1" />

</http>

2.2、防止第二次登录时报错、第二次登录将被阻止。

<http>

...

<concurrent-session-control max-sessions="1" exception-if-maximum-exceeded="true"/>

</http>

时间: 2024-11-08 19:15:04

[Java][Spring][scurity]同步session控制,防止一个用户多次登录的相关文章

在linux中用useradd命令创建一个用户后不能登录的解决

在linux学习过程中我用useradd 用户名来创建一个用户后,不能登录,通过网上查询看到这种说法: 一.etc/profile 文件的的权限不足,因为我改过该文件的权限,所以我去试了还是没有用 最后是在学习到谋个地方老师说创建一个新用户后再如果没有指定目录则会在home目录下创建一个与用户名相同的目录, 我用上面的useradd 用户名 命令执行后home命令中没有对应的目录,最后是通过 -m选项完成的, 通过useradd -m 用户名 可以在home目录下找到相应的目录,最后在登录,竟然

Spring Security笔记:使用数据库进行用户认证(form login using database) - 菩提树下的杨过 - 博客园

body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;

windows 2008 r2 远程桌面一个用户多登录配置

此配置解决一个用户远程桌面登录后另一个用户被踢下线的问题,配置完成后一个用户可以多人远程桌面登录. 1.打开"远程桌面会话主机配置" 2.检查配置 右击"RDP-Tcp",点击"属性","网络适配器"选择"所有使用此协议配置的网络适配器",最大连接数默认为"2". 3.限制每个用户只能进行一个会话 双击"限制每个用户只能进行一个会话",如图,去掉勾. 4.组策略设置&

Java Spring的IoC和AOP的知识点速记

Spring简介 Spring解决的最核心的问题就是把对象之间的依赖关系转为用配置文件来管理,这个是通过Spring的依赖注入机制实现的. Spring Bean装配 1. IOC的概念以及在Spring容器中如何进行IOC的操作. IOC:Inversion of Control,控制反转.在Java开发中,IOC意味着将你设计好的类交给系统去控制,而不是在你的类内部控制,这称为控制反转,就是被调用类的实例由原先的调用类控制创建.销毁现在转变成由Spring的容器管理. 2. Spring容器

apacheFtpServer集成spring由web容器控制启动和关闭

ApacheFtpServer是一个100%纯Java实现的FTP服务器,基于网络框架apache MINA实现,可支撑多并发用户.FtpServer可以独立运行作为一个Windows服务或Unix/Linux守护进程,或嵌入到Java应用程序,提供对内部集成spring应用程序支持.下面介绍apacheFtpServer与spring集成,交由spring控制ApacheFtpServer的启动与关闭. 1.      初始化创建MyFtpServer: import java.io.File

[Java][activiti]同步或者重构activiti identify用户数据的方法

同步或者重构Activiti Identify用户数据的多种方案比较 相信每个涉及到用户的系统都有一套用户权限管理平台或者模块,用来维护用户以及在系统内的功能.数据权限,我们使用的Activiti工作流引擎配套设计了包括User.Group的Identify模块,怎么和业务数据同步呢,这个问题是每个新人必问的问题之一,下面介绍几种同步方案,最后总结比较. 如果你在考虑直接使用Activiti引擎的Identify模块作为系统的用户数据管理模块,您真是奇才-开个玩笑 方案一:调用IdentifyS

Java 并发 线程同步

Java 并发 线程同步 @author ixenos 同步 1.异步线程本身包含了执行时需要的数据和方法,不需要外部提供的资源和方法,在执行时也不关心与其并发执行的其他线程的状态和行为 2.然而,大多数实际的多线程应用中,两个或两个以上的线程需要共享对同一数据的存取,这将产生同步问题(可见性和同步性的丢失) 比如两个线程同时执行指令account[to] += amount,这不是原子操作,可能被处理如下: a)将account[to]加载到寄存器 b)增加amount c)将结果写回acco

Java线程:同步

一 同步的概念 线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏. 例如:两个线程ThreadA.ThreadB都操作同一个对象Foo对象,并修改Foo对象上的数据. MyRunnable.java 1 package Thread; 2 public class MyRunnable implements Runnable{ 3 private Foo foo=new Foo(); 4 public static void main(String[] args){ 5 MyRu

java锁和同步

Java 语言设计中的一大创新就是:第一个把跨平台线程模型和锁模型应用到语言中去,Java 语言包括了跨线程的关键字synchronized 和 volatile,使用关键字和java类库就能够简单的实现线程间的同步.在简化与平台无关的并发程序开发时,它没有使并发程序的编写工作变得繁琐,反而使它变得更容易了. 在这一章,我们详细介绍锁的技术和概念,java中提供了两种锁,一个是使用关键字的锁,还有一种类库提供的锁. synchronized关键字锁 synchronized关键字能够作为函数的修