java - 使用spring的rest api的速率限制
问题描述
我想为 rest API 实现速率限制功能。翻遍了所有文章,貌似没有spring直接提供的限速api。
但是有 2 个库提供速率限制功能:
1) bucket4j-spring-boot-starter
2) weddini/spring-boot-throttling
现在我有一个非常愚蠢的问题。如何验证这些 API 是否属于 Spring 框架本身并旨在保护 Spring MVC 上的 rest API 或者这些是使用 spring 开发的 3rd 方库。
我们的主要目标是使用 spring 框架及其提供的功能。并避免使用 3rd 方库。
我关注了有关 stackoverflow 的许多问题,并在 Google 上搜索了有关该主题的其他文章。他们中的一些人提到“spring 没有提供开箱即用的功能”。但我想知道 spring 提供了哪些基本功能。我们不是在寻找任何开箱即用的解决方案,任何基本的解决方案也可以。
解决方案
现在我有一个非常愚蠢的问题。如何验证这些 API 是否属于 Spring 框架本身并旨在保护 Spring MVC 上的 rest API 或者这些是使用 spring 开发的 3rd 方库。
您可以轻松检查它们的依赖关系...
<dependency>
<groupId>com.giffing.bucket4j.spring.boot.starter</groupId>
<artifactId>bucket4j-spring-boot-starter-context</artifactId>
<version>0.1.15</version>
</dependency>
虽然所有 spring 依赖项都有这个 groupId
<groupId>org.springframework.boot</groupId>
你甚至可以在这里找到作者
https://github.com/MarcGiffing/bucket4j-spring-boot-starter
但我想知道 spring 提供了哪些基本功能。
这是一个非常广泛的话题,但简单来说:
您可以通过获取令牌或您正在使用的任何其他身份验证的信息来检查谁在请求端点。
您可以将该信息存储在数据库中(是否在内存中)并检查它以验证用户仍然有更多允许的请求
您可以根据这些参数拒绝呼叫
都是spring支持的
推荐阅读
- jq - jq:无法使用字符串“0”索引数组
- angular - Angular 4 是否支持 PWA
- c - 在按位运算期间检测到堆栈粉碎
- excel - 如何减少格式化多个表格的重复次数?
- wordpress - 为什么我的侧边栏模块(带有用于产品过滤的小部件)在 wordpress divi builder 中没有过滤我的商店模块
- python - 在使用 python selenium 单击查看联系人后,我无法获取相同的检查输出
- jsf - 为什么updateActionListener在commandButton的actionListener之前执行?
- amazon-web-services - 通过 AWS 组织账户管理用户
- excel - 将 Gsheet 页面导入 Excel
- c++ - 递归嵌套算法