首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插件使用gitolite的ACL用于CGIT/Apache httpd?

插件使用gitolite的ACL用于CGIT/Apache httpd?
EN

Stack Overflow用户
提问于 2015-06-25 01:08:47
回答 1查看 201关注 0票数 2

我们使用gitolite的ACL机制来控制谁有权访问不同的存储库。我们还将CGIT与Apache httpd结合使用,以允许浏览可读存储库。

我们还希望在Apache httpd访问控制系统中使用gitolite ACL。

是否有Apache httpd authn/authz模块提供此功能?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-06-25 14:58:29

不久前,我已经用这个cgi Perl脚本集成了CGit和gitolite,它的名称是gitolite:cgit/cgit.pl.tpl

(不要介意@H@,它们是模板占位符,应该在以后进行赋值,以便生成实际的Perl脚本)

这个想法是为了从Apache完成的身份验证中受益:

代码语言:javascript
复制
my $remote_user=$ENV{"REMOTE_USER"};

并在调用Gitolite以检查是否可以授予对存储库的访问权限时使用该用户,如果授予访问权限,则调用实际的cgit.cgi C过程:

代码语言:javascript
复制
use Gitolite::Rc;
use Gitolite::Common;
use Gitolite::Conf::Load;

(my $repo)=($path_info =~ /\/([^\/]+)/);
  my $perm = "R";
  if ($repo ne "") {
  my $aperm = access( $repo, $user, 'R', 'any' );
  # my ($aperm, $creator) = &repo_rights($repo);
    $perm=$aperm;
  }
  if ($perm !~ /DENIED/) {
    system("@H@/cgit/cgit.cgi");
  }
  else {
    print "Content-type: text/html\n\n";
    print "<html>\n";
    print "<body>\n";
    print " <h1>HTTP Status 403 - Access is denied</h1>\n";
    print " You don't have access to repo <b>$repo</b> as <b>$user</b>\n";
    print "</body>\n";
    print "</html>\n";
  }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31032816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档