[Cascavel-pm] [Projeto]: API de Autenticação Versátil e Au to-Extensível

Flavio S. Glock fglock em pucrs.br
Terça Outubro 7 09:41:09 CDT 2003


Irmão Champs:

Dê uma olhada neste software:

  http://www.openwebmail.org

No diretório cgi-bin, depois de fazer download:

  auth_ldap.pl
  auth_mysql.pl
  auth_pop3.pl
  ... e assim por diante, são 11 formas diferentes de autenticação.

- Flavio S. Glock


Luis Campos de Carvalho wrote:
> 
>    Irmãos monges
> 
>    Eu estou construindo uma API para autenticação na empresa, que
> inicalmente deverá utilizar POP3, IMAP, LDAP, CGI ou DBI para obter
> informações de autenticação de um usuário.
> 
>    Se alguém se interessar em olhar, eu tenho um UML feio, desenhado em
> papel-de-pão, que posso enviar por email, como imagem tiff ou gif.
> 
>    Eu pensei em uma estrutura orientada a objetos, assim:
> 
>    Auth.pm
>    |
>    |--> Auth::DBI
>    |--> Auth::POP
>    |--> Auth::IMAP
>    |--> Auth::CGI
>    |--> Auth::HTTP
>    |--> Auth::LDAP
> 
>    Auth.pm é o meu "objeto principal" e todos os outros são "objetos
> delegados", especializados na autenticação por um determinado método.
> 
>    Agora, meu problema:
> 
>    Eu quero poder escrever apenas
> 
>    __PERL__
>    use Auth;
> 
>    my $auth = new Auth( 'POP:servidor' );
>    die "Invalido"
>      unless $auth->check( 'nome', 'senha' );
>    print "Valido";
>    __END__
> 
>    e gostaria que isso funcionasse em qualquer situação. Mas existem
> pequenos problemas. Por exemplo, o LDAP precisa de mais informação do
> que isso para funcionar. Da mesma forma, o DBI e o CGI também
> precisarão. Como codificar isso tudo em um URI fácil de usar e simples
> de resolver?
> 
>             ***      ***      ***
> 
>    No mesmo contexto, eu gostaria que o objeto Auth fosse capaz de
> reconhecer quais extensões estão disponíveis em disco em um determinado
> instante. Existe alguma forma padronizada de verificar se um determinado
> tipo de objeto não-carregado em memória pode ser carregado (use
> Auth::MyAuth;) em um determinado instante, em carregar o objeto?
> 
>    Eu gostaria muito que a solução independesse da localização física
> dos arquivos, já que posso ter  partes da subárvore de objetos auth em
> locais diferentes (no $PERL_LIB/site-local e no meu ~/perl/lib, por
> exemplo).
> 
>    Soluções pré-fabricadas e módulos prontos são muito benvindos.



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