Logout Padrão JAAS !?

8 respostas
N

Senhores,

Para fazer login, e assim disparar o método login() do LoginModule JAAS em web basta submeter j_username e j_password a j_security_check. Até aqui tudo sob controle.

E para fazer logout ? Preciso executar o logout do loginModule para remover subject e principal associados ao contexto de autenticação.

Invalidar a sessão não é suficiente, por exemplo, no Websphere, onde temos que remover os tokens ltpa.

Como disparar esse logout ?

Abraços

8 Respostas

rodrigo_ctba

Olá net_sandro ;

Vc. consegui evetuar um logout no JAAS ?

J

Desculpa por retomar o tópico antigo

mas eu tambem queria saber kkk

POR FAVORRR rsrs

[[]]ss

J

todo mundo na net fala pra usar um tal de

LoginContext
mas o contrutor dessa flasse recebe uma “String name”, nao sei que nome botar rs :S

nao existe nenhum metodo jah pronto getLoginContext() ?

mas se eu tenho que instanciar mesmo, que nome que eu boto no contrutor?

:slight_smile:

J

Gentee rsrs

ninguém usa JAAS ?kk rsrs

por favorr aparece alguem :slight_smile:

andrepestana

Olha, eu também não conheço muito JAAS e por isso fui procurar ver como o framework jguard faz:

/**
	 * remove Principals and Private/Public credentials from Subject.
	 * @see javax.security.auth.spi.LoginModule#logout()
	 */
	public boolean logout() throws LoginException {
	    if(subject!= null){
	          subject.getPrincipals().clear();
	          subject.getPrivateCredentials().clear();
	          subject.getPublicCredentials().clear();
	    }
	    return true;
	}

Parece que ele simplesmente apaga as crendenciais do subject.

Esse código pode ser acesso aqui: http://jguard.svn.sourceforge.net/viewvc/jguard/jguard/branches/1.0/jguard/jguard-ext/src/main/java/net/sf/jguard/ext/authentication/loginmodules/UserLoginModule.java?revision=1105&view=markup

Abraço,

J

mas esse código ai é o codigo fonte do JGuard?

ou pra usar esse código preciso estar usando o JGuard?

essa variavel subject, vem de onde?

andrepestana

Esse código é parte do código fonte do jGuard.

Vc não tem um objeto javax.security.auth.Subject que representa o usuário do seu sistema?

Ele simplesmente “zera” os atributos do objeto do usuário, pois na próxima vez que o sistema for verificar o acesso do usuário no sistema ele será barrado. Eu acho que ele não anula a referência do Subject porque o usuário pode ter outros atributos que talvez sejam importantes ao sistema, mas no seu caso ele até pode anular a referência.

Como vc está trabalhando no seu sistema?

J

nao to trabalhando em sistema nenhum, eu aprendi JAAS estudando pra SCWCD, mas ninguem ( nem mesmo o livro) explica a melhor forma de realizar o logout, eu to quebranco a cabeça nun negocio aki rsrs, daqui a pouco vou testar o que vc falou, mas, se der certo, será que é a melhor forma de se fazer?

vou mandar um email pra sun kkkk

tem na documentação o um tal de um metodo logout, mas ele faz parte de uma classe LoginContext e eu nao acho onde eu pego o loginContext da minha aplicação ahuahu

bem que podia ser simples como o getServletContext ter o getLoginContext kkk

:slight_smile:

Criado 13 de fevereiro de 2009
Ultima resposta 15 de set. de 2009
Respostas 8
Participantes 4