代码地址:https://code.csdn.net/x3dcn/svnauth

以禅道项目管理系统的数据库结构为标准,实现了可用的svn authz验证功能。

以用户名、密码、项目的acl开发程度open、private、custom三种关系进行相应的匹配,实现动态的验证。

由于不懂perl,所以只是简单的修改,完成了相应功能。

做完后,灵机一动,既然有mod_perl,是否mod_python也可以,一查modpython的官网api,果然有相关接口,也就是说理论上可以用python来实现同样的逻辑。但实现原理与mod_perl有点不同,mod_perl是支持直接编写apache模块,相关配置也是被放到apache的conf文件中,但mod_python或者其他不是以mod方式执行的语言则需以代理层的方式实现类似功能,以前也看过有人用go写过一个代理。

开发时,是以xampp 1.7.2版本为基础进行测试,集成了perl的5.10版本

  1. 加载perl模块
LoadFile "D:/PHP/xampp/perl/bin/perl510.dll"
LoadModule perl_module modules/mod_perl.so
  1. 配置svn
PerlLoadModule Apache::Authn::ZentaoPMS
<Location /svn/>
#ErrorDocument 404 default
DAV svn
SVNParentPath "D:\PHP\xampp\SvnRepo\svn"
SVNListParentPath on Require valid-user
AuthName "ZentaoPMS"
AuthType Basic #SVNPathAuthz off PerlAccessHandler Apache::Authn::ZentaoPMS::access_handler
PerlAuthenHandler Apache::Authn::ZentaoPMS::authen_handler
## for mysql
RedmineDSN "DBI:mysql:database=usvn;host=127.0.0.1"
RedmineDbUser "root"
RedmineDbPass "" </Location>

用Perl编写Apache模块续二 - SVN动态鉴权实现SVNAuth 禅道版的更多相关文章

  1. 用Perl编写Apache模块续 - SVNAuth

    目标:以整合各类项目管理系统中的用户体系及权限体系为目标,实现SVN的集成式动态鉴权 支持平台:usvn.禅道等 - 开发中,本文仅对前期的探索工作做点整理 开发环境: Windows.XAMPP 1 ...

  2. 用Perl编写Apache模块

    前言 Apache被许多大流量网站所嫌弃,但很多企业级的场景则更为适用. Apache httpd 从 2.0 之后,已经不仅仅局限于一个 http 的服务器,更是一个完善而强大.灵活而健壮且容易扩展 ...

  3. Apache Commons Beanutils 二 (动态Bean - DynaBeans)

    相关背景 上一篇介绍了PropertyUtils的用法,PropertyUtils主要是在不修改bean结构的前提下,动态访问bean的属性: 但是有时候,我们会经常希望能够在不定义一个Java类的前 ...

  4. Apache模块开发指南-APR池

    转:原文: http://blog.csdn.net/zmxiangde_88/article/details/8038150 ------------------------------------ ...

  5. 7.PHP内核探索:Apache模块介绍

    Apache概述 Apache是目前世界上使用最为广泛的一种Web Server,它以跨平台.高效和稳定而闻名.按照去年官方统计的数据,Apache服务器的装机量占该市场60%以上的份额.尤其是在 X ...

  6. Apache模块 mod_proxy 转自http://www.php100.com/manual/apache2/mod/mod_proxy.html

    Apache模块 mod_proxy 说明 提供HTTP/1.1的代理/网关功能支持 状态 扩展(E) 模块名 proxy_module 源文件 mod_proxy.c 概述 警告 在您没有对服务器采 ...

  7. php在apache中一共有三种工作方式:CGI模式、FastCGI模式、Apache 模块DLL

    php在apache中一共有三种工作方式:CGI模式.FastCGI .FastCGI是什么? FastCGI是语言无关的.可伸缩架构的CGI开放扩展,其主要行 为是将CGI解释器进程保持在内存中并因 ...

  8. Apache模块 mod_proxy

    转: Apache模块 mod_proxy 转自http://www.php100.com/manual/apache2/mod/mod_proxy.html Apache模块 mod_proxy 说 ...

  9. Apache模块开发

    一.简介 Apache HTTP服务器是一个模块化的软件,使管理者可以选择核心中包含的模块以裁剪功能.可以在编译时选择被静态包含进httpd二进制映象的模块,也可以编译成独立于主httpd二进制映象的 ...

随机推荐

  1. oracle 中触发器增加存储过程commit问题

    触发器无需commit也不能写commit触发器和触发它的DML是同一个事务DML提交了,触发器的操作也提交了,要不就一起回滚了 当然,如果你一定要在触发器里写COMMIT那就用自治事务相当于一个事务 ...

  2. hive报lzo Premature EOF from inputStream错误

    今天dw组同事发邮件说有一个问题让帮解决一下.他们自己没能搞得定.下面问题解决过程: 1.hql insert overwrite table mds_prod_silent_atten_user p ...

  3. winform c#绑定combobox下拉框 年度代码。

    winform c#绑定combobox下拉框 年度代码. comboBox1.Items.AddRange("});//邦定数据 comboBox1.Text = DateTime.Now ...

  4. 通过PowerShell发送TCP请求

    很多时候我们需要通过Socket发送特定的TCP请求给服务器的特定端口来实现探测服务器的指定端口所开启的服务.很多语言都有相应的方法实现上述需求,当然,PowerShell也不例外,比如我们要发送一个 ...

  5. typeof instanceof 之间的区别总结

        typeof   它返回值是一个字符串,该字符串说明运算数的类型. a=1; b=true; c="c"; d=function(){ console.log(" ...

  6. 谈"自驱力"

    最新说明: 1.标题是为了博眼球取的,请不大家不要纠结具体薪资数字,我瞎取的 2.请注意素质,不要满口喷粪,不要搞人身攻击,尊重别人,就是尊重你自己 3.请大家就事论事,不要胡乱臆想,请站在全局的角度 ...

  7. 记录一个__lll_lock_wait_private错误

    一个DBA同事昨天在执行一个命令行工具的时候发现程序hang住,问题挺有意思,值得记录下. 首先用pstack看了下程序的调用栈,这是个多线程程序,pstack结果看到几乎所有的线程都等在write调 ...

  8. CSS - Tooltip-arrow 绘制三角形

    问题:纯CSS实现bubble的三角形部分 方法:使用border来绘制三角形:例如 .trangle { ; border-color: transparent; border-style: sol ...

  9. js日期时间比较函数

    转自:http://www.cnblogs.com/zxjyuan/archive/2010/09/07/1820708.html js日期比较(yyyy-mm-dd) function duibi( ...

  10. Backbone之旅——Model篇

    Backbone作为前端的MVC框架,把后端的设计思想带到前端,使前端代码更加清晰.可维护性大大提高 Backbone依赖于underscore.js和jquery,所以在使用backbone的时候一 ...