HTTP Request não me retorna o real link que o usuário deseja acessar

10 respostas
darksteel3000

Pessoal tenho um filtro que serve para validar se o usuário tem acesso a aquela determinada pagina.

Uso jsf 2, do MyFaces !

No meu request faço um get na URI e tbem na URL. Mas como meus navigations não estão usando <REDIRECT /> o link no browser não muda e sempre me retorna o mesmo, dai n estou conseguindo pegar o real link que o usuario deseja acessar. Sempre vem o do meu template.xhtml

10 Respostas

Hebert_Coelho

Mas esse é o comportamento esperado.

Talvez sua lógica de utilização que está errada.

darksteel3000

Vixi maria, e como que vou fazer esse troço, “any dica”?

Preciso de algo para permitir ou não o usuário ver ou efetuar determinadas operações. Existe framework pra isso?

Hebert_Coelho

darksteel3000:
Vixi maria, e como que vou fazer esse troço, “any dica”?

Preciso de algo para permitir ou não o usuário ver ou efetuar determinadas operações. Existe framework pra isso?

Por um filter ou jaas uai.

Se você quer bloquear apenas um conteúdo, apenas use o rendered="#{usuario.podeVer}"… e também seria ideal bloquear no java.

darksteel3000

O Filter eu já tenho, o lance é que, eu não consigo pegar tipo…

localhost:8080/sistema/paginas/usuario/manterUsuario.xhtml

toda vez vem isso ó:

localhost:8080/sistema/paginas/template.xhtml ( Mesmo o cara estando em manterUsuario.xhtml )

Hebert_Coelho

E como você está pegando a URL?

darksteel3000
HttpSession session = req.getSession();  
            String currentView = req.getRequestURI();    
              
            //retorna a url completa sem o contexto. Ex: /pasta/pagina.jsf    
            String currentView2 =  req.getRequestURI().replaceFirst(req.getContextPath(), "");
Hebert_Coelho
darksteel3000:
HttpSession session = req.getSession();  
            String currentView = req.getRequestURI();    
              
            //retorna a url completa sem o contexto. Ex: /pasta/pagina.jsf    
            String currentView2 =  req.getRequestURI().replaceFirst(req.getContextPath(), "");
E se você pegar de outro modo? Request tem outros métodos que talvez te ajude...
darksteel3000

Peguei isso aqui ó: http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html

Saí varrendo em um metodo de testes cada um kkkk, nenhum funcionou como eu queria. Mas quando coloco o <redirect /> ai vem tudinho.

Mas usar <redirect /> “mim não querer” xD

Hebert_Coelho

darksteel3000:
Peguei isso aqui ó: http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html

Saí varrendo em um metodo de testes cada um kkkk, nenhum funcionou como eu queria. Mas quando coloco o <redirect /> ai vem tudinho.

Mas usar <redirect /> “mim não querer” xD

Estranho então…

Testei com isso aqui e foi:

HttpServletRequest request = (HttpServletRequest) req;
System.err.println(request.getRequestURL());

Mas testei um forwad sem jsf… eu nunca tive problema com isso em jsf.

darksteel3000

foward ele faz por default certo?

Não vai nem ká bixiga.

Mas tranquilo, vou achar outra forma de controlar essas permissões dos usuários. Vlw !

Criado 11 de março de 2013
Ultima resposta 11 de mar. de 2013
Respostas 10
Participantes 2