【问题标题】:'Wrong CSFR in request' when running sonarqube behind a secure reverse proxy在安全反向代理后面运行 sonarqube 时出现“请求中的错误 CSFR”
【发布时间】:2017-12-20 23:47:46
【问题描述】:

尊敬的 sonarqube 社区,

我们在 apache2 安全 (ssl) 反向代理后面设置了 sonarqube。正常访问工作正常,但特权操作会导致以下错误:

2017.12.19 08:26:02 DEBUG web[AWBtqc1RcFsQ/x1cAAAx][auth.event] 登录失败[原因|错误的CSFR 请求][方法|JWT][提供者|本地|本地] [IP|xxx.xxx.xxx.xxx|yyy.yyy.yyy.yyy][登录名|admin]

sonarqube 在 '/sonar' 运行,apache 配置如下所示:

...
ProxyPreserveHost On
AllowEncodedSlashes NoDecode
...
<Location /sonar>
  RequestHeader set X-Forwarded-Proto "https"
  ProxyPass        http://xxx.domain:9000/sonar
  ##ProxyPassReverse http://xxx.domain:9000/sonar
  ProxyPassReverse [https://]https://<service>.<domain>.<tld>/sonar
</Location>

sonarqube 版本是 6.7 LTS,apache 版本是 2.4.27

提前致谢

【问题讨论】:

    标签: sonarqube


    【解决方案1】:

    由于您使用的是反向代理设置,因此您应该注意 v6.0 中发生的这一变化,我们刚刚在 Upgrade Notes 中阐明了这一点:

    到目前为止,如果您在反向代理后面保护您的 SonarQube 服务器,您必须确保 Cookie 在代理级别被标记为安全。从 v6.3 开始,SonarQube 在通过 HTTPS 交互时自动设置该标志。因此,您应该删除您将在反向代理中放入的任何自定义配置,以将 SonarQube cookie 标记为安全。

    反向代理中的这种剩余配置可能会造成干扰,导致身份验证失败,就像您观察到的那样。

    【讨论】:

    • 感谢您的回答。我的同事对此进行了测试,结果是“安全”标志没有相关性,而是“HttpOnly”标志。显然,XSFR 令牌取决于它没有被设置。他现在禁用了服务器端的“HttpOnly”标志。但是,我们仍然认为这是一个“小”错误,因为通过相同的反向代理调用其他服务(Jenkins、Confluence 等),我们没有问题。
    猜你喜欢
    • 2017-10-20
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 2018-01-13
    相关资源
    最近更新 更多