2013-03-11 62 views
4

我有一個項目,爲我的學校設置一個git服務器,使用Web界面創建存儲庫並顯示它們。這個Web部件將由知道用戶的Django處理。使用身份驗證但沒有ssh的Git

現在的問題:我要認證,以拉動和推動私人倉庫,但我不能使用SSH來處理部分(IT人不願做的支持)。 HTTP協議是隻讀的,沒有「complexe WebDAV」(according to the official doc),並使用.htaccess作爲身份驗證。 .htaccess的問題是用Django管理它們:我試圖在其中使用Django用戶的散列,但它不起作用。最後,Git協議是可讀寫的,但缺乏認證。

總結:

  • 我想驗證Django的用戶數據庫鏈接。 (爲了避免與相同數據的多個地方)
  • 沒有SSH
  • 避免WebDAV和的.htaccess

有了這些限制,我發現,改寫了git的守護進程(code on github)來處理身份驗證將是一個想法,但我不確定Git客戶端如何對此做出反應。

如果你們有其他想法或者想告訴我,這將是如何更好地使用WebDAV /的.htaccess/...,我會很高興聽到它!

回答

3

你可以建立一個Apache服務器(即使是一個以https就像我在做my config!),但你會問你的WSGI應用程序來處理身份驗證。

請參閱 「Access Control Mechanisms」,在mod_wsgi

AuthType Basic 
AuthName "Top Secret" 
AuthBasicProvider wsgi 
WSGIAuthUserScript /usr/local/wsgi/scripts/auth.wsgi 
Require valid-user 

的auth.wsgi腳本可以覈對你的Django用戶數據庫的憑據。

這解決方案意味着調用git-http-backendsmart http transport),這比WebDAV的礦石高效。

+0

謝謝!似乎正是我想要的,我們試着去實現它。 :) – Cranium 2013-03-11 09:03:37