Habilitación de sesiones persistentes en una tienda basada en JSP

Las sesiones persistentes son útiles en las tiendas B2C, aunque también es posible habilitar tiendas Directo a B2B con sesiones persistentes. Los pasos para habilitar sesiones persistentes en las tiendas sólo difieren en las ubicaciones y los nombres de los archivos que es necesario modificar. En ambos casos, los formularios Logon de la tienda y UserRegistrationAdd requieren cambios. Los pasos deben realizarse para todas las tiendas del sitio que necesitan sesiones persistentes.

Antes de empezar

Asegúrese de completar la tarea Habilitar sesiones persistentes globales.

Procedimiento

  1. En el formulario Logon (conexión) de la tienda y el formulario UserRegistrationAdd, añada el parámetro rememberMe (recordar mis datos) como se muestra en el ejemplo siguiente:
    
    <form method="post" name="Logon" action="Logon" id="Logon">
    ...
    <input type="checkbox" name="rememberMe" value="true">
    Remember Me </input>
    ...
    </form>
    
  2. Cambie el parámetro de URL del Formulario Logon (conexión)
    
    <input type="hidden" name="URL"
           value="OrderItemMove?page=account&amp;URL=OrderCalculate%3FURL%3DLogonForm"
           id="WC_Accouid="WC_AccountDisplay_FormInput_URL_In_Logon_1" />
    

    A

    
    <c:choose>
        
    <c:when test="${!empty WCparam.URL}">
         <input type="hidden" name="URL" 
                value="${WCparam.URL}"
                id="WC_AccountDisplay_FormInput_URL_In_Logon_1" />
        </c:when>
        <c:otherwise>
            <input type="hidden" name="URL"
                   value="OrderItemMove?page=account&amp;URL=OrderCalculate%3FURL%3DLogonForm"
                   id="WC_AccountDisplay_FormInput_URL_In_Logon_1" />
        </c:otherwise>
    </c:choose>
    
    Nota: El valor del atributo id difiere entre tiendas, pero la estructura del fragmento de código permanece coherente.
  3. Opcional: Si desea que el ID de inicio de sesión del usuario parcialmente autenticado se rellene en el campo de entrada de nombre de usuario del formulario de inicio de sesión, cambie el código siguiente:
    
    <input size="20" name="logonId" value=""
           id="WC_AccountDisplay_FormInput_logonId_In_Logon_1" />
    

    Para:

    
    <c:choose>
        <c:when test="${!empty param.logonId}">
            <input size="20" name="logonId" value="${param.logonId}"
                   id="WC_AccountDisplay_FormInput_logonId_In_Logon_1" />
        </c:when>
    <c:otherwise>
            <input size="20" name="logonId" value=""
                   id="WC_AccountDisplay_FormInput_logonId_In_Logon_1" />
    </c:otherwise>
    </c:choose>
    
    Nota: El valor del atributo id difiere entre tiendas, pero la estructura del fragmento de código permanece coherente.
  4. Si utiliza la versión 9.0.0.x de HCL Commerce, añada el siguiente fragmento de configuración al archivo de configuración personalizado de Struts para el módulo de tiendas:
    
    <global-forwards>
            <forward className="com.ibm.commerce.struts.ECActionForward" 
                     name="RememberMeLogonFormView/
    
    storeID
    " 
                    
    path="/UserArea/AccountSection/AccountDisplay.jsp">
    
                <set-property property="credentialsAccepted"
                              value="
    
    storeID
    :
    credAccept" />
            </forward>
    
    </global-forwards>
    
    
    <action-mappings
    type="com.ibm.commerce.struts.ECActionMapping">         
    
    
           <action path="/RememberMeLogonFormView" 
                    type="com.ibm.commerce.struts.BaseAction">
              <set-property property="https" value="
    
    storeID
    :1" />
              <set-property property="credentialsAccepted" value="
    
    storeID
    :
    credAccept" />
            </action>
    
    
    </action-mappings>
    
    Donde:
    storeID
    Es el ID de la tienda para la que está habilitando la sesión persistente. Este valor se puede encontrar en la tabla STORE.
    acepCred
    P indica que los usuarios registrados cuyos datos se recuerdan están autorizados a acceder a este recurso sin autenticarse o cualquier otro valor (incluido NULL) indica que se deben autenticar.
  5. Para la versión 9.0.1+, añada el siguiente fragmento de configuración al archivo de configuración personalizado de Struts en el módulo de tiendas:
    <action class="com.ibm.commerce.struts.v2.BaseAction" name="RememberMeLogonFormView">
    <param name="https">storeID:1</param>
    <param name="credentialsAccepted">storeID:credAccept</param>
    <result name="RememberMeLogonFormView">
    <param name="location">/UserArea/AccountSection/AccountDisplay.jsp</param>
    <param name="resourceClassName">com.ibm.commerce.command.HttpForwardViewCommandImpl</param>
    </result>
    </action>
  6. Actualice las acciones para todos los URL a los que los usuarios registrados cuyos datos se han recordado están autorizados a acceder sin autenticarse al establecer la propiedad credentialsAccepted en storeID :P.
  7. Actualice la columna PERSISTENTSESSION en la tabla STORE para habilitar la sesión persistente:
    1. Abra una sesión en la base de datos.
    2. Busque el STORE_ID de la tienda para la que está habilitando la sesión persistente entrando la siguiente sentencia de SQL en la sesión:
      SELECT * FROM STORE
      
    3. Entre la sentencia de SQL siguiente en la base de datos:
      UPDATE STORE SET PERSISTENTSESSION = 
      configValue WHERE STORE_ID = 
      store
      
      ID
      
       
      

      Donde:

      storeID
      ID de la tienda para la que está habilitando la sesión persistente.
      valorConfig
      Un valor de la lista siguiente que representa la configuración apropiada:
      0
      La función rememberMe (Recordar mis datos) se ha inhabilitado para los clientes registrados y clientes invitados. Este es el valor predeterminado.
      1
      La función rememberMe (Recordar mis datos) se ha habilitado sólo para los clientes registrados.
      2
      La función rememberMe (Recordar mis datos) se ha habilitado sólo para los clientes invitados.
      3
      La función rememberMe (Recordar mis datos) se ha habilitado para los clientes registrados y clientes invitados.