- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我可以知道可以使用 spring security 来限制能够同时登录网站的最大用户数吗?
绝对不是并发 session 控制参数。我想要的是例如,我想限制最多只允许 1000 个用户同时登录。如果超过该数量,请转发到说明超出最大用户数的通知页面
最佳答案
可以使用Spring Security的并发 session 控制,通过访问SessionRegistry来了解当前有多少用户登录。在Spring Security 3中,ConcurrentSessionControlStrategy负责控制用户登录后是否允许创建 session 。您可以扩展此类并根据用户数量添加额外的检查:
public class MySessionAuthenticationStrategy extends ConcurrentSessionControlStrategy {
int MAX_USERS = 1000; // Whatever
SessionRegistry sr;
public MySessionAuthenticationStrategy(SessionRegistry sr) {
super(sr);
this.sr = sr;
}
@Override
public void onAuthentication(Authentication authentication, HttpServletRequest request, HttpServletResponse response) {
if (sr.getAllPrincipals().size() > MAX_USERS) {
throw new SessionAuthenticationException("Maximum number of users exceeded");
}
super.onAuthentication(authentication, request, response);
}
}
然后您将按照 the Spring Security reference manual 中的描述将其注入(inject)安全命名空间.
在 Spring Security 2.0 中,并发 session 控制的实现略有不同,您可以自定义 ConcurrentSessionController。
关于java - Spring 限制最大 session 数;限制最大用户数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2106601/
This question already has answers here: Using Variable for Thread group Ramp up time (3个答案) 3年前关闭。 从
我希望使用 RPyC 为硬件板提供 API 作为服务。该板一次只能满足一个用户的需求。有什么方法可以让 RPyC 强制执行一次只有一个用户可以访问吗? 最佳答案 我不确定这是否有效(或有效),但您可以
如果我想以每秒 10 个请求运行测试。如何让 Jmeter 选择每秒处理该请求数所需的最佳线程数。 我将线程数设置为与每秒请求数相同。 最佳答案 您可以使用恒定吞吐量计时器 click here你只需
我正在尝试进行查询以检查客户表并返回过去 30 天、过去 365 天和所有时间具有特定值的用户数。 所有时间的计数很简单: $stmt = $conn->prepare("SELECT count(i
我是一名优秀的程序员,十分优秀!