27 de julio de 2011

Change COOKIE_KEY / Restart Passwords... in Prestashop

Para cambiar la key de la cookie de Prestashop

1. Crear fichero php: /generate_cookie.php
<?php

require_once './classes/Tools.php';

$newkey = ToolsCore::passwdGen(56);
$newpass = md5($newkey."PASSWORD");

print "NEW COOKIE KEY: $newkey<br>";
print "UPDATE ps_employee SET passwd = '$newpass' WHERE id_employee = 1;<br>";
Este script generá una cookie nueva y su password para el administrador.

2. Configurar PASSWORD adecuadamente.

3. Ejecutar el fichero en el navegador. Para obtener nueva key-cookie.
NEW COOKIE KEY: WjgztSZ7NoQwbP2X6aFuynOzahFLLhUfte8rV9EhavBMze1jCQJJv6ON
UPDATE ps_employee SET passwd = '288570e272dc5da49e48abbcb296a068' WHERE id_employee = 1;
4. Actualizar el fichero config/settings.inc.php con la nueva cookie:
define('_COOKIE_KEY_', 'WjgztSZ7NoQwbP2X6aFuynOzahFLLhUfte8rV9EhavBMze1jCQJJv6ON');
5. Actualizar la contraseña del administrador en BD ejecutando el DDL.
UPDATE ps_employee SET passwd = '288570e272dc5da49e48abbcb296a068' WHERE id_employee = 1;

Restablecer la contraseña de un usuario de Prestashop

1. Crear el fichero php: /restart_password.php
$key = 'WjgztSZ7NoQwbP2X6aFuynOzahFLLhUfte8rV9EhavBMze1jCQJJv6ON';
$idEmployee = 1;
$newpass = md5($key."PASSWORD");
print "UPDATE ps_employee SET passwd = '$newpass' WHERE id_employee = $idEmployee;<br>";
2. Configurar $key (está en el fichero: config/settings.inc.php), $idEmployee y PASSWORD adecuadamente.

3. Ejecutar el script.

4. Actualizar la contraseña del usuario ($idEmployee) en BD ejecutando el DDL.

Referencias:
http://www.prestashop.com/forums/topic/22045-solved-changed-server-cant-login/

22 de julio de 2011

HTTP Authentication with SOAP

Ciertos web-service en SOAP tienen autenticación HTTP. Por lo que debemos suministrar el usuario y el password en las cabeceras de la petición.

Ahora veremos como configurar el SoapUI para hacer este tipo de peticiones y posteriormente como realizarlas en una aplicación PHP.

SoapUI

Primero asegurarnos que la opción Authenticate Preemptively está marcada, de esta forma enviamos user / password en los requests. La encontramos en: File > Preferences > HTTP Settings

 File > Preferences > HTTP Settings > Authenticate Preemptively
Ahora, desplegamos la pestaña Aut en la ventana de petición y rellenamos usuario y password.

Indicando Usuario y Password en la petición Soap

PHP

En las peticiones SOAP implementadas en PHP, añadimos las siguientes opciones en la creación del cliente Soap.

$client = new SoapClient('http://tuweb/wsdl', array(
 'login' => 'USER', 
 'password' => 'PASSWORD')
);
$result = $client->METODO();

Referencias:
http://www.soapui.org/
http://www.php.net/manual/es/soapclient.soapcall.php