Écrire une réponse

Veuillez écrire votre message et l'envoyer

Cliquez dans la zone sombre de l'image pour envoyer votre message.

Retour

Résumé de la discussion (messages les plus récents en premier)

bigs38
2025-11-03 12:57:14

Je me suis dit qu'avec l'authentification externe cela allait peut-être poser problème, mais du coup c'est tout bon ! Merci pour les explications.

Linty
2025-11-03 10:46:20

Je n'ai plus qu'un avertissement sur la page des utilisateurs :

"You have specified $conf['webmaster_id'] in your local configuration file, this parameter in deprecated, please remove it!"

Depuis Piwigo 15, le webmaster principal (main user) n'est plus géré via une $conf dans localFileEditor mais directement dans la popin utilisateur, en cliquant sur la couronne en haut à gauche de la popin.

Il faut retirer cette ancienne $conf depuis le plugin localFileEditor, pour faire disparaître le message.

bigs38
2025-11-02 17:57:01

J'ai effectué la modification dans user_list.php et tout est rentré dans l'ordre.

Je n'ai plus qu'un avertissement sur la page des utilisateurs :

"You have specified $conf['webmaster_id'] in your local configuration file, this parameter in deprecated, please remove it!"

Un grand merci à vous tous pour votre aide !

Linty
2025-11-02 13:36:48

Bonjour,

Comme le dit Nicolas, le problème vient bien de admin/user_list.php dans la query vers la ligne 114. Cela vient en plus de moi lors de la refonte de la popin utilisateur ([Github] Piwigo commit 27cd5cde), désolé pour la gêne occasionné et je vais régler ça!

Le fix si vous voulez faire la correction dés maintenant en attendant une nouvelle version:
admin/user_list.php - ligne 114 à 119.

Code:

$query = '
SELECT
    '.$conf['user_fields']['username'].' AS username
    FROM '.USERS_TABLE.'
    WHERE '.$conf['user_fields']['id'].' = '.$conf['webmaster_id'].'
;';
nicolas
2025-11-02 10:54:04

bigs38 a écrit:

Les nouveaux utilisateurs ne peuvent s'enregistrer que dans Wordpress du coup, si je comprends bien, pas de soucis au niveau du password_hash.

Cela fait un moment que je ne me suis pas occupé de mon site et en effet je ne peux plus accéder à la liste des utilisateurs dans Piwigo j'ai l'erreur suivante :
Uncaught mysqli_sql_exception: Unknown column 'username' in 'SELECT....

De ce fait je ne peux plus donner les droits sur les albums.

Je pense qu'il va falloir que je revois tout cela.

Ce n'est pas de ton fait. Dans le fichier admin/user_list.php vers la ligne 114, la requête sql utilise username au lieu de $conf['user_fields']['username']. Tu peux soumettre un bug pour que ce soit éventuellement corrigé.

bigs38
2025-11-02 09:48:00

Les nouveaux utilisateurs ne peuvent s'enregistrer que dans Wordpress du coup, si je comprends bien, pas de soucis au niveau du password_hash.

Cela fait un moment que je ne me suis pas occupé de mon site et en effet je ne peux plus accéder à la liste des utilisateurs dans Piwigo j'ai l'erreur suivante :
Uncaught mysqli_sql_exception: Unknown column 'username' in 'SELECT....

De ce fait je ne peux plus donner les droits sur les albums.

Je pense qu'il va falloir que je revois tout cela.

nicolas
2025-11-02 09:10:29

bigs38 a écrit:

Merci beaucoup pour ta réponse, tout fonctionne correctement à présent !

Je pense qu'il faut aussi modifier la conf pour la fonction de hashage car password_hash a besoin de deux paramètres.
D'autre part, tu ne peux pas lister les utilisateurs dans Piwigo mais j'imagine que tu le savais.

bigs38
2025-11-02 08:41:57

Merci beaucoup pour ta réponse, tout fonctionne correctement à présent !

nicolas
2025-11-02 08:37:07

Tu n'étais pas loin.

Code:

$conf['password_verify'] = function ($plainPassword, $hashedPassword) {
    $password_to_verify = base64_encode(hash_hmac('sha384', $plainPassword, 'wp-sha384', true));

    return password_verify($password_to_verify, substr($hashedPassword, 3));
};
bigs38
2025-11-02 08:31:06

Apparemment Wordpress utilise maintenant un pré-hachage à l'aide de HMAC-SHA384 avec une clé wp-sha384. Ce pré-hachage permet de s'affranchir de la limite de 72 octets imposée par bcrypt pour le mot de passe.

Voici ce que j'ai trouvé sur le net :

Code:

// Use SHA-384 to retain entropy from a password that's longer than 72 bytes, and a `wp-sha384` key for domain separation.
$password_to_hash = base64_encode( hash_hmac( 'sha384', trim( $password ), 'wp-sha384', true ) );

// Add a prefix to facilitate distinguishing vanilla bcrypt hashes.
return '$wp' . password_hash( $password_to_hash, $algorithm, $options );



// Check the password using the current prefixed hash.
    $password_to_verify = base64_encode( hash_hmac( 'sha384', $password, 'wp-sha384', true ) );
    $check              = password_verify( $password_to_verify, substr( $hash, 3 ) );

J'ai essayé de faire des tests en tenant compte du pré-hachage sans résultats. Mes compétences en programmation étant assez limitées.

bigs38
2025-11-01 19:34:56

Auriez-vous une piste permettant d'utiliser bcrypt avec l'authentification externe ? Parce-que là, je sèche...

bigs38
2025-10-24 13:03:06

Merci beaucoup pour vos réponses.
En effet, je pense que vous avez mis le doigt sur le problème !

Ce matin, j'ai fait quelques tests afin d'adapter la conf de Piwigo pour accepter la technique de hachage des mots de passes utilisés par Wordpress 6.8.3.

Après divers recherches sur les forums et plusieurs essais voici le dernier code inséré dans la conf locale de Piwigo :

Code:

$conf['password_hash'] = function( $s ) { return password_hash($s); };
$conf['password_verify'] = 'pwg_password_verify';

- Si je créé un nouveau compte dans Wordpress, il ne peut pas se connecter à Piwigo.
- Dans le champs user_pass le mot de passe commence par $wp$

Mais pour l'instant, sans résultat...

Emilie35
2025-10-24 11:26:17

Salut bigs38,

Je confirme ce que dit ddtddt : WordPress a récemment modifié la gestion du hash des mots de passe, notamment avec certaines versions majeures (surtout depuis WP 6.6). Si ton site WordPress a été mis à jour récemment, il est probable que l’algorithme utilisé dans la table user_pass ne soit plus reconnu par Piwigo via l’auth externe.

Pour tester, tu peux :
– Créer un nouvel utilisateur test directement dans WordPress, lui attribuer un mot de passe simple et voir si l’authentification Piwigo passe.
– Si ça ne marche toujours pas, désactiver temporairement l’auth externe et essayer de te reconnecter avec un compte natif Piwigo (juste pour vérifier que le souci ne vient pas d’un autre paramètre).
– Et vérifier dans ta base que le champ user_pass contient bien un hash en $P$ (formule classique WP).

Si tu veux pousser plus loin, tu peux aussi comparer le plugin password-hash de WordPress et voir s’il existe une fonction de compatibilité PHP pour l’auth externe.

Tiens-nous au courant, je suis curieuse de savoir si c’est bien lié à la mise à jour WP ou à un changement côté Piwigo.

ddtddt
2025-10-24 06:17:09

Bonjour,

As tu regardé du coté de wordpress si la dernière mise à jour n'a pas changé leur manière d'encoder le mot de passe ?

bigs38
2025-10-23 14:38:47

Merci pour ta réponse rapide !

J'avais déjà essayé plusieurs versions de PHP (que je viens de mettre en 8.3 pour être sûr)

Je viens de réinstaller manuellement Piwigo (car je n'accède plus à l'interface....)

-> Malheureusement j'ai toujours le même résultat

Pied de page des forums

Propulsé par FluxBB