java - 在 Spring Boot 中限制每 t 请求
问题描述
我正在 Spring Boot 中编写 REST 服务,但遇到了无法解决的问题。谷歌搜索了几个小时,但大多数例子对我来说似乎太复杂了,因为我是 Spring Boot 的新手。
假设用户可以将对象保存到我的数据库中:
@RequestMapping(value = "/person", method = RequestMethod.GET)
public void saveName (@RequestParam String name){
personRepository.save(new Person(name));
}
现在我一直在尝试找到一种方法,使匿名用户每分钟只能进行有限数量的条目。
解决方案
你需要使用 Spring Security 来解决这个问题。您可以通过注释检查用户是否匿名,isAnonymous()
并限制它,您可以使用表来捕获尝试。由于您是 Spring Boot 的新手。最好复习一下 Spring Security,因为它可以让您对其进行细粒度的控制。如果您不想要 spring security,那么,同样的方法适用,使用表来捕获未经身份验证的用户尝试。此外,还有一个默认会话 ID,您可以使用它而不是通过获取 IP 地址的麻烦。
推荐阅读
- vb.net - 为什么 DataGridViewTextBoxCell 在 DataGridView 中显示先前输入的输出
- c# - 从控制器返回 PDF 以查看时出现 ReadTimeOut 异常
- javascript - HTML 下拉列表显示的 Javascript 哈希图值
- lokijs - lokijs 存储在文件系统中而不是内存中
- express - Express - 获取请求 - 如何在我的响应中注入数据?
- php - PHP Slim - 使用带有简单 rest api 的匿名函数
- c# - 使用 AutoDetectChangesEnabled=false 时实体框架更新数据库问题
- python - Python - 如何从 socket.getpeername() 获取 IP?
- java - 如何将文本效果应用于 { } 花括号内的单词
- react-native - NativeModules 中未定义 FingerprintAuth