Projet

Général

Profil

Bug #72264

secret_key différente pour le même hobo, entre le hobo "multicollectivité" et le hobo "local"

Ajouté par Frédéric Péters il y a plus d'un an. Mis à jour il y a plus d'un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
12 décembre 2022
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

hobo=> select base_url, secret_key from hobo_metropole_example_net.environment_hobo;
                         base_url                          |                secret_key
-----------------------------------------------------------+------------------------------------------
 https://hobo-commune.example.net/                         | &^o40ygt@=1sjl^xq$9rry_wf$0ehl6rq1!41r-%ui)#)kz!^-
 https://hobo-metropole.example.net/                       | 57fc0f3ffc8baacab70b9afd9bf57d98712cb9f6

hobo=> select base_url, secret_key from hobo_commune_example_net.environment_hobo;
                         base_url                          |                     secret_key
-----------------------------------------------------------+----------------------------------------------------
 https://hobo-commune.example.net/                         | ebf2cb62827cf3eac3758acab805112edba7d2bd
 https://hobo-metropole.example.net/                       | 57fc0f3ffc8baacab70b9afd9bf57d98712cb9f6

Ça amène que les appels de l'hobo communal au wcs communal échouent.

Ça se corrige en copiant la clé de la db de l'hobo commune vers l'hobo métropole (puis, peut-être, en forçant un reprovisionnning des applications via une manip quelconque).


Fichiers

Révisions associées

Révision 7cece8ce (diff)
Ajouté par Frédéric Péters il y a plus d'un an

misc: make sure identical hobo in different db have the same key (#72264)

Historique

#4

Mis à jour par Frédéric Péters il y a plus d'un an

Voilà le patch assure qu'au déploiement initial les mêmes valeurs se trouvent partout.

(j'ai abandonné l'idée de réparer automatiquement l'existant).

#5

Mis à jour par Thomas Noël il y a plus d'un an

  • Statut changé de Solution proposée à Solution validée
#6

Mis à jour par Frédéric Péters il y a plus d'un an

  • Statut changé de Solution validée à Résolu (à déployer)
commit 7cece8ce443917d5c0b919b735cd863c9b2e545d
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Fri Dec 16 16:03:43 2022 +0100

    misc: make sure identical hobo in different db have the same key (#72264)
#7

Mis à jour par Transition automatique il y a plus d'un an

  • Statut changé de Résolu (à déployer) à Solution déployée
#8

Mis à jour par Frédéric Péters il y a plus d'un an

Pour corriger, (à exécuter sur le tenant de l'instance mutualisatrice),

import urllib.parse

from django.db import connection
from hobo.environment.models import Hobo
from hobo.multitenant.middleware import TenantMiddleware

base_tenant = connection.get_tenant()

tenants = {}

for hobo in Hobo.objects.all():
    if len(hobo.secret_key) != 40:
        tenants[hobo.base_url] = None

for key in list(tenants.keys()):
    domain = urllib.parse.urlparse(key).netloc
    tenant = TenantMiddleware.get_tenant_by_hostname(domain)
    connection.set_tenant(tenant)
    tenants[key] = Hobo.objects.filter(base_url=key).first().secret_key

connection.set_tenant(base_tenant)

for key, value in tenants.items():
    Hobo.objects.filter(base_url=key).update(secret_key=value)
#9

Mis à jour par Thomas Noël il y a plus d'un an

Frédéric Péters a écrit :

Pour corriger, (à exécuter sur le tenant de l'instance mutualisatrice),
[...]

Puis "forcer un redéploiement des applications via une manip quelconque", genre sur https://hobo.instance-mutualisatrice.fr/sites/ cliquer sur le bouton «Enregistrer» d'un sous-hobo ou n'importe quoi d'autre.

#11

Mis à jour par Transition automatique il y a environ un an

Automatic expiration

Formats disponibles : Atom PDF