Sonarqube ';请求中的CSFR错误';运行时,您必须在安全的反向代理后面

Sonarqube ';请求中的CSFR错误';运行时,您必须在安全的反向代理后面,sonarqube,Sonarqube,亲爱的库贝社区: 我们已经在apache2安全(ssl)反向代理后面设置了sonarqube。正常访问工作正常,但特权操作会导致以下错误: 2017.12.19 08:26:02调试web[AWBtqc1RcFsQ/x1cAAAx][auth.event]登录失败[原因|中的CSFR错误 请求][方法| JWT][提供者|本地|本地] [IP | xxx.xxx.xxx.xxx | yyy.yyy.yyy][login | admin] sonarqube在“/sonar”上运行,apache配

亲爱的库贝社区:

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

2017.12.19 08:26:02调试web[AWBtqc1RcFsQ/x1cAAAx][auth.event]登录失败[原因|中的CSFR错误 请求][方法| JWT][提供者|本地|本地] [IP | xxx.xxx.xxx.xxx | yyy.yyy.yyy][login | 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>
。。。
代理主机
AllowEncodeDSL节点代码
...
RequestHeader集合X-Forwarded-Proto“https”
ProxyPasshttp://xxx.domain:9000/sonar
##ProxyPassReversehttp://xxx.domain:9000/sonar
ProxyPassReverse[https://]https://../sonar
sonarqube版本为6.7 LTS,apache版本为2.4.27


提前感谢

因为您使用的是反向代理设置,所以您应该注意v6.0中发生的这一更改,我们刚刚在以下文档中对此进行了说明:

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


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

由于您使用的是反向代理设置,您应该注意v6.0中发生的此更改,我们刚刚在:

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


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

谢谢您的回答。我的同事对此进行了测试,结果是“secure”标志没有相关性,而是“HttpOnly”标志。显然,XSFR令牌依赖于它没有被设置。他现在已经在服务器端禁用了“HttpOnly”标志。然而,我们仍然认为这是一个“小”bug,因为对于通过同一反向代理调用的其他服务(Jenkins、Confluence等),我们没有问题。谢谢您的回答。我的同事对此进行了测试,结果是“secure”标志没有相关性,而是“HttpOnly”标志。显然,XSFR令牌依赖于它没有被设置。他现在已经在服务器端禁用了“HttpOnly”标志。然而,我们仍然认为这是一个“小”bug,因为对于通过同一反向代理调用的其他服务(Jenkins、Confluence等),我们没有问题。