1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Melhores práticas, controle de acesso tirando proveito das error-pages do JSF?

Olá.

Gostaria de saber qual a melhor maneira de se fazer um controle de acesso em JSF.

Eu fiz a implementação de um através de um Filter:

@WebFilter(filterName = "AppAuthFilter", urlPatterns = {"*.jsf"})
public class AppAuthFilter extends AppController implements Filter {
...
...
}

Mas comecei a ter problemas de performance, pois dentro deste Filter eu faço verificações no banco de dados como por exemplo, consultar se a tela está com um flag de Em Manutenção ativo.

Em meu filter eu estou usando o pattern "*.jsf" e o problema é que cada tela executa o doFilter pelo menos 10x, isso falando de uma tela simples, pois todos os arquivos .css, .js e até biblioteca de fonts vem como .jsf no final.

Então pesquisei um pouco e vi um pessoal falando sobre PhaseListener e funcionou legal até em meus testes, pois ele passa uma única vez por request de view.

Mas perdi um controle legal que é o uso das error-pages cadastradas no meu web.xml.

<error-page>
    <error-code>500</error-code>
    <location>/WEB-INF/error-500.jsf</location>
</error-page>

No filter eu apenas usava:

response.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE);

Mas tentei fazer o mesmo dentro do PhaseListener e ele me mostra o erro no navegador mesmo HTTP Error 503.

Qual seria a melhor prática e como poderia fazer isso para tratar o controle de acesso?

Obrigado desde já.

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags jsf java primefaces ou faça a sua própria pergunta.