首页 > 解决方案 > 在 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));
}

现在我一直在尝试找到一种方法,使匿名用户每分钟只能进行有限数量的条目。

标签: javaspring-boot

解决方案


你需要使用 Spring Security 来解决这个问题。您可以通过注释检查用户是否匿名,isAnonymous()并限制它,您可以使用表来捕获尝试。由于您是 Spring Boot 的新手。最好复习一下 Spring Security,因为它可以让您对其进行细粒度的控制。如果您不想要 spring security,那么,同样的方法适用,使用表来捕获未经身​​份验证的用户尝试。此外,还有一个默认会话 ID,您可以使用它而不是通过获取 IP 地址的麻烦。


推荐阅读