2017-11-16 20 views
1

SonarQube는 훌륭하게 실행되었지만 많이 사용하지는 않았지만 일반적으로 작동하는 것처럼 보입니다. 나는 Docker에서 실행하고있다.Docker에서 sonarqube를 계속 실행하면 다시 로그인 페이지로 리디렉션됩니다.

방금 ​​LTS (6.7)로 업데이트 한 후 일부 림보 (limbo) 상태에있는 것으로 보입니다. 로그인하여 웹 사이트를 탐색 할 수 있지만 일부 작업 (해당 작업이 중요하지 않은 것 같습니다)을 수행하자마자 로그인 페이지로 리디렉션됩니다. 다시 로그인하면 모든 것이 반복됩니다. 그래서 실제로 어떤 행동을 취할 수는 없습니다.

처음에는 새로운 설정과 충돌하는 오래된 데이터와 관련이 있다고 생각했습니다. 그래서 나는 모든 것을 깨끗이 닦아서 처음부터 다시 시작했습니다. 문제는 남아 있으며, 아무 것도 할 수 없으며 매번 로그인 페이지로 리디렉션됩니다.

예를 들어, 새로 설치 한 후에 admin/admin으로 로그인하면 토큰을 만들 수있는 "처음 튜토리얼"이 표시됩니다. 나는 그 일을 시도했지만 로그인 페이지로 이동했습니다. 다시 로그인하고 이번에는 튜토리얼을 건너 뛰지 만 로그인 페이지로 리디렉션됩니다. 아래는 자습서를 건너 뛸 때 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.nextcode.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.nextcode.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.nextcode.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" 

첫 번째 줄은 POST에 401 응답이 있음을 나타냅니다. 절대적으로 확실하지는 않지만 GET이 작동하는 동안 POST 응답이 401 응답을받는 것처럼 보입니다.

이 설정은 리버스 프록시 뒤에 있습니다.하지만 이전에 말했던 것처럼 설정이 제대로 작동하고 리버스 프록시 설정이 변경되지 않았습니다.

+0

SonarQube 구성 파일을 확인 했습니까? –

+0

@JeroenHeier 내가 말했던 것처럼 두 번째로 완전히 새로 설치하여 설정 파일이 SonarQube와 함께 제공되는 것입니다. 그러나 나는 완전히 독립 실행 형 sonarqube를 실행하려고 시도했다. (랩톱에서'docker run sonarqube'를 실행했는데 그게 다가와서 정상적으로 작동한다.) 그래서 이것은 내 특정 설정과 관련이있다. – StFS

답변

0

같은 문제가있었습니다. https://myserver.com/sonar/api/users/skip_onboarding_tutorial 401이 있는데 로그인 페이지로 리디렉션되었습니다. 나는 소스 코드를 보면서 request.ts는

submit(): Promise<Response> { 
const { url, options } = this.getSubmitData({ ...getCSRFToken() }); 
return window.fetch((window as any).baseUrl + url, options);} 

(108)는 CSRFToken에 문제처럼 보였다 라인 밖으로 erroring했다. 내가 Sonarqube를 Nginx 역방향 프록시로 운영하고 있기 때문에 쿠키를 처리하는 방식과 관련이있을 수 있습니다. 나는 조금을 보았을 때

그래서, 여기에 해결책을 발견 : https://stackoverflow.com/a/47909810/3221249

기본적으로, 그들은 당신이 6.0 이후 보안 쿠키를 처리하는 방식을 변경했습니다. 쿠키를 안전하게 만들고 httponly를 true로 설정하면 (클라이언트 브라우저가 js 코드와 상호 작용하지 못하게 함) 위의 문제가 발생했습니다. 내 비 SSL 트래픽이 Nginx를 치기 전에도이 작업을 수행하고있었습니다. 나는 HAProxy를 실행하고있는 또 다른 프록시 서버를 가지고 있는데, 나는 정의의 일부분을 주석 처리했다.

#rspirep ^(Set-cookie:.*) \1;\ Secure if ! secure 
#rspirep ^(Set-cookie:.*) \1;\ httponly 

이 정보가 도움이되기를 바랍니다.