Pergunta

Estou fazendo um aplicativo da web no qual determinadas páginas são protegidas por login. Eu criei um campo de segurança JDBC em Glassfish para isso e usei a autenticação de formulário (semelhante ao método descrito aqui)

Estou usando regras de navegação para redirecionar o usuário para as áreas seguras do site:

<navigation-case>
        <from-outcome>showResults</from-outcome>
        <to-view-id>/SecureUser/Reservation/New/AvailableResults.xhtml</to-view-id>
        <redirect/>
</navigation-case>
(etc...)

Isso funciona bem. Mas se eu pular a tag de redirecionamento no caso de navegação, o URL da página não mudará. E, nesse caso, um usuário não autenticado pode acessar a página segura.

Qual é a melhor maneira de fazer isso? Garantir que a página seja redirecionada em vez de encaminhada seja boa o suficiente? Devo escrever código em todas as páginas seguras que verifique se o usuário está conectado ou não?

Foi útil?

Solução

Usar a postagem para navegação página a página é considerada uma prática ruim. Não use JSF h:commandLink ou h:commandButton Para navegação simples de página a página. Ambos geram um formulário de postagem que é totalmente desnecessário e sero-amigável para a navegação simples. Em vez de usar h:link ou h:button em vez de. Ele renderiza um link de baunilha simples e obtenha o formulário, respectivamente.

Se você estiver enviando um formulário de postagem de qualquer maneira e a página de resultado é diferente da página do formulário, usando Padrão PRG (pós-redirect-get) é considerado uma boa prática. Você pode usar <redirect/> por esta.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top