gpt4 book ai didi

java - Spring Boot CSRF 在负载均衡器处理时失败

转载 作者:行者123 更新时间:2023-11-30 02:16:55 26 4
gpt4 key购买 nike

我已经使用基于 header 的 token 方法在 Spring Boot 中实现了 CSRF 过滤器。当我在单个服务器上运行时,我的应用程序运行良好,当我引入另一台服务器或由负载均衡器处理的请求(取决于负载均衡器如何处理请求)时,它无法验证另一台服务器给出的 token 。

这里有人可以告诉我,我们如何基于特定 key 为 CSRF 创建 token ,该 key 对于所有服务器都相同,并且每个服务器都将访问相同的 key 来识别用户,或者以其他方式在不同的服务器中共享 CSRF token 服务器。

最佳答案

有两种方法可以解决此问题:

  1. 配置您的负载均衡器以使用/处理粘性 session 。例如,如果您使用 Nginx 作为负载均衡器,您可以浏览以下链接:

  2. 如果您不想使用粘性 session ,则可以使用 Spring Session,因为默认情况下 CSRF token 存储在 HTTP session 中。

    因此您需要复制 HTTP session 。您可以使用 Spring Session 来完成此操作。

    请参阅以下链接:


    您需要安装 Redis 服务器。如果尚未安装,您可以按照以下步骤操作:

    Redis

    Download并安装Redis。例如,如果您使用 OS X,则可以使用 Brew,例如

     $ brew install redis  

(如果您使用 Linux,则可以使用 yumapt-get。或者,请阅读快速入门指南。)

 Start Redis by calling the redis-server command, e.g. if you use Brew on OS X:

$ redis-server /usr/local/etc/redis.conf

[...]

Port: 6379

[...]

Server started, Redis version 3.0.1

[...]

关于java - Spring Boot CSRF 在负载均衡器处理时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48059870/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com