[SPIP4.1] Impossible de modifer le mot de passe des auteurs / Pas de cle secrete disponible

Salut,

comme discuté rapidement sur IRC l’autre jour, je ne peux plus modifier le mot de passe des auteurs existants sur un site. Je peux créer de nouveaux auteurs sans mot de passe, mais impossible de créer un mot de passe ensuite.

Dans le privé, le message d’erreur est :

Impossible de modifier le mot de passe. Veuillez recommencer.

Dans les logs, j’ai :

2022-05-04 11:28:01 XX.XX.XX.XX (pid 47017) :Pri:ERREUR: Pas de cle secrete disponible (fichier config/cle.php absent ?) un des webmestres #1 doit se connecter pour restaurer son backup des cles

alors que le fichier est bien présent et les auteurs déjà existants peuvent se connecter sans problème.

C’est un site qui a changé de dossier : je l’ai installé dans un dossier avec une url de dev puis je l’ai déplacé dans le dossier définitif (sur le même hébergement) accessible via le domaine de prod.
Il y a eu un changement de config PHP entre les 2 mais Sodium 1.0.18 est bien activé sur la nouvelle config (testé en PHP 7.4/8.0/8.1).

J’ai regardé le log https://git.spip.net/spip/spip/commit/c31437f00aafe715de316cb01cbdd2676480990f qui parle de régénérer la clé mais je ne vois pas comment faire (j’ai bien backup_cles dans la base).

Est-ce que je dois régénérer la cle secrète ? Si oui, comment ?

merci

Bonjour,
Est-ce un comportement nouveau en spip 4.1 ou bien un bug?
Un banal changement de dossier (ou de domaine ?) planterait les changements de mot de passe ?

Non non, changer de dossier n’altère pas le comportement (à partir du moment où le fichier config/cles.php suit la base de données qui lui est associée).

Je ne sais pas ce qu’il s’est passé pour @jeanmarie exactement.

Du coup, c’est quoi la démarche pour restaurer mon backup comme indiqué dans le log ?
ou alors il faut que je fasse une autre manip ?

Mais @jeammarie, on peut pas te dire de faire des trucs à l’aveugle, encore moins sur un site en prod…

Il faudrait commencer par comprendre pourquoi ce log alors qu’un fichier config/cles.php existe (s’assurer qu’il est bien lu par SPIP)… Il faudrait peut être dupliquer le site et la bdd ailleurs pour essayer de reproduire et modifier ajouter des logs dans les fichiers… Est-ce que tu reproduis en local le comportement avec ce site et sa bdd déjà ?

Tu as bien 2 clés dans le fichier cles.php ? (secret_du_site et secret_des_auth)

Non, je n’ai que secret_du_site en prod (j’ai bien les 2 en local).

Tu n’étais pas censé avoir déplacé le site avec ce fichier fonctionnel (ie: complet?) ?
Ton répertoire config est accessible en écriture par SPIP ?

Oui, j’ai déplacé l’intégralité du site.

Le dossier /config est en 755 et le fichier /config/cle.php est en 666. C’est un mutu, je n’ai pas touché aux droits.

Pour info, c’est l’hébergement Infomaniak avec Libzip version 0.11.2 (cf ce fil), je ne sais pas si ça joue.

Pour archive, les message d’emile sur IRC hier :

<emile> j'ai aussi le pb avec le fichier cles.php, mais visiblement il n'y a pas de solution pour l'instant !?
<b_b> tu es dans la même situation que jean marie emile ? cad déménagement du site ?
<emile> pas vraiment le même cas, mais il est possible que j'ai n'imp avec ce fichier à un moment
<emile> genre on a une version de test, possible que j'ai copier cles.php du serveur de test au serveur de prod
<emile> mais au final on a la même erreur que sur le forum
<emile> il n'y a pas non plus secret_des_auth dans le fichier
<emile> est-ce qu'il y a moyen de regénérer cette variable ?