2012-02-07 69 views
0

我有在此配置svnserver svnserve.conf的強制Jenkins和TortoiseSvn在調用「svn show log」時使用認證?

anon-access = none 
auth-access = write 
authz-db = ../../authz 

裏面的AuthZ的文件,我有一些用戶,這應該只有到這樣的子路徑訪問:

[groups] 
INTERNAL=me 
EXTERNAL=johndoe 

[/] 
@INTERNAL = rw 
@EXTERNAL = 

[/ProjectX/trunk] 
@EXTERNAL = rw 

這應該防止外部用戶讀取所有來源。

但是,這個解決方案有一個大問題:一些svn客戶端工具不能在所有源中使用「svn show log」。他們試圖在沒有身份驗證的情況下進行閱讀,並且失敗

有沒有辦法,我如何強制以下工具使用身份驗證時訪問svn日誌?

  • TortoiseSVN的
  • 詹金斯(顛覆插件)

回答

0

如果用戶在一個特定的URL的Subversion沒有讀訪問,他們將無法在該網址上運行svn log。用戶johndoe根本無法運行svn log svn://repos.mycomp.com/ProjectY/branches,但將能夠運行svn log svn://repos.mycomp.com/ProjectX/trunk

這是你在問什麼?


響應rechifl

需要明確的是:我的問題是,通過對地表內部使用的工具不能夠訪問所有路徑的記錄。例如Jenkins在提交後無法運行作業,因爲它無法讀取修訂細節。唯一的辦法是啓用匿名閱讀權限。但這不是我的解決方案。

大多數網站都設置了一個特殊的Jenkins帳戶,允許Jenkins至少從存儲庫中讀取。 (只讀訪問將允許構建被觸發,但是您將無法通過Jenkins創建標籤)。你能至少這樣做嗎?

當您在Jenkins中創建作業時,應該抱怨它無法訪問存儲庫中的URL。然後,給你一個鏈接進入認證。點擊鏈接,將彈出一個新的瀏覽器窗口。在該屏幕中輸入憑據。

這對您的安全問題應該沒問題。您沒有匿名讀取權限,Jenkins將是唯一使用該(只讀)帳戶的人。如果您不希望沒有對存儲庫特定部分的讀取權限的用戶查看構建和更改,您甚至可以限制對特定Jenkins作業的訪問。

不確定TortoiseSVN適合您的這張照片,但這可以讓您使用Jenkins。

+0

您的回覆假定經過身份驗證的用戶根本沒有權限。 OP正在詢問如何使Tortoise/Jenkins *執行身份驗證,以便他們不以匿名用戶身份運行。 – KOGI 2012-02-07 20:52:57

+0

要清楚:我的問題是由被分配的INTERNAL使用的工具無法訪問所有路徑的日誌。 E.g Jenkins在提交後無法運行作業,因爲它無法讀取修訂詳細信息。唯一的辦法是啓用匿名閱讀權限。但這不是我的解決方案。 – reschifl 2012-02-08 08:17:06

+0

@KOGI - 如果你想瀏覽TortoiseSVN的結賬歷史(或看看有沒有變化),你需要輸入你的賬戶和密碼。如果您試圖確定Jenkins中的更改,則在設置作業時向Jenkins提供URL,然後爲其提供帳戶和密碼。問題在於OP希望允許用戶能夠看到更改,而無需實際授予用戶訪問存儲庫的該部分的權限。 – 2012-02-08 15:13:15