Activation des sessions persistantes dans un magasin basé sur JSP

Les sessions persistantes sont utiles dans les magasins B2C, même s'il est possible de les activer également dans les magasins de commerce interentreprise. Seuls les emplacements et les noms des fichiers devant être modifiés diffèrent dans les étapes d'activation de sessions persistantes dans les magasins. Dans les deux cas, les formulaires Logon et UserRegistrationAdd du magasin nécessitent des modifications. Les étapes doivent être effectuées pour tous les magasins du site qui nécessitent des sessions persistantes.

Avant de commencer

Vous devez effectuer la tâche Activation de sessions persistantes globales.

Procédure

  1. Dans les formulaires Logon et UserRegistrationAdd de votre magasin, ajoutez le paramètre rememberMe comme indiqué dans l'exemple suivant :
    
    <form method="post" name="Logon" action="Logon" id="Logon">
    ...
    <input type="checkbox" name="rememberMe" value="true">
    Remember Me </input>
    ...
    </form>
    
  2. Remplacez le paramètre URL du formulaire de connexion
    
    <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>
    
    Remarque : Le texte dans l'attribut id est différent d'un magasin à un autre, mais la structure du fragment de code reste homogène pour tous les magasins.
  3. Facultatif : Si vous voulez que l'ID connexion de l'utilisateur partiellement authentifié soit pré-rempli dans la zone de saisie de nom d'utilisateur du formulaire Logon, remplacez le code suivant :
    
    <input size="20" name="logonId" value=""
           id="WC_AccountDisplay_FormInput_logonId_In_Logon_1" />
    

    Au

    
    <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>
    
    Remarque : Le texte dans l'attribut id est différent d'un magasin à un autre, mais la structure du fragment de code reste homogène pour tous les magasins.
  4. Si vous utilisez HCL Commerce version 9.0.0.x, ajoutez le fragment de configuration suivant au fichier de configuration personnalisé Struts pour le module Stores :
    
    <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>
    
    où :
    ID_magasin
    Représente l'ID du magasin pour lequel vous activez la session persistante. Cette valeur se trouve dans la table STORE.
    credAccept
    Est paramétré sur P pour signifier que les utilisateurs enregistrés gardés en mémoire sont habilités à accéder à cette ressource sans s'authentifier, ou sur toute autre valeur (y compris NULL) pour indiquer qu'ils doivent s'authentifier.
  5. Pour la version 9.0.1+, ajoutez le fragment de configuration suivant au fichier de configuration personnalisé Struts de pour le module Stores :
    <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. Mettez à jour les actions pour toutes les URL auxquelles les utilisateurs enregistrés gardés en mémoire ont le droit d'accéder sans s'authentifier, en paramétrant leur propriété credentialsAccepted sur storeID :P.
  7. Mettez à jour la colonne PERSISTENTSESSION dans la table STORE afin d'activer les sessions persistantes :
    1. Ouvrez une session dans votre base de données.
    2. Recherchez l'attribut STORE_ID du magasin pour lequel vous activez les sessions persistantes en entrant l'instruction SQL suivante dans la session :
      SELECT * FROM STORE
      
    3. Entrez l'instruction SQL suivante dans votre base de données :
      UPDATE STORE SET PERSISTENTSESSION = 
      configValue WHERE STORE_ID = 
      store
      
      ID
      
       
      

      où :

      ID_magasin
      Représente l'ID du magasin pour lequel vous activez la session persistante.
      configValue
      Correspond à une valeur de la liste suivante représentant la configuration appropriée :
      0
      La fonction Se souvenir de moi (rememberMe) est désactivée pour les clients enregistrés et les visiteurs. Il s'agit de la valeur par défaut.
      1
      La fonction Se souvenir de moi (rememberMe) est activée pour les clients enregistrés uniquement.
      2
      La fonction Se souvenir de moi (rememberMe) est activée pour les visiteurs uniquement.
      3
      La fonction Se souvenir de moi (rememberMe) est activée pour les clients enregistrés et les visiteurs.