Pagina Index.xhtml Session

Vista de la pagina inicial.

Se incluye en <meta> refresh que verifica el tiempo de expiración de la sesión

<meta http-equiv="refresh" content="#{facesContext.externalContext.sessionMaxInactiveInterval};url=#{request.contextPath}/faces/viewExpiredException.xhtml"/>

Código:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:f="http://xmlns.jcp.org/jsf/core"
      xmlns:p="http://primefaces.org/ui">
    <h:head>
        <title>Facelet Title</title>
        <meta http-equiv="refresh" content="#{facesContext.externalContext.sessionMaxInactiveInterval};url=#{request.contextPath}/faces/viewExpiredException.xhtml"/>
    </h:head>
    <f:view>
      <h:body>


          <h:form id="form">
              <p:messages autoUpdate="true" id="growl"/>
              <p:panel header="Login">
                  <p:panelGrid columns="2">
                      <h:outputLabel value="username"/>
                      <p:inputText value="#{loginController.username}"/>
                      <p:outputLabel value="Password"/>
                      <p:password value="#{loginController.password}"/>

                        <p:selectOneMenu id="rol" disabled="false" 
                                                     class="fullWidth required"
                                                     caseSensitive="true"
                                                     filter="true"
                                                     value="#{loginController.rol}"
                                                     requiredMessage="El rol no debe ser nulo" required="true">
                                        <f:selectItem itemLabel="welcome" itemValue="welcome" />
                                        <f:selectItem itemLabel="admin" itemValue="admin" />
                        </p:selectOneMenu>

                      <f:facet name="footer">
                           <p:commandButton value="Login" action="#{loginController.doLogin()}"
                                       update =":form:growl :form:panelToken :form"/>
                      <p:commandButton value="Anular sesion de ese usuario" action="#{loginController.destroyByUser()}"
                                       rendered="#{loginController.userwasLoged}"
                                       update =":form:growl :form:panelToken :form"/>

                      </f:facet>

                  </p:panelGrid>
              </p:panel>

              <p:panel  header="Token" id="panelToken" rendered="#{loginController.userwasLoged}">
                <p:panelGrid  columns="2" >
                    <p:inputText value="#{loginController.myemail}"
                                 placeholder="My Email"
                                 rendered="#{!loginController.tokenwassend}"/>
                        <p:commandButton value="Send Token to my Email"
                                     update=":form:growl :form:panelToken"
                                     rendered="#{!loginController.tokenwassend}"
                                     action="#{loginController.sendToken()}"/>

                      <p:outputLabel value="Token recibido email" rendered="#{loginController.tokenwassend}"/>
                      <p:inputText rendered="#{loginController.tokenwassend}" value="#{loginController.mytoken}"/>

                      <p:commandButton value="Invalidar Sesion por Token" update=":form :form:growl :form:panelToken"
                                       rendered="#{loginController.tokenwassend}"
                                       action="#{loginController.destroyByToken()}"/>
                  </p:panelGrid>
              </p:panel>
              <p:confirmDialog widgetVar="sessionDialog" closable="false" global="true" showEffect="fade" hideEffect="fade"
                  message="Hay una sesion creada en este navegador se procedera a cerrarla.">
     <p:commandButton value="Cerrar" oncomplete="PF('sessionDialog').hide();" 
          update=":form" styleClass="ui-confirmdialog-yes"
              action="#{loginController.invalidarActual()}" />

    </p:confirmDialog>
          </h:form>
    </h:body>  
    </f:view>

</html>

Last updated