我让SonarQube运行了很长一段时间,但并没有经常使用它,但总的来说,它似乎还不错。我在Docker内部运行它。
我刚把它更新到LTS (6.7),在那之后,它似乎进入了某种边缘状态。我可以登录并浏览网站,但只要我尝试执行某些操作(似乎与该操作无关),我就会被重定向到登录页面。如果我再次登录,一切都会重复。因此,我似乎无法实际执行任何操作。
起初,我认为这与旧数据与新设置的冲突有关。所以我把所有东西都清理干净了,然后从头开始设置。问题仍然存在,我不能做任何事情,每次都会被重定向到登录页面。
例如,在干净的设置之后,我以admin/admin登录,我得到了"first time tutorial“,在那里我可以创建一个令牌。我试图这样做,但被定向到登录页面。我再次登录,这一次我试图跳过本教程,但随后我被重定向到登录页面。以下是我尝试跳过本教程时使用的access.log的一部分:
10.3.1.119 - - [16/Nov/2017:00:12:48 +0000] "POST /gor-sq/api/users/skip_onboarding_tutorial HTTP/1.0" 401 - "https://build.acme.com/gor-sq/projects" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36" "AV/CJhNZndR3RsZuAAA4"
10.3.1.119 - - [16/Nov/2017:00:12:48 +0000] "GET /gor-sq/api/users/identity_providers HTTP/1.0" 200 24 "https://build.acme.com/gor-sq/sessions/new?return_to=%2Fgor-sq%2Fprojects" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36" "AV/CJhNZndR3RsZuAAA5"
10.3.1.119 - - [16/Nov/2017:00:12:48 +0000] "GET /gor-sq/api/navigation/global HTTP/1.0" 200 573 "https://build.acme.com/gor-sq/sessions/new?return_to=%2Fgor-sq%2Fprojects" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36" "AV/CJhNZndR3RsZuAAA6"第一行表示该帖子得到了401响应。在没有绝对确定的情况下,看起来确实是POST操作在GET工作时获得了401个响应。
此设置确实位于反向代理之后,但正如我之前所说的,该设置之前一直运行良好,并且没有对反向代理设置进行任何更改。
发布于 2018-03-09 05:06:47
我也有同样的问题。https://myserver.com/sonar/api/users/skip_onboarding_tutorial我得到了401,我被重定向到登录页面。我看了一下源代码,发现request.ts在第108行出错。
submit(): Promise<Response> {
const { url, options } = this.getSubmitData({ ...getCSRFToken() });
return window.fetch((window as any).baseUrl + url, options);}看起来像是CSRFToken的问题。因为我让Sonarqube在Nginx反向代理后面运行,所以可能与我处理cookie的方式有关。
所以当我稍微看一下的时候,我在这里找到了解决方案:https://stackoverflow.com/a/47909810/3221249
基本上,在v6.0之后,它们改变了您处理安全cookies的方式。由于我将cookie设置为安全且httponly设置为true(不让客户端浏览器与js代码交互),因此出现了上述问题。甚至在我的非ssl流量达到Nginx之前,我就已经这样做了。我有另一个运行HAProxy的代理服务器,它正在处理这个问题,所以我注释了这部分定义。
#rspirep ^(Set-cookie:.*) \1;\ Secure if ! secure
#rspirep ^(Set-cookie:.*) \1;\ httponly我希望这对你有帮助。
https://stackoverflow.com/questions/47319611
复制相似问题