4

我有一个项目为我的学校设置一个 git 服务器,它带有一个 Web 界面来创建存储库并显示它们。此 Web 部件将由了解用户的 Django 处理。

现在的问题是:我希望通过身份验证来拉取和推送私有存储库,但我不能使用 SSH 来处理该部分(IT 人员不想对此提供支持)。HTTP 协议是只读的,没有“复杂的 WebDAV”(根据官方文档)并使用 .htaccess 作为身份验证。.htaccess 的问题是用 Django 管理它们:我尝试在其中使用 Django 用户的哈希,但它不起作用。最后,Git 协议是可读写的,但缺少身份验证。

加起来:

  • 我想要与 Django 的用户数据库链接的身份验证。(为了避免多个地方有相同的数据)
  • 没有 SSH
  • 避免使用 WebDAV 和 .htaccess

有了这些限制,我发现重写 git 守护进程(github 上的代码)来处理身份验证是一个想法,但我不确定 Git 客户端会如何对此做出反应。

如果你们有其他想法或想告诉我使用 WebDAV/.htaccess/... 会更好,我会很高兴听到它!

4

1 回答 1

3

您可以设置一个 Apache 服务器(即使是像我在我的配置中那样使用 https 的服务器!),但您会要求您的 wsgi 应用程序处理身份验证。

请参阅mod_wsgi中的“访问控制机制” :

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

auth.wsgi 脚本可以根据您的 Django 用户数据库检查凭据。

该解决方案意味着调用git-http-backend智能 http 传输),它比 WebDAV 更高效。

于 2013-03-11T08:45:03.197 回答