SpringSecurity的session管理

SpringSecurity的session管理,第1张

Spring Security可以与Spring Session库配合使用,只需要做一些简单的配置就可以实现一些功能,如(会话过期、一个账号只能同时在线一个、集群session等)。

1)配置session会话超时时间,默认为30分钟,但是Spring Boot中的会话超时时间至少为60秒。

当session超时后, 默认跳转到登录页面。
2)自定义设置session超时后地址
设置session管理和失效后跳转地址

并发控制即同一个账号同时在线个数,同一个账号同时在线个数如果设置为1表示,该账号在同一时间内只能有一个有效的登录,如果同一个账号又在其它地方登录,那么就将上次登录的会话过期,即后面的登录会踢掉前面的登录。
1)修改超时时间

2)设置最大会话数量

3)阻止用户第二次登录
sessionManagement也可以配置 maxSessionsPreventsLogin:boolean值,当达到
maximumSessions设置的最大会话个数时阻止登录。

实际场景中一个服务会至少有两台服务器在提供服务,在服务器前面会有一个nginx做负载均衡,用户访问nginx,nginx再决定去访问哪一台服务器。当一台服务宕机了之后,另一台服务器也可以继续提供服务,保证服务不中断。如果我们将session保存在Web容器(比如tomcat)中,如果一个用户第一次访问被分配到服务器1上面需要登录,当某些访问突然被分配到服务器二上,因为服务器二上没有用户在服务器一上登录的会话session信息,服务器二还会再次让用户登录,用户已经登录了还让登录就感觉不正常了。

解决这个问题的思路是用户登录的会话信息不能再保存到Web服务器中,而是保存到一个单独的库(redis、mongodb、jdbc等)中,所有服务器都访问同一个库,都从同一个库来获取用户的session信息,如用户在服务器一上登录,将会话信息保存到库中,用户的下次请求被分配到服务器二,服务器二从库中检查session是否已经存在,如果存在就不用再登录了,可以直接访问服务了。

2)设置session存储类型

3)测试
使用其中一个服务去登录 >就是使用人数限制超出了
网站要向公众提供媒体在线播放功能,其实对自身的性能要求很高的,它不像广播或者电视,统一发信号就可以,它要为每个观看的用户单独开辟一个专用进程用以传输数据,因此不管是对于服务器的性能,还是传输网络的性能,都有很高的要求;
如果没有人数限制,那么很显然,每个人能分到的传输数据量肯定就少了,那么就会不足以让用户在线播放了,因此,为了保证能够让能够开始播放的用户正常使用,不得不限制用户数。

Windwos服务器远程桌面限制用户使用同一个会话的3种设置方法
最近远程主机重装系统后,使用远程桌面出现一个问题:同一个用户先后登录远程系统,系统分配了不同会话。当系统分配不同会话时,导致你在一个远程桌面的 *** 作都不见了。像是你运行的一些程序,虽然他们没有被系统关闭,但是你无法对他们进行管理。这就给你的管理带来极大的不便,文章将说明如何解决这个问题。这里以Windows Server 2008为例,其他系统只作参考。
如果将远程桌面会话主机服务器配置为限制用户只能进行一个会话,并且用户将该会话置于断开状态,用户下次连接到远程桌面会话主机服务器时,将自动重新连接到该会话。
目前有三种方式可以解决以上问题:使用远程桌面会话主机配置,或者组策略配置,或者修改注册表。
一、使用远程桌面会话主机配置
你的账号必须是远程主机“管理员”组成员身份,否则是没有系统权限的。
以下是远程桌面限制用户使用同一个会话的设置步骤:
1、打开“远程桌面会话主机配置”菜单:
要打开“远程桌面会话主机配置”,请单击“开始”,依次指向“管理工具”和“远程桌面服务”,然后单击“远程桌面会话主机配置”。
2、设置“限制每个用户只能进行一个会话”选项:
在“编辑设置”区域的“常规”下,双击“限制每个用户只能进行一个会话”。
在“属性”对话框的“常规”选项卡上,选中“限制每个用户只能进行一个会话”复选框,然后单击“确定”。
二、使用组策略配置
可以通过启用“限制远程桌面服务用户只能进行一个远程会话”组策略设置,限制用户在 远程桌面 会话主机服务器上只能进行一个会话。此组策略设置位于“计算机配置\策略\管理模板\Windows 组件\远程桌面服务\远程桌面会话主机\连接”中,可以使用本地组策略编辑器或组策略管理控制台 (GPMC) 进行配置。注意了,此组策略设置将优先于远程桌面会话主机配置中配置的设置。
三、修改注册表
其实和第一种本质是一样的。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
"fSingleSessionPerUser"=dword:00000001
四、结束语
限制用户只能进行一个会话,还可以提高远程主机服务器的性能。通过限制用户在远程桌面会话主机服务器上只能进行一个会话,可以最大程度地减少创建的远程会话数。这样有助于节省远程桌面会话主机服务器上的系统资源,从而允许更多的用户连接到远程桌面会话主机服务器。
题外话,如果想实现一个账号多人登录多会话模式,防止被其他人踢出,根据上面的内容反 *** 作即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10271044.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-07
下一篇 2023-05-07

发表评论

登录后才能评论

评论列表(0条)

保存