如何避免 Spring 引导应用程序中的冗余流量?
How to avoid redundant traffic in Spring Boot application?
我有 Spring-Boot 2.x 应用程序,以及一些上传多部分文件的休息控制器端点,像这样
@PostMapping("/somePath")
public ResponseEntity someController(@RequestParam MultipartFile file) )
我们在安全过滤器链中也有 jwtFilter,它检查 jwt 令牌的有效性;
我们有一种情况 token 无效,但是 tomcat 消耗流量
我该如何检查?:
我使用 spring 引导执行器并发出请求:
获取 http://localhost:8080/actuator/metrics/tomcat.global.received
是否可以在过滤器检查令牌之前中止流量?
有没有办法避免冗余流量?
我尝试将 HttpServletRequest 和 InputStream 作为控制器参数,但结果是一样的。
这是不可能的,唯一的方法 - 出于安全原因使用另一个平衡器应用程序。如果您正在考虑微服务,这也是正确的。
此外,关注点分离是正确的。
如果您想更改安全逻辑,您应该只更改安全应用程序。
有关详细信息,请参阅 spring-cloud, zuul。
考虑到文件上传的成本很高,而且没有更好的解决方案,我同时会:
- 确定需要在上面添加的延长时间
令牌到期
- 让客户端在昂贵的上传之前调用验证令牌并根据需要更新令牌
- 拥有服务器,当令牌过期时允许延长过期令牌仍被视为有效的时间
另一种选择是让客户在昂贵的上传之前更新令牌。客户端可以查看上传的大小来决定是否续订。
我有 Spring-Boot 2.x 应用程序,以及一些上传多部分文件的休息控制器端点,像这样
@PostMapping("/somePath")
public ResponseEntity someController(@RequestParam MultipartFile file) )
我们在安全过滤器链中也有 jwtFilter,它检查 jwt 令牌的有效性;
我们有一种情况 token 无效,但是 tomcat 消耗流量
我该如何检查?:
我使用 spring 引导执行器并发出请求:
获取 http://localhost:8080/actuator/metrics/tomcat.global.received
是否可以在过滤器检查令牌之前中止流量?
有没有办法避免冗余流量?
我尝试将 HttpServletRequest 和 InputStream 作为控制器参数,但结果是一样的。
这是不可能的,唯一的方法 - 出于安全原因使用另一个平衡器应用程序。如果您正在考虑微服务,这也是正确的。 此外,关注点分离是正确的。
如果您想更改安全逻辑,您应该只更改安全应用程序。
有关详细信息,请参阅 spring-cloud, zuul。
考虑到文件上传的成本很高,而且没有更好的解决方案,我同时会:
- 确定需要在上面添加的延长时间 令牌到期
- 让客户端在昂贵的上传之前调用验证令牌并根据需要更新令牌
- 拥有服务器,当令牌过期时允许延长过期令牌仍被视为有效的时间
另一种选择是让客户在昂贵的上传之前更新令牌。客户端可以查看上传的大小来决定是否续订。