[SP-pm] Autenticador Squid em Perl

Gabriel Vieira gabriel.vieira em gmail.com
Quinta Junho 5 12:32:20 PDT 2008


Ai sim, sim. :)

2008/6/5 Luis Motta Campos <luismottacampos em yahoo.co.uk>:
> Alexei Znamensky wrote:
>> Gabriel,
>>
>> #2 perfeitamente correta, sim, ficou faltando o ERR em caso de senha
>> existente porém errada.
>
> Ops. Falha minha. Volto a postar num minuto.
>
>> para a pergunta #1, sem entrarmos na questão de quão efetivo é ter um
>> mecanismo de authenticação se não há senha, o que você precisa fazer é
>> usar a regexp:
>>
>> m{^(\S+)\s(.+)?$}
>>
>> com a interrogação, denotando que a senha é um parâmetro opcional. Nesse
>> caso você poderá deixar o código com somente:
>>
>> my ( $user, $password ) = m{^(\S+)\s(.+)$};
>> print is_valid( $user, $password )?"OK\n":"ERR\n";
>>
>> Não há necesisdade de fazer o primeiro teste:
>>
>> a) da forma como o Fields colocou antes era para testar senha vazia, que
>> no seu caso é algo que você quer (why??? oh god, why??)
>
> Eu pensei melhor e acho que não é responsabilidade deste programa testar
> ou compreender nada sobre a senha: ele simplesmente repassa o que quer
> que ele encontrar para a função de autenticação, que determina a
> validade das credenciais e retorna o valor final.
>
>> b) da forma como você colocou ele vai testar se houve match ou não, o
>> que irá retornar sempre true, ou seja, o print "ERR\n" nunca será executado.
>>
>> De qualquer maneira, pode ser removido.
>
> A implementação mais nova é assim:
>
> #!/usr/bin/perl
> use strict;
> use warnings;
> use IO::Handle;
>
> STDOUT->autoflush(1);
> STDERR->autoflush(1);
>
> # implement your password validation here
> sub is_valid;
>
> while (<>) {
>     my ( $user, $password ) = m{^(\S+)(?:\s+(.+))?$};
>     print is_valid( $user, $password ) ? qq{OK\n} : qq{ERR\n};
> }
> __END__
>
> Espero que isso ajude.
>
> Putamplexos.
> --
> Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,
> Perl fanatic evangelist, and amateur {cook, photographer}
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>



-- 
Gabriel Vieira


Mais detalhes sobre a lista de discussão SaoPaulo-pm