Como autenticar o usuario?

Boa noite pessoal.

Estava pesquisando como faço para autenticar o usuario ! E parece que descobri duas formas:
1- Usando o JAAS http://java.sun.com/products/jaas/overview.html
2- Usando um Intercepting Filter http://java.sun.com/blueprints/corej2eepatterns/Patterns/InterceptingFilter.html

Bom… a documentação do JAAS e vasta e eu demoraria um pouco para ler e aprender como implementar
Já a Intercepting Filter é um pouco menor… mas nao sei se isso é correto

Bom… vamos a pergunta ! Oque vc usam ou aconselham para autenticar o usario ? tem algum tutorial basico ?

Desde já… muito Obrigado

Nunca usei JAAS, sempre com ServletFilter.

JAAS é muitooo complexo, é inflexível, não sei se realmente ajuda, vc precisa autenticar em muitos lugares ? ou somente na sua aplicação ?
Pq se for só na sua aplicação, e for simples, nem ServletFilter vc precisa pra autenticar, apenas uma action que vai pegar as informações de login do cara e ver se ele pode entrar.

Os Filters geralmente são para Autorização.

Na java magazine nº 22 saiu um artigo sobre segurança usando realms ! Fazendo com que o servidor de aplicação fosse responsavel por essa tarefa, o que parece fazer muito sentido !

Estou usando esse tipo de autenticação e achei muito melhor que os dois modos que falei anteriormente.

Vcs já usaram esse tipo de autenticação ? é a melhor forma ?

Obrigado.

Imagino que com realm não seja muito flexível.

Qual a estratégia que vcs estão utilizando para liberar certas páginas que não podem ser interceptadas pelo filtro de autenticação: exemplo: cadastro.jsp, index.jsp, login.jsp, etc.

[quote=saoj]Qual a estratégia que vcs estão utilizando para liberar certas páginas que não podem ser interceptadas pelo filtro de autenticação: exemplo: cadastro.jsp, index.jsp, login.jsp, etc.
[/quote]
configuração em xml ,das url frees,

<urls-free>
  <url>..........</url>
  <url>..........</url>
  <url>..........</url>
</urls-free>

É uma boa também. Pro Mentawai estou pensando em liberar por prefixo:

index.free.jsp
login.free.jsp

daí o cara não precisa configurar no xml…

Talves nao seja muito flexivel ! Mas esta é a forma descrita na especificação J2EE.

Pra mim… faz muito sentido… deixar que o container faça esse trabalho !
Segue abaixo partes importantes que li no artigo.
1- O J2EE utiliza uma abordagem declarativa para as configurações de segurança, baseada no conceito de roles(papeis). Uma aplicação define um ou mais roles, e depois quais operações podem ser realizadas por cada um desses roles
2- O codigo da aplicação não chama nenhum metodo para validar senha
3- Qaulquer aplicação que utilize os recursos padrão do J2EE para autenticação e controle de acesso irá exigir um deployment(instalação) customizado para o servidor de aplicação adotado

[quote=saoj]Qual a estratégia que vcs estão utilizando para liberar certas páginas que não podem ser interceptadas pelo filtro de autenticação: exemplo: cadastro.jsp, index.jsp, login.jsp, etc.
[/quote]

Com a segurança declarativa, usando realms, basta deixar a pagina fora das regras ! ou seja, somente será necessario autenticação, aquelas que estiverem nas regras… todas as outras paginas não será necessario autenticação

[quote=ronildobraga][quote=saoj]Qual a estratégia que vcs estão utilizando para liberar certas páginas que não podem ser interceptadas pelo filtro de autenticação: exemplo: cadastro.jsp, index.jsp, login.jsp, etc.
[/quote]

Com a segurança declarativa, usando realms, basta deixar a pagina fora das regras ! ou seja, somente será necessario autenticação, aquelas que estiverem nas regras… todas as outras paginas não será necessario autenticação[/quote]
e se vc quiser que o usuário (cliente da aplicação) configure para que um determinado role tenha acesso a determinadas urls ?

[quote=Fabrício Cozer Martins]
e se vc quiser que o usuário (cliente da aplicação) configure para que um determinado role tenha acesso a determinadas urls ? [/quote]

Na verdade o usuario nao teria essa função, quem define as regras de acesso é o desenvolvedor ! Por exemplo… eu definiria uma regra para adiministradores e outra regra para usuarios !
Sendo assim, o cliente poderia cadastrar um usuario e escolher no sistema quais papeis as pessoas deveriam ter !

O problema que eu vejo, é que o usuario(cliente da aplicação) não define papeis de acesso ! O que talvez seja correto… pois esta é uma rotina de responsabilidade do desenvolvedor… pois se tratando de segurança… acho complicado deixar isso para o usuário (cliente da aplicação)

Logico que posso estar errado… o que vcs acham ?

E alguem tem ai um forma de verificar se o usuário informado é valido em um servidor AD.

eu ja fiz isso usando as classes da api javax.naming.ldap mais informando a senha. e neste caso eu so tenho o usuário.

AD= Active Directory

encontrei este artigo e notei que a validação de um usuário de a senha, somente com o usuário e senha do administrador…
http://forum.java.sun.com/thread.jspa?threadID=581425&start=0

será que só existe esta forma?

[quote=Licuri]encontrei este artigo e notei que a validação de um usuário de a senha, somente com o usuário e senha do administrador…
http://forum.java.sun.com/thread.jspa?threadID=581425&start=0

será que só existe esta forma?[/quote]

Licuri ! cara… eu nunca vi esse tipo de autenticação… vc poderia explicar em que ocasioes vc usa isso e porque resolveu usar esse procedimento ?

Desde já… obrigado.

[quote=ronildobraga]
Licuri ! cara… eu nunca vi esse tipo de autenticação… vc poderia explicar em que ocasioes vc usa isso e porque resolveu usar esse procedimento ?

Desde já… obrigado.[/quote]

Eu tenho um tela aonde o usuário vai associar um numero que esta cadastrado na base de dados a um usuário. Mais os usuário que ele informar devem existir… e aqui na empresa nos usamos o Active Directory.
Portanto a ideia que eu tinha é pegar o usuário que o cara digitou e validar no AD… mais até agora não consegui nada…