[SP-pm] Autenticador Squid em Perl

Gabriel Vieira gabriel.vieira em gmail.com
Quinta Junho 5 10:03:53 PDT 2008


Certíssimo! :)
Pensei no item 1 só depois de já ter feito o 2.

1) Não que eu queira senha em branco, dependerá somente de como o
Squid faz a autenticação. Talvez usuário comum (sem senha) tenha
acesso a limitados sites e autenticados (login e senha) a uma
limitação menor... tudo é possível. Foi só uma indagação minha.
2) Da forma que eu havia colocado ele irá imprimir "ERR" caso a senha
não seja enviada, uma vez que .+ solicia 1 ou mais caracteres.
3) Seu código resolve as questões :)

2008/6/5 Alexei Znamensky <russoz em gmail.com>:
> Gabriel,
>
> #2 perfeitamente correta, sim, ficou faltando o ERR em caso de senha
> existente porém errada.
>
> 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??)
> 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.
>
> []s,
> Russo
>
>
>
> 2008/6/5 Gabriel Vieira <gabriel.vieira em gmail.com>:
>>
>> 1) Se o usuário colocar apenas "login " haverá falha na REGEX, então
>> por que não usá-la como validador direto? A senha pode ser em branco?
>> 2) Caso a senha e o login não batam, precisaria retornar caso tivesse
>> erro, certo?
>>
>>
>> print "ERR\n" unless my ( $user, $password ) = m{^(\S+)\s(.+)$};
>> print is_valid( $user, $password )?"OK\n":"ERR\n";
>>
>>
>>
>> 2008/6/5 Luis Motta Campos <luismottacampos em yahoo.co.uk>:
>> > Fernando Oliveira wrote:
>> >> # Não seria melhor assim, p/ possibilitar senhas com espaço?
>> >>    my @userPass = split / /;
>> >>    my $user = $userPass[0];
>> >>    my $password = join " ", @userPass[1 .. $#userPass];
>> >
>> > Hum. Senhas podem ter espaços. Certo, mudança de estratégia. Nada de
>> > usar split().
>> >
>> > #!/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 (<>) {
>> >
>> >     # captura um username (sem espaços, seguido de um
>> >     # espaço, seguido de qualquer coisa ( a senha).
>> >     my ( $user, $password ) = m{^(\S+)\s(.+)$};
>> >     print "ERR\n" unless $password;    # do not accept empty
>> >     print "OK\n" if is_valid( $user, $password );
>> > }
>> > __END__
>> >
>> > 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
>> _______________________________________________
>> SaoPaulo-pm mailing list
>> SaoPaulo-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
>
>
> --
> Alexei Znamensky [russoz_gmail_com] [russoz.wordpress.com]
> [www.flickr.com/photos/alexeiz]
> "Though we live in trying times, we're the ones who have to try"
> _______________________________________________
> 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