Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何避免Spring Boot应用程序中的冗余通信?_Spring_Spring Boot_Tomcat_Spring Security_Multipart - Fatal编程技术网

如何避免Spring Boot应用程序中的冗余通信?

如何避免Spring Boot应用程序中的冗余通信?,spring,spring-boot,tomcat,spring-security,multipart,Spring,Spring Boot,Tomcat,Spring Security,Multipart,我有SpringBoot2.x应用程序,还有一些rest控制器端点,可以上传多部分文件,如下所示 @PostMapping("/somePath") public ResponseEntity someController(@RequestParam MultipartFile file) ) 此外,我们在安全过滤器链中有jwtFilter,用于检查jwt令牌的有效性 当令牌无效时,tomcat会消耗流量 如何检查此项?: 我使用弹簧启动执行器并发出请求: 得到 是否可能中止通

我有SpringBoot2.x应用程序,还有一些rest控制器端点,可以上传多部分文件,如下所示

    @PostMapping("/somePath")
    public ResponseEntity someController(@RequestParam MultipartFile file) )
此外,我们在安全过滤器链中有jwtFilter,用于检查jwt令牌的有效性
令牌无效时,tomcat会消耗流量

如何检查此项?
我使用弹簧启动执行器并发出请求:
得到

是否可能中止通信,直到筛选检查令牌?
有没有办法避免冗余流量


我尝试将HttpServletRequest和InputStream作为控制器参数,但结果是一样的。

这是不可能的,唯一的方法是出于安全原因使用另一个平衡器应用程序。如果你正在考虑微服务,这也是正确的。 此外,分离关注点也是正确的

如果要更改安全逻辑,应仅更改安全应用程序


有关更多详细信息,请参阅。

这是不可能的,唯一的方法-出于安全原因,请使用另一个平衡器应用程序。如果你正在考虑微服务,这也是正确的。 此外,分离关注点也是正确的

如果要更改安全逻辑,应仅更改安全应用程序


有关更多详细信息,请参阅。

鉴于文件上载的成本非常高,而且没有更好的解决方案,在此期间,我将:

  • 确定需要在列表顶部添加的时间延长 代币到期
  • 在昂贵的上传之前,让客户端调用验证令牌,并根据需要续订令牌
  • 拥有服务器,当令牌过期时,允许延长过期令牌仍被视为有效的时间

另一种选择是客户端在昂贵的上传之前续订令牌。客户可以查看上传的大小来决定是否续费。

考虑到文件上传的成本有多高,而且没有更好的解决方案,在此期间,我会:

  • 确定需要在列表顶部添加的时间延长 代币到期
  • 在昂贵的上传之前,让客户端调用验证令牌,并根据需要续订令牌
  • 拥有服务器,当令牌过期时,允许延长过期令牌仍被视为有效的时间

另一种选择是客户端在昂贵的上传之前续订令牌。客户可以查看上传的大小来决定是否续订。

我不知道我是否真的了解您的问题所在。那么,您希望tomcat在令牌无效时不获取请求?作为Web服务器的Tomcat当然首先接受请求,并将其交给spring应用程序进行进一步处理。在这一点上,整个消息被传递到Spring,Spring进行必要的身份验证过滤器检查,以确定该请求是否应该传递给控制器。我希望tomcat在请求通过身份验证之前不会获得整个多部分文件。这对于使用3G/4G互联网的移动客户端来说非常关键连接。但是如果文件大小像2Gb或更大,它也会增加应用程序的一些额外负载。然后先在没有文件的情况下进行一次调用以检查身份验证状态,然后再进行第二次调用以检查负载。我不知道我是否真的理解了您的问题所在。那么,您希望tomcat在令牌无效时不获取请求?作为Web服务器的Tomcat当然首先接受请求,并将其交给spring应用程序进行进一步处理。在这一点上,整个消息被传递到Spring,Spring进行必要的身份验证过滤器检查,以确定该请求是否应该传递给控制器。我希望tomcat在请求通过身份验证之前不会获得整个多部分文件。这对于使用3G/4G互联网的移动客户端来说非常关键连接。但是如果文件大小像2Gb或更大,它也会为应用程序增加一些额外的负载。然后先在没有文件的情况下执行一个调用以检查身份验证状态,然后再执行第二个带有负载的调用。