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
Procedimiento
-
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>
-
Cambie el parámetro de URL del Formulario Logon (conexión)
<input type="hidden" name="URL" value="OrderItemMove?page=account&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&URL=OrderCalculate%3FURL%3DLogonForm" id="WC_AccountDisplay_FormInput_URL_In_Logon_1" /> </c:otherwise> </c:choose>
Nota: El valor del atributoid
difiere entre tiendas, pero la estructura del fragmento de código permanece coherente. - 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 atributoid
difiere entre tiendas, pero la estructura del fragmento de código permanece coherente. -
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 (incluidoNULL
) indica que se deben autenticar.
-
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>
-
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
. -
Actualice la columna PERSISTENTSESSION en la tabla STORE para habilitar la sesión persistente: