在使用客户端证书和FakeBasicAuth的Apache2时,如何引用AuthzSVNAccessFile用户? 用户名有一些有趣的字符,例如/CN=Damon Wischik ,authz不喜欢用户名中的=字符。
我的Apacheconfiguration有线
SSLVerifyClient require SSLOptions +FakeBasicAuth
这意味着用户提供了一个客户端证书,Apache从证书中获取主题行,例如/CN=Damon Wischik ,并将其作为用户名和“password”作为密码。 我已经为这个用户添加了一个htpasswd条目,他可以愉快地login。
现在我想添加细粒度的访问控制到存储库,我不能解决如何在AuthzSVNAccessFile引用这个用户名。 我开始了
[/] * = r
用户能够读取存储库的内容。 我试着写作
[/] * = "/CN=Damon Wischik" = r
并且用户得到“访问被禁止”,并且Apache错误日志说
[date] [error] [client ip] Failed to load the AuthzSVNAccessFile: The character 'D' in rule '"/CN' is not allowed in authz rules [date] [error] [client ip] Access denied: '/CN=Damon Wischik' GET foo:/
什么是正确的方法来逃避这些有趣的字符在用户名,在authz文件?
(感谢Stefan Sperling在subversion-users邮件列表中寻找答案。)RTFM! 从红豆书第6章 ,
Subversion 1.5为访问文件的语法 – 用户名别名,authentication类别标记和一个新的规则排除机制带来了一些有用的特性 – 所有这些都进一步简化了访问文件的维护。
这里是如何在这个特定的情况下使用别名。
[aliases] djw = /CN=Damon Wischik [/] * = &djw = r