Chr*_*is 12 ldap environment-variables mod-auth-ldap apache-2.2
是否可以将请求 URI 的一部分用作 mod_authnz_ldapRequire ldap-group
指令的输入?
我正在尝试动态检查对一堆不同项目目录的访问,所有目录都在http://testserver.com/projects/下,这样访问的用户/projects/abc
将被检查cn=abc,ou=groups,dc=test
. 理想情况下,我希望在不为每个项目创建单独的 Location 指令的情况下执行此操作,因为很可能有数百个。
我想出了这个,它说明了一般概念,但它不起作用(project_name 不检索实际变量内容):
<Location /projects>
SetEnvIf Request_URI "/projects/([-a-z0-9A-Z_]+)/" project_name=$1
AuthType Basic
AuthBasicProvider ldap
AuthName "Restricted Resource - SVN (LDAP)"
AuthLDAPURL "ldap://127.0.0.1:389/dc=test?uid"
AuthLDAPGroupAttributeIsDN off
AuthLDAPGroupAttribute memberUid
Require ldap-group cn=%{project_name},ou=groups,dc=test
</Location>
Run Code Online (Sandbox Code Playgroud)
帮助?
我相信 Apache 2.4 在这方面比 2.2 能提供更多...可能值得一看。
或者,可能值得考虑构建您自己的自定义模块;它并不像看上去那么可怕——假设你对 C 语言很熟悉。
同样,mod_perl 不是提供了很多通过钩子扩展 Apache 的功能吗?