| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/10/2009 17:04:12
|
Flasoft
JavaGuru
![[Avatar]](/images/avatar/afb0b97df87090596ae7c503f60bb23f.jpg)
Membro desde: 22/05/2006 15:46:02
Mensagens: 230
Localização: Araraquara (SP interior)
Offline
|
Olá!
Tenho q fazer uma alteração em um sistema onde o jaas já está implementado...
Ele chama uma procedure oracle para fazer a validação de senha!
Tenho 2 dúvidas:
Uma é que vai ser incluso 2 parametros na proc onde tenho q passar o IP e Host para gravar log (procedure irá fazer isto - varios sistemas chamam esta mesma procedure)!
Voces tem alguma idéia de como fazer isto?
Como solucao porca mas que sei q funciona e pensei em colocar no jsp o j_username como hidden e antes de submeter via javascript eu conteno o ip e host no campo para trafegar para o Login module (o usuário para o jaas estaria algo como flasoft;meuHost;10.1.1.10), lá eu dou um split e chamo a proc normalmente! (porco mas funciona, vcs tem outra idéia?)
Quando o login falha é lancado uma exceção no login module só que "alguma coisa" engole esta exceção e meu Handler exception nao pega ela! Tem como eu manipular as exceções lancadas no login module na jsp ( tipo eu queria na jsp algo como <%= exception.getMensage() %> )
Desde já obrigado pessoal!
Eu tenho q fazer isto até quarta... se eu não conseguir to ferrado! To mais preocupado com a segundo item, pois apesar da primeira solucao ser feia pelo menos é uma solucao!
|
Blog: http://flasoft.blogspot.com
SCJP5
Achoqueminhabarradeespaçosestácomproblemas
eU connsigg diggtar 500 caratereteres porr minito |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/10/2009 20:08:12
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
Como você precisa de tudo isso no JAAS, acredito que implementar um login module seja o mais aconselhado. Há um exemplo aqui mesmo no guj que pode te ajudar.
Como você tem apenas dois dias acho que sua gambiarra pode funcionar sim. Como você mesmo disse não é algo muito elegante, mas dentro do prazo que você tem é o mais indicado.
Você consegue personalizar os campos do JAAS, porém você precisa escrever algumas coisinhas um pouco complicadas. Aqui há dois links da documentação oficial do JAAS, vai te ajudar.
http://java.sun.com/javase/6/docs/technotes/guides/security/jaas/JAASLMDevGuide.html
http://java.sun.com/javase/6/docs/technotes/guides/security/jaas/JAASRefGuide.html
Em um projeto que estou desenvolvendo possui autenticação via certificado digital via JAAS. Como no JAAS ele apenas valida o certificado e autoriza ou não, tenho um componente do vraptor que faz um pós login, e você pode aproveitar a idéia. O que faço nele basicamente é após o login inicializar esse componente. Nele através do HttpServletRequest eu pego o Principal, IP e mais algumas informaçoes do usuário e adiciono na session, gravando os dados de username, ip e data na base de dados. Ou seja, no contexto do JAAS possuo todos os dados necessários como o objeto Principal e as roles do usuário, assim o módulo EJB pode controlar o acesso normalmente. Os dados estendidos do usuário como nome, email, ultimo login... ficam nesse objeto de sessão.
O que você acha? Isso te ajuda?
Abraços
|
http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/10/2009 09:15:10
|
Flasoft
JavaGuru
![[Avatar]](/images/avatar/afb0b97df87090596ae7c503f60bb23f.jpg)
Membro desde: 22/05/2006 15:46:02
Mensagens: 230
Localização: Araraquara (SP interior)
Offline
|
Pode me dar um norte de como separar os campos, alguma dica para eu comecar a pesquisar?
E quanto a mensagem na pagina de login invalido tem alguma idéia?
No web.xml eu tenho:
Minha personalização do loginModule (DatabaseLoginModule só faz a conn com o bd):
Estas actions configuradas referentes ao login:
A jsp de senha invalida!
E não sei bem como um metodo processLogin de uma action loginAction é chamado quando o método login da MyAuthLoginModule retorna true... aqui é possivel colocar coisas na sessão... mas se uma exceção é lancada na MyAuthLoginModule a action não é chamada e com isto não consigo colocar mais nada na sessão...
|
Blog: http://flasoft.blogspot.com
SCJP5
Achoqueminhabarradeespaçosestácomproblemas
eU connsigg diggtar 500 caratereteres porr minito |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/10/2009 16:52:34
|
Flasoft
JavaGuru
![[Avatar]](/images/avatar/afb0b97df87090596ae7c503f60bb23f.jpg)
Membro desde: 22/05/2006 15:46:02
Mensagens: 230
Localização: Araraquara (SP interior)
Offline
|
Alguém conhece?
|
Blog: http://flasoft.blogspot.com
SCJP5
Achoqueminhabarradeespaçosestácomproblemas
eU connsigg diggtar 500 caratereteres porr minito |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/10/2009 13:34:27
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
Flasoft, não sei se entendi bem tua dúvida. Creio que você entendeu errado o conceito do jaas.
Jaas não fica na http-session. QUando você, via web.xml, indica qual realm será usado para autenticação ele irá fazer o login nesse realm (que pode ser um login-module personalizado como o seu) e vai colocar isso no contexto do jaas. Nada de sessão é envolvida, já que o jaas é portável entre desktop e web.
Se você estiver na página web e precisa saber o usuário basta fazer HttpServletRequest.getUserPrincipal(). Caso você estiver no EJB ou algum outro local dá para buscar pelo Subject, porém não lembro de cabeça.
Mas enfim, como já passou algum tempo, você resolveu o problema?
Abraços
|
http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/10/2009 14:00:37
|
Flasoft
JavaGuru
![[Avatar]](/images/avatar/afb0b97df87090596ae7c503f60bb23f.jpg)
Membro desde: 22/05/2006 15:46:02
Mensagens: 230
Localização: Araraquara (SP interior)
Offline
|
Ainda não funcionou, me deram + prazo...
O que ocorre é que dentro do Metodo login() é lançado algumas exceções, na jsp de senha inválida preciso exibir na pagina exception.getMensage()
|
Blog: http://flasoft.blogspot.com
SCJP5
Achoqueminhabarradeespaçosestácomproblemas
eU connsigg diggtar 500 caratereteres porr minito |
|
|
 |
|
|