Case sensitive acontece com o
Freeradius +
Postgres porque as queries ATIVAS para o postgre que estão no arquivo de configuração "queries.conf" do Freeradius foram feitas da maneira mais simples possível (defalt), com isso, o login de usuário cliente para logar fica idêntico ao que está no banco, fazendo com que o usuário tenha que respeitar maiúsculas e minúsculas.
Alguns captives portal não tratam isso, e o celular dos clientes às vezes preenchem com letra maiúsculas no campo login, gerando reclamações desnecessárias por parte dos clientes.
Diante da necessidade de modificar isso de uma maneira facilitada, temos os exemplos no arquivo original que precisariam ser descomentados (ou seja, retirado o caractere "#" do início da linha), bem como os trechos do código que estão ativos (linhas que não comecem com o caractere "#") precisariam ser comentados.
Porem é um RISCO ter que analisar quais linhas precisam (podem) ou não ser comentadas ou descomentadas, minha dica facilita fazer isso mais rápido e ter o mesmo efeito mexendo no código que já está ativo (descomentado).
A minha versão do freeradius é a 3 do repositório do CentOS.
Para que possamos modificar as queries é muito simples, conhecimento em posgres, mas pra quem não sabe ou não pensou nessa solução de "como desativar case sensitive no radius com banco de dados postgre" é o público alvo da minha dica.
Primeiro passo é modificar algumas queries no arquivo "queries.conf".
Pra quem não sabe onde está o arquivo, pode ser encontrado com o comando:
# find /etc -name queries.conf | grep main\/postgresql
ou somente:
# find /etc -name queries.conf | grep postgres
Lembrando que tem que ser o principal, algumas versões podem ter mais de um arquivo de configuração com nome "queries.conf", que também é o caso da minha versão.
No meu caso, como é no CentOS, apareceu esta linha após o comando acima:
/etc/raddb/mods-config/sql/main/postgresql/queries.conf
Obs.: fazer o backup desse arquivo antes com o comando cp.
Após entrar com algum editor de texto, pra facilitar, por exemplo, o nano, troque todas ocorrências do código:
Username='%{SQL-User-Name}'
por:
Username ILIKE'%{SQL-User-Name}'
lembrando que ILIKE pode ser minúsculo (ilike), maiúsculo apenas mantém o padrão do código.
Exemplo abaixo é de um antes e depois da modificação do trecho do código:
Antes:
authorize_check_query = "\
SELECT id, UserName, Attribute, Value, Op \
FROM ${authcheck_table} \
WHERE Username = '%{SQL-User-Name}' \
ORDER BY id"
Depois:
authorize_check_query = "\
SELECT id, UserName, Attribute, Value, Op \
FROM ${authcheck_table} \
WHERE Username ILIKE'%{SQL-User-Name}' \
ORDER BY id"
Email para contato: thomaz.tecnico @ gmail.com
Nenhum comentário foi encontrado.