2016-07-30 284 views
1

我們正在設置我們的SonarQube服務器(5.6),以便任何人都可以使用聲納掃描儀運行聲納分析並將結果發佈到SonarQube。但是,我們希望限制用戶只對某些項目鍵發佈分析,以防止弄亂現有項目歷史。如何限制每個項目的SonarQube執行分析權限?

我們已經玩了很多權限設置。假設我們有項目關鍵SomeProjectKey和一個組SomeGroup。所有分析都是在SomeGroup會員的用戶下發布的。除了我們嘗試添加和刪除的執行分析以外,SomeGroup被授予了SomeProjectKey的所有權限。結果可以看出,在下面的矩陣:

SonarQube permission settings variants

基於這些結果,似乎准予執行分析(EA)在項目層面沒有任何影響。要求全球EA能夠發佈分析。但是,這樣可以讓擁有全球EA的用戶發佈所有項目的分析結果。我們還沒有找到任何方式來限制每個項目的發佈。項目級別的EA許可似乎完全多餘。

有什麼辦法可以讓用戶發佈只有某些項目的分析?更確切地說,是否有辦法讓用戶發佈分析而不會授予全球EA?

感謝您的任何意見


編輯: 我把SonarQube日誌級別來調試,但仍然毫無頭緒。隨着全球執行分析理所當然,一切工作正常和日誌顯示:

2016.08.19 17:13:42 DEBUG web[http] POST /api/ce/submit?projectKey=zz.yyy:xxx-exp&projectName=xxx&projectBranch=xxx | time=4279ms 

2016.08.19 17:13:43 INFO ce[o.s.s.c.t.CeWorkerCallableImpl] Execute task | project=zz.yyy:xxx-exp&projectName=xxx&projectBranch=xxx | type=REPORT | id=AVajXWLL944EkuNYd4rD | submitter=pavel.sindelar 

2016.08.19 17:13:48 INFO ce[o.s.s.c.t.CeWorkerCallableImpl] Executed task | project=zz.yyy:xxx-exp&projectName=xxx&projectBranch=xxx | type=REPORT | id=AVajXWLL944EkuNYd4rD | submitter=pavel.sindelar | time=4456ms 

隨着授予項目級(所有項目的權限授予)來執行分析,有403 HTTP狀態代碼響應主體:

{"errors":[{"msg":"Insufficient privileges"}]} 

的SonarQube日誌包含上出了什麼問題沒有資料,也就是與POST請求行接收,沒有什麼更關係到anaylysis出版,沒有錯誤,什麼都沒有,甚至在跟蹤級別:

2016.08.22 10:15:57 DEBUG web[http] POST /api/ce/submit?projectKey=project=zz.yyy:xxx-exp&projectName=xxx&projectBranch=xxx | time=564ms 

我們將嘗試更新至6.0。

回答

1

您可能會錯過某些內容並混合了一些權限,因爲您想要實現的是SonarQube 5.4中完成的操作,它與SONAR-7174完成。

以下方案的工作原理:

  1. 創建項目
  2. 您授予所有權限(包括「執行分析」)這個項目對用戶的Foo
  3. 您運行的登錄分析/密碼(或更好:與令牌)用戶的Foo
  4. 該分析是成功推和處理
+0

對不起,respons晚e,我一直在度假。你描述的場景在我們的案例中不起作用。我將信息添加到原始問題。 –