Ao usar o Apache2 com certificados de cliente e o FakeBasicAuth, como me refiro a usuários no AuthzSVNAccessFile
? Os nomes de usuário possuem caracteres engraçados, como /CN=Damon Wischik
, e o authz não gosta do caractere =
em nomes de usuários.
Minha configuração do Apache tem as linhas
SSLVerifyClient require
SSLOptions +FakeBasicAuth
Isso significa que o usuário fornece um certificado de cliente, o Apache pega o assunto do certificado, por exemplo. /CN=Damon Wischik
e usa isso como nome de usuário e "senha" como senha. Eu adicionei uma entrada de htpasswd
para este usuário, e ele pode logar felizmente.
Agora, desejo adicionar um controle de acesso refinado ao repositório e não posso descobrir como me referir a esse nome de usuário no AuthzSVNAccessFile
. Eu comecei com
[/]
* = r
e o usuário pôde ler o conteúdo do repositório. Eu tentei escrever
[/]
* =
"/CN=Damon Wischik" = r
e o usuário recebe "Acesso proibido", e o log de erros do Apache diz
[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:/
Qual é a maneira correta de escapar desses personagens engraçados em nomes de usuários, no arquivo authz?