代码地址: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. WinForm数据源分页技术

    1.编写分页存储过程 USE [Contacts]GO create procedure [dbo].[GetPageData] (@startIndex int,@endIndex int)asbe ...

  2. 游戏服务器ID生成器组件

    游戏服务器程序中,经常需要生成全局的唯一ID号,这个功能很常用,本文将介绍一种通用ID生成组件.游戏服务器程序中使用此组件的场景有: 创建角色时,为其分配唯一ID 创建物品时,每个物品需要唯一ID 创 ...

  3. Cubieboard2裸机开发之(五)看门狗操作

    前言 说到看门狗,应该不会陌生,看门狗说白了就是一个定时器,但是它有一个非常重要的功能就是复位系统.在A20里,看门狗的操作非常简单,只有两个寄存器,不需要操作时钟相关的东西,系统起来后可以直接使用, ...

  4. [转]GeoHash核心原理解析

    原文出处: zhanlijun    引子 机机是个好动又好学的孩子,平日里就喜欢拿着手机地图点点按按来查询一些好玩的东西.某一天机机到北海公园游玩,肚肚饿了,于是乎打开手机地图,搜索北海公园附近的餐 ...

  5. 【MVC 过滤器的应用】ASP.NET MVC 如何统计 Action 方法的执行时间

    代码如下: using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; u ...

  6. JS算法总结

    1.选择排序: var arr = [3,6,7,2,6,4,1,6,8,24,12,53]; function sort(arr){ // 当数组的长度小于1的时候结束递归 if(arr.lengt ...

  7. [OpenCV] Feature Matching

    得到了杂乱无章的特征点后,要筛选出好的特征点,也就是good matches. BruteForceMatcher FlannBasedMatcher 两者的区别:http://yangshen998 ...

  8. Unity3D 纹理偏移(TextureOffset)浅析

    首先,给出圣典的解释: Material.mainTextureOffset 主纹理偏移量 var mainTextureOffset : Vector2 Description描述 The text ...

  9. Windows7 x64 系统下安装 Nodejs 并在 WebStorm 9.0.1 下搭建编译 LESS 环境

    1. 打开Nodejs官网http://www.nodejs.org/,点“DOWNLOADS”,点64-bit下载“node-v0.10.33-x64.msi”. 2. 下载好后,双击“node-v ...

  10. lettuce webdriver 自动化测试---玩转BDD

    行为驱动开发(BDD),依然高大上的矗立在远方,很少被人问津,一方面是BDD的思想不太容易理解,别一方面BDD的资料并不多.中文的资料就更少了. 之前增写过一篇<python BDD 框架之le ...