Especificar la página de login especifica para una página o grupo de páginas
Hasta ahora podiamos especificar la página de login de la aplicación mediante una expresión EL, ahora además, podemos especificar la página de login para una página concreta o grupo de páginas (wildcards, en el fichero pages.xml).
Para poder hacerlo, se ha añadido el atributo login-view-id en los elementos <page> que podemos configurar en los ficheros .page.xml o en el pages.xml. Ejemplo para una página concreta (ficheros .page.xml):
<?xml version="1.0" encoding="UTF-8"?> <page xmlns="http://jboss.org/schema/seam/pages" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jboss.org/schema/seam/pages http://jboss.org/schema/seam/pages-2.3.xsd" login-required="true" login-view-id="/login_especial.xhtml"> </page>
Ejemplo para una página concreta (ficheros .page.xml) con una expresion EL:
<?xml version="1.0" encoding="UTF-8"?> <page xmlns="http://jboss.org/schema/seam/pages" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jboss.org/schema/seam/pages http://jboss.org/schema/seam/pages-2.3.xsd" login-required="true" login-view-id="#{buenLogin.loginPage}"> </page>
Ejemplo para una página un grupo de páginas (fichero pages.xml):
<?xml version="1.0" encoding="UTF-8"?> <pages xmlns="http://jboss.org/schema/seam/pages" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jboss.org/schema/seam/pages http://jboss.org/schema/seam/pages-2.3.xsd" no-conversation-view-id="/${viewid.pagina.principal}" login-view-id="/${viewid.pagina.login}"> <page view-id="/paginas/*" login-required="true"/> <page view-id="/paginas/admin/*" login-required="true" login-view-id="/login_admin.xhtml"> <restrict>#{s:hasRole('ADMON')}</restrict> </page> </page>
En el ejemplo anterior, tenemos que todas las páginas que estan dentro de la carpeta paginas y sus subcarpetas, tendran la página de login general de la aplicación, exceptuando las páginas que estan dentro de la carpeta paginas/admin que tendrán a /login_admin.xhtml como página de login.
Ejemplo para una página un grupo de páginas (fichero pages.xml) con una expresion EL:
<?xml version="1.0" encoding="UTF-8"?> <pages xmlns="http://jboss.org/schema/seam/pages" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jboss.org/schema/seam/pages http://jboss.org/schema/seam/pages-2.3.xsd" no-conversation-view-id="/${viewid.pagina.principal}" login-view-id="/${viewid.pagina.login}"> <page view-id="/paginas/*" login-required="true"/> <page view-id="/paginas/admin/*" login-required="true" login-view-id="#{loginBean.adminLogin"> <restrict>#{s:hasRole('ADMON')}</restrict> </page> </page>
El orden de prioridad del atributo login-view-id, depende de la cercania de la ruta a la página. Por lo tanto la ruta más cercana tiene mayor prioridad, siendo el definido en el fichero .page.xml el de mayor prioridad.
— JUAN MIGUEL BERNAL GONZALEZ 09/03/2020 13:19
- fdw2.0/fundeweb2.0/gt/modificaciones_jboss_seam/pagina_login.txt
- Última modificación: 09/03/2020 13:42
- por JUAN MIGUEL BERNAL GONZALEZ