URL ResetPassword

Restablece o actualiza contraseñas de usuarios. Este mandato funciona independientemente de la modalidad de autenticación: Base de datos, LDAP o tercero.

Los usuarios siguientes pueden utilizar la función ResetPassword:

  1. Los administradores y usuarios registrados de la tienda para actualizar sus propias contraseñas, mientras están autenticados.
  2. Los usuarios registrados que desean conectarse pero que han olvidado su contraseña. Pueden utilizar este mandato para restablecer la contraseña sin conectarse. Hay tres métodos que puede utilizar para generar un inicio de sesión temporal para el usuario:
    HCL Commerce Version 9.1.7.0 or laterImportante: A partir de la versión 9.1.7.0, los dos primeros métodos están obsoletos y se eliminarán en una futura versión.
    1. Se envía por correo electrónico al usuario registrado una contraseña generada aleatoriamente. Este método está obsoleto.
    2. Un código de validación largo que se basa en su ID y otra información se envía por correo electrónico al usuario. A continuación, el usuario introduce el código de validación junto con una nueva contraseña para actualizar sus credenciales de acceso. Este método está obsoleto.

      Para obtener más información, consulte Configuración Restablecer contraseña para utilizar códigos de validación largos..

    3. HCL Commerce Version 9.1.7.0 or laterUn código de validación largo no siempre es práctico. Por ejemplo, cuando un usuario está trabajando desde un teléfono móvil. En su lugar, se envía un código de validación numérico corto. Este es el método recomendado para utilizarlo con HCL Commerce la versión 9.1.7.0 y posterior.

      Para obtener más información, consulte Configuración Restablecer contraseña para utilizar códigos de validación cortos..

      Como se ha señalado, los métodos anteriores, aunque están disponibles temporalmente, acabarán por desactivarse.

Utilice este URL con SSL (Secure Sockets Layer) para asegurarse de que la contraseña de inicio de sesión y la información personal están cifradas. Para hacer esto, escriba el URL utilizando el protocolo seguro HTTPS.

Aviso: Utilice solo HTTP POST con este URL. Al utilizar HTTP GET, las contraseñas se pueden registrar en el historial de navegador o en los registros de servidor web.

Estructura de URL

http:// host_name/path/
El nombre completo del servidor HCL Commerce y la vía de acceso de configuración

Valores de parámetros

langId
Establece o restablece el idioma preferido durante el tiempo que dura la sesión; los idiomas soportados para una tienda se encuentran en la tabla STORELANG
URL
El URL al que se debe llamar cuando el mandato se completa satisfactoriamente.
storeId
El número de referencia de una tienda
reLogonURL
El URL al que se redirigirá el mandato ResetPassword en el caso de una condición de error
logonId
El ID de conexión del usuario cuya contraseña se ha de restablecer
challengeAnswer
Respuesta a una pregunta de identificación; que se utiliza para confirmar la identidad del usuario
logonPassword
La nueva contraseña del usuario
logonPasswordOld
La contraseña actual del usuario
logonPasswordVerify
La contraseña verificada del usuario, que debe ser idéntica a logonPassword
validationCode
El código generado aleatoriamente que se envía por correo electrónico al usuario registrado.

Deprecated featureEjemplo 1: Restablecer contraseña mientras no se está autenticado (envía por correo electrónico una contraseña temporal)

Nota: Esta opción está obsoleta con la versión 9.1.7.0 y se eliminará en una futura versión del producto.
Este ejemplo restablece una contraseña proporcionando el ID de conexión y la respuesta para identificación para usuarios registrados que hayan olvidado la contraseña. Tenga en cuenta que, puesto que han olvidado la contraseña, deben conectarse como invitados:
https://myhostname/webapp/wcs/stores/servlet/ResetPassword?URL=basemall.jsp
    &logonId=a&challengeAnswer=a

Si el usuario es un invitado, el mandato verifica que la respuesta suministrada a la pregunta para identificación coincida con la que existe en la base de datos. Si las respuestas coinciden, se genera una contraseña arbitraria, se actualiza la base de datos y se envía por correo electrónico la contraseña al usuario (identificado por el valor del parámetro logonId).

Ejemplo 2: Restablecer contraseña cuando el usuario está autenticado

Este ejemplo restablece una contraseña especificando las contraseñas nueva y antigua, para los usuarios registrados que desean actualizar sus contraseñas:


    https://myhostname/webapp/wcs/stores/servlet/ResetPassword?URL=basemall.jsp   
&logonPasswordOld=a&logonPassword=b&logonPasswordVerify=b

Si el usuario es un cliente registrado, o un administrador, verifica que la antigua contraseña sea correcta y que la nueva contraseña coincida con la contraseña verificada. También verifica que la contraseña cumple con los requisitos definidos por la política de contraseñas de este usuario. Si se satisfacen todas las condiciones, actualiza la base de datos con la nueva contraseña.

Ejemplo 3: Restablecer contraseña mientras no se está autenticado (envía por correo electrónico un código de validación)

Este ejemplo requiere dos pasos:
  1. Restablece una contraseña proporcionando el ID de conexión y la respuesta para identificación para usuarios registrados que han olvidado la contraseña.
    Nota: Puesto que han olvidado la contraseña, deben conectarse como invitados:
    https://myhostname/webapp/wcs/stores/servlet/ResetPassword?logonId=jsmith&challengeAnswer=TheRedFoxFlies&URL=LogonForm

    Si el usuario es un invitado, el mandato verifica que la respuesta suministrada a la pregunta para identificación coincida con la que existe en la base de datos. Si las respuestas coinciden, se genera un código de validación y se envía por correo electrónico el código al usuario.

  2. Introduce el código de validación, la nueva contraseña y la verificación de la nueva contraseña. Este paso debe realizarse dentro del periodo de tiempo que se especifica en ResetPasswordGuestCmdImpl.getExpiryPeriod() que toma el valor predeterminado de 30 minutos.
    https://myhostname/webapp/wcs/stores/servlet/ResetPassword?validationCode=289213&logonPassword=Just4Fun!&logonPasswordVerify=Just4Fun!&URL=LogonForm
    

Comportamiento

  • Este mandato llama a los mandatos de tarea siguientes:
  • El mandato comprueba los parámetros necesarios. Si faltan parámetros o no son válidos, establece una de las tareas de error con los códigos de error apropiados.
  • Si el usuario registrado está conectado como cliente invitado, verifica que la respuesta suministrada a la pregunta para identificación coincida con la que existe en la base de datos. Si las respuestas coinciden, se genera una contraseña arbitraria, se actualiza la base de datos y se envía por correo electrónico la contraseña al cliente (identificado por el valor del parámetro logonId).
    Nota: Opcionalmente, en lugar de ello se puede configurar el mandato para enviar por correo electrónico un código de validación. Entonces el usuario especificará el código de validación junto con una nueva contraseña para actualizar su contraseña.
  • Si el usuario es un cliente registrado, o un administrador, y está conectado actualmente, verifica que la antigua contraseña sea correcta y que la nueva contraseña coincida con la contraseña verificada. También verifica que la contraseña cumple con los requisitos definidos por la política de contraseñas de este usuario. Si se satisfacen todas las condiciones, actualiza la base de datos con la nueva contraseña.
  • Cuando el mandato se completa satisfactoriamente, llama al URL especificado.
  • Los usuarios que hayan recibido una contraseña generada aleatoriamente mediante el mandato ResetPassword y se autentifiquen en la base de datos de HCL Commerce, tendrán que cambiar la contraseña después de la primera conexión por esta contraseña nueva.

Condiciones de excepción

Al producirse una condición de error, si especifica un URL de error en el parámetro reLogonURL, el mandato ResetPassword se redirige a ese URL y se coloca un código de error en la petición. De lo contrario, si no utiliza el parámetro reLogonURL, el mandato generará una excepción ECApplicationException y redirigirá a una vista de error que dependerá de la identidad del usuario. Puede obtener el código de error utilizando la clase ErrorDataBean.

Si un parámetro obligatorio se omite o es incorrecto, el mandato ResetPassword establece uno de los códigos de error siguientes, en función de la identidad del solicitante. Estos códigos de error se añaden al URL de error especificado si utiliza el parámetro reLogonURL:

Vista de error en base a la identidad:

Usuario registrado
ResetPasswordRegisterErrorView
Usuario invitado
ResetPasswordGuestErrorView

Condiciones de error y códigos de error asociados:

Solicitante del mandato Condición de error y código de error asociado
Usuario invitado o conectado.
Falta el parámetro URL.
ECSecurityConstants.ERR_MISSING_REDIRECTURL (1000)
Nota: En este caso, el mandato se redirigirá a la vista de error ResetPasswordView.
Invitado
Falta el parámetro logonId.
ECSecurityConstants.ERR_MISSING_LOGONID (2000)
El parámetro logonId no pertenece a un usuario registrado válido.
ECSecurityConstants.ERR_INVALID_LOGONID (2010)
La respuesta para identificación no se ha suministrado.
ECSecurityConstants.ERR_MISSING_CHALLENGEANSWER (1010)
La respuesta para identificación suministrada no es correcta.
ECSecurityConstants.ERR_INVALID_CHALLENGEANSWER (1020)
Falta la dirección de correo electrónico del logonId suministrado.
ECSecurityConstants.ERR_MISSING_EMAIL (2100)
La cuenta de usuario está inhabilitada.
ECSecurityConstants.ERR_DISABLED_ACCOUNT (2110)
El código de validación es incorrecto
ECSecurityConstants.ERR_INVALID_VALIDATION_CODE (2190)
El código de validación ha caducado
ECSecurityConstants.ERR_EXPIRED_VALIDATION_CODE (2195)
Falta el parámetro logonPassword.
ECSecurityConstants.ERR_MISSING_NEWPASSWORD (2060)
Falta el parámetro logonPasswordVerify.
ECSecurityConstants.ERR_MISSING_NEWPASSWORDVERIFY (2070)
Usuario conectado
Falta el parámetro logonPasswordOld.
ECSecurityConstants.ERR_MISSING_OLDPASSWORD (2040)
Falta el parámetro logonPassword.
ECSecurityConstants.ERR_MISSING_NEWPASSWORD (2060)
Falta el parámetro logonPasswordVerify.
ECSecurityConstants.ERR_MISSING_NEWPASSWORDVERIFY (2070)
Los parámetros logonPassword y logonPasswordVerify no coinciden.
ECSecurityConstants.ERR_MISMATCH_PASSWORDS (2080)
El usuario conectado ha suministrado una contraseña antigua incorrecta.
ECSecurityConstants.ERR_INVALID_OLDPASSWORD (2050)
La contraseña es demasiado corta.
ECSecurityConstants.ERR_MINIMUMLENGTH_PASSWORD (2200)
El número de caracteres consecutivos de este tipo supera el máximo permitido.
ECSecurityConstants.ERR_MAXCONSECUTIVECHAR_PASSWORD (2210)
El número de apariciones de caracteres de este tipo supera el máximo permitido.
ECSecurityConstants.ERR_MAXINTANCECHAR_PASSWORD (2220)
La contraseña no contiene el número mínimo de letras obligatorio.
ECSecurityConstants.ERR_MINIMUMLETTERS_PASSWORD (2230)
La contraseña no contiene el número mínimo de dígitos obligatorio.
ECSecurityConstants.ERR_MINIMUMDIGITS_PASSWORD (2240)
La contraseña no puede coincidir con el ID de usuario.
ECSecurityConstants.ERR_USERIDMATCH_PASSWORD (2250)
La contraseña no puede ser igual que la contraseña anterior.
ECSecurityConstants.ERR_REUSEOLD_PASSWORD (2260)
La cuenta de usuario está inhabilitada.
ECSecurityConstants.ERR_DISABLED_ACCOUNT (2110)

El manejador de errores es ECConstants.EC_ERROR_CODE.