用Perl编写Apache模块续二 - SVN动态鉴权实现SVNAuth 禅道版
代码地址: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版本
- 加载perl模块
LoadFile "D:/PHP/xampp/perl/bin/perl510.dll"
LoadModule perl_module modules/mod_perl.so
- 配置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 禅道版的更多相关文章
- 用Perl编写Apache模块续 - SVNAuth
目标:以整合各类项目管理系统中的用户体系及权限体系为目标,实现SVN的集成式动态鉴权 支持平台:usvn.禅道等 - 开发中,本文仅对前期的探索工作做点整理 开发环境: Windows.XAMPP 1 ...
- 用Perl编写Apache模块
前言 Apache被许多大流量网站所嫌弃,但很多企业级的场景则更为适用. Apache httpd 从 2.0 之后,已经不仅仅局限于一个 http 的服务器,更是一个完善而强大.灵活而健壮且容易扩展 ...
- Apache Commons Beanutils 二 (动态Bean - DynaBeans)
相关背景 上一篇介绍了PropertyUtils的用法,PropertyUtils主要是在不修改bean结构的前提下,动态访问bean的属性: 但是有时候,我们会经常希望能够在不定义一个Java类的前 ...
- Apache模块开发指南-APR池
转:原文: http://blog.csdn.net/zmxiangde_88/article/details/8038150 ------------------------------------ ...
- 7.PHP内核探索:Apache模块介绍
Apache概述 Apache是目前世界上使用最为广泛的一种Web Server,它以跨平台.高效和稳定而闻名.按照去年官方统计的数据,Apache服务器的装机量占该市场60%以上的份额.尤其是在 X ...
- 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 概述 警告 在您没有对服务器采 ...
- php在apache中一共有三种工作方式:CGI模式、FastCGI模式、Apache 模块DLL
php在apache中一共有三种工作方式:CGI模式.FastCGI .FastCGI是什么? FastCGI是语言无关的.可伸缩架构的CGI开放扩展,其主要行 为是将CGI解释器进程保持在内存中并因 ...
- Apache模块 mod_proxy
转: Apache模块 mod_proxy 转自http://www.php100.com/manual/apache2/mod/mod_proxy.html Apache模块 mod_proxy 说 ...
- Apache模块开发
一.简介 Apache HTTP服务器是一个模块化的软件,使管理者可以选择核心中包含的模块以裁剪功能.可以在编译时选择被静态包含进httpd二进制映象的模块,也可以编译成独立于主httpd二进制映象的 ...
随机推荐
- FindBugs工具常见问题
1,AM: Creates an empty jar file entry (AM_CREATES_EMPTY_JAR_FILE_ENTRY)/AM: Creates an empty zip fil ...
- WebStorm11 注册
WebStorm11 注册 http://2.idea.lanyus.com/
- android 内置视频目录
在做引导界面的时候有一个视频文件, 把它放在res/raw目录下面. 引用方法 如下: videoView = (VideoView) findViewById(R.id.video_view); v ...
- prim算法java版
public class Prim { static int MAX = 65535; public static void prim(int[][] graph, int n){ char[] c ...
- Js 一些方法(一)
(function ($) { var promoter = promoter || {}; promoter.utils = (function () { var controller = &quo ...
- HTML5新特性之WebSocket
1.概述 HTTP协议是一种无状态协议,服务端本身不具有识别客户端的能力,必须借助外部机制,比如session和cookie,才能与特定客户端保持对话.这多多少少带来一些不便,尤其在服务器端与客户端需 ...
- [论文笔记] Methodologies for Data Quality Assessment and Improvement (ACM Comput.Surv, 2009) (1)
Carlo Batini, Cinzia Cappiello, Chiara Francalanci, and Andrea Maurino. 2009. Methodologies for data ...
- android studio ndk使用openMP
好久没碰ndk了,之前都是在eclipse下写makefile配置c++程序的,现在发现主流都是用android studio,eclipse俨然已经被遗弃了,正好最近项目需要用openMP做算法加速 ...
- 【转】Oracle RAC 环境下的连接管理
文章转自:http://www.oracle.com/technetwork/cn/articles/database-performance/oracle-rac-connection-mgmt-1 ...
- 【原】Configuring Oracle Data Guard In Physical Standby Database
作者:david_zhang@sh [转载时请以超链接形式标明文章] http://www.cnblogs.com/david-zhang-index/p/5042640.html参照文档:https ...