Problema no import do SecurityAssociation

7 respostas
alandiniz

Estou seguindo o tutorial do jakefrog (http://uaihebert.com/?p=56), estou com um problema no import

import org.jboss.security.SecurityAssociation;

aparentemente minha aplicação está com o resto funcionando corretamente… pois quando eu tiro as 2 linhas abaixo, o sistema funciona normalmente:

String userName = SecurityAssociation.getPrincipal().getName(); System.out.println("Yeeey! Get me here and find me in the database: " + userName);

otra coisa, como eu faço para manipular o usuário que está logado?
por exemplo:

  • se a role dele for usuario redireiconar para /usuario/index.html
  • se a role for admin redirecionar para /admin/admin.xhtml
  • como deslogar ele
  • como alterar a senha dele, e outro atributos que ele possuir…

na verdade em partes eu sei como fazer isso… mais qual a maneira correta de se fazer? alguem tem uma sugestão?

tentei esses topicos (auxiliares) e nao consegui resolver meu problema:


http://kickjava.com/src/org/jboss/security/SecurityAssociation.java.htm

7 Respostas

Hebert_Coelho

Vc está utilizando qual JBoss?

OBS.: Muito bom esse blog hein?! Mahauhaa :lol: :lol: :lol:

alandiniz

hehe eu sei q eh seu :stuck_out_tongue: … realmente e mto bom!!

então, to usando o 6 mesmo… inclusive eu fiz o download naquele link…

ak meu projeto funciona tudo normal… só essa parte do import ai que ta dando erro :frowning:

eu tenho uma situação assim:

o cara quando acessa o sistema cai na login.xhtml
e a partir dali, quando logado ele pode ir pra /admin ou /usuario

se eu vou no navegador, acesso o site já tentando entrar no /admin, ele redireciona no login.xhtml, ai eu faço login e ele vai depois pro /admin normal, e aparece a página

se eu vou no navegador acesso o site no login normal, ele da o erro: “Invalid direct reference to form login page”
ai se eu vou no navegador e tento ir pro /admin ele vai normal…

como eu faço pra ver se o cara entro como admin redirecionar automaticamente pra /admin
ou se ele logo como usuario, redirecionar pra /usuario?

Hebert_Coelho

Basta no filter que faz a validação você direcionar para a página correta.

Mas estou achando muito estranho vc está com problemas no import.

Você adicionou as bibliotecas do JBoss ao seu projeto?

alandiniz
1- então pelo que vi, o jaas que faz a validação do usuário... e quando eu logo nao passa no LoginFilter.. olha como ele ta hoje.. como eu iria fazer pra redirecionar pra /admin caso ele for admin?
@Override
	    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException,
	            ServletException {
	    	
	    		System.out.println("passo ak");


	    		HttpServletRequest servletRequest = (HttpServletRequest) request;  
	    		boolean a = servletRequest.isUserInRole("ADMIN");
	    		
	    		if(a){
	    			System.out.println("se for admin passa aqui, então eu posso fazer o redirecionamento: " + a);
	    		}
	    	
	 	        filterChain.doFilter(request, response);
	    }

2- sobre o import eu coloquei uma img aki em anexo... aparentemente eu fiz corretamente.... vc saberia me dizer qual é a lib desse import?

--------------EDIT-------------

ahh, por exemplo, eu tava olhando essa parte de um outro tutorial seu bem parecido...
nessa pagina http://uaihebert.com/?p=836&page=7
vc coloca o welcome file pages/protected/user/listAllDogs.xhtml
entao quando o cara digita pra entra no sistema, vai tenta redireciona pra essa página ai, e automaticamente vai ver que o usuário está deslogado e jogar para a página /pages/public/login.xhtml

mais assim que o usuário logar, ele vai ser redirecionado pra página pages/protected/user/listAllDogs.xhtml, pq foi a que 'ele tentou' acessar...

no meu caso, o cara ja cai diretamente na página de login... o login eh o meu welcome-file... pq o cara pode se logar como administrador ou como usuário, então somente depois que ele logar eu tenho que ver, se ele for administrador vai pra /administrador e se for usuario vai pra /usuario

Obrigado por tudo.

jakefrog:
Basta no filter que faz a validação você direcionar para a página correta.

Mas estou achando muito estranho vc está com problemas no import.

Você adicionou as bibliotecas do JBoss ao seu projeto?



Hebert_Coelho

Para redirecionar você poderia utilizar o sendRedirect do httpResponse.

Realmente ta bizarro o eclipse não encontrar o import do jboss. O.o

Tente fazer um build/clean do seu projeto e veja se funciona… =D

alandiniz

1-então, eu sei como usar o sendRedirect… o problema é o seguinte… quando eu clico em logar, nao passa pelo filtro…
eu preciso que quando o botão logar for acionado, passe pelo filtro, pra ver se o usuario ta logando com a role ADMIN ou USUARIO e a partir dai da um sendRedirect para ADMIN ou USUARIO

2- realmente nao acha o import… tentei em outro pc, baxei o jboss novamente, criei o projeto, criei a classe filter, e nada…

3- o clean eu fiz várias vezes… no projeto, no servidor, fiz build, tentei altera o caminho, tentei d td aki rsrs
:frowning:

jakefrog:
Para redirecionar você poderia utilizar o sendRedirect do httpResponse.

Realmente ta bizarro o eclipse não encontrar o import do jboss. O.o

Tente fazer um build/clean do seu projeto e veja se funciona… =D

Hebert_Coelho

É por isso que no web.xml eu aponto para uma outra página e não a de login sacou?

Oq e você pode fazer é criar um index e deixar como sendo o welcome-file. Esse index seria apenas para usuário normal. No filter não iria fazer nada
Caso o cara fosse admin, aí no filter seria redirecionado para a página de admin. Q tal?

Criado 12 de maio de 2012
Ultima resposta 14 de mai. de 2012
Respostas 7
Participantes 2