Vamos supor que você possa criar seus nomes de usuário do arquivo auth no mesmo caso. Vamos dizer que eles são maiúsculos.
Para conseguir o que você quer, eu faria:
- use o mod_rewrite com um
RewriteMap
que chamaria um python (ou outro ) script - no script,
- base64 decodifica o cabeçalho de autenticação
- torna o nome do usuário em maiúsculas (a parte antes do colunma)
- base64 codifica o cabeçalho de autenticação
- Use o novo cabeçalho de autenticação em maiúsculas
Eu não tenho a configuração para testá-lo, mas para começar, aqui está um script Python que implementa a ideia (a ênfase na clareza pode ser menor):
#!/usr/bin/python
import base64
import sys
import string
#Get the header value
header = sys.stdin.readline()
#Base 64 decode it
authentication = base64.b64decode(header)
#Split username and password
userpass = authentication.split(':')
#Make username uppercase
userpass[0] = userpass[0].upper()
#Rebuild the authentication with the upper case username
authentication = string.join(userpass,':')
#Send the base64 result back
print (base64.b64encode(authentication))
Para uma senha conhecida :
$ echo QWxhZGRpbjpvcGVuIHNlc2FtZQ== | openssl base64 -d
Aladdin:open sesame
O script torna o nome de usuário em maiúsculas:
$ echo QWxhZGRpbjpvcGVuIHNlc2FtZQ== | python uppercase_basic.py
QUxBRERJTjpvcGVuIHNlc2FtZQ==
$ echo QUxBRERJTjpvcGVuIHNlc2FtZQ== | openssl base64 -d
ALADDIN:open sesame
Ressalva: este código falhará se você tiver caracteres não ASCII no nome do usuário. étudiant78
torna-se éTUDIANT78
na minha máquina.