Pregunta

Estoy haciendo una aplicación web en la que ciertas páginas son de acceso protegido. He creado un reino JDBC seguridad en GlassFish para esto, y la autenticación de forma usada (similar al método describe aquí )

Estoy usando Navegación reglas para redirigir al usuario a las áreas de seguridad de la página web:

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

Esto funciona bien. Pero si me salto la etiqueta de redireccionamiento en la navegación de los casos, la URL de la página no cambia. Y en ese caso, un usuario no autenticado es capaz de acceder a la página segura.

¿Cuál es la mejor manera de hacer esto? Asegurarse de que la página se redirige en lugar de reenviado es lo suficientemente bueno? ¿Debo escribir código en cada página segura de que comprueba si el usuario está conectado o no?

¿Fue útil?

Solución

El uso de la POST para la navegación de página a página se considera una mala práctica. No utilice h:commandLink JSF o h:commandButton Para una navegación sencilla de página a página. Tanto genera un formulario de envío que es totalmente innecesario y SEO-hostil para una navegación sencilla. utilizar Más bien h:link o h:button su lugar. Se hace un enlace de vainilla GET simple y forma GET respectivamente.

Si está enviando un formulario de envío de todos modos y la página de resultados es diferente de la página de formulario, y luego usando PRG (post-redirección-GET) patrón se considera una buena práctica. Se puede utilizar para este <redirect/>.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top