Pregunta

Estoy desarrollando un sitio con Seam 3 y JBoss 7. Estoy usando Seam Security y JSF. La página principal del sitio tiene los controles de inicio de sesión. Cuando el usuario ingresa a sus credenciales, es redirigido a su página de usuario "/MySC".

Pero si el usuario iniciado solo escribe la raíz del dominio "/" llega a la página principal. Lo que quiero es que cuando el usuario esté iniciado, no debería poder acceder a la página principal nuevamente. Si solicita ir a la página principal o ingresar a la raíz del dominio en la barra de ubicación, quiero que sea redirigido a "/mysc". ¿Cómo puedo hacer eso?

¿Fue útil?

Solución

Puede usar la regla de navegación de costura que es bastante poderosa ... la declara en Page.xml ... puede declarar la regla de navegación condicional allí.

<page view id="/view.xhtml">
      <navigation from-action="#{user.login}">
           <rule if-outcome="successfull"><redirect view-id="/MySC.xhtml"/>
           <message severity="Info">
                Your login is successfull!.
           </message>
      </navigation>
</page>

Otros consejos

Recomiendo un pequeño rediseño de la estructura de la página: hacer la página principal /start la página que un usuario autenticado puede ver y redirigir a /login Si el usuario aún no está autenticado.

Este diseño no solo es más limpio en términos de separación de las preocupaciones (le permite agrupar la lógica de autenticación en una carpeta distinta), sino que también resuelve el problema de mezclar la raíz de contexto y la página de autenticación.

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