Objectif

Vous oubliez le mot de passe administrateur et il doit être réinitialisé.

Environnement

AEM 6.3, AEM 6.4

Étapes

  1. Saisissez la commande suivante à l’invite de commande du serveur (remplacez le chemin par le chemin d’accès à votre entrepôt de segments AEM) :

    java -jar oak-run-*.jar console path/to/crx-quickstart/repository/segmentstore --read-write :load admin-reset.groovy
    
  2. Oak-run doit être lancé depuis le mode console, il doit y avoir une console avec un premier /> pour saisir les commandes. Si cela ne fonctionne pas, vérifiez que le chemin d’accès à l’entrepôt de segments est correct.

  3. Entrez le code suivant :

    :load admin-reset63.groovy
  4. Appuyez sur Entrer et le script trouvera automatiquement le mot de passe administrateur et le transformera en administrateur.
    Consultez le résultat, il indique :

    Found admin node : SegmentNodeBuilder{path=/home/users/some/path}
  5. Saisissez la commande suivante pour quitter la console, arrêtez oak run jar avant de pouvoir démarrer AEM
     :q 

  6. Démarrez AEM.

Informations supplémentaires

Éléments nécessaires :

  • oak-run jar
  • Script admin-reset.groovy (téléchargez ou supprimez .txt ou bien créez à partir du contenu)

Telechargement

import org.apache.jackrabbit.oak.spi.security.user.util.PasswordUtil
import org.apache.jackrabbit.oak.spi.commit.CommitInfo
import org.apache.jackrabbit.oak.spi.commit.EmptyHook

class Global {
    static adminNode = null;
}

void findAdminNode(ub) {
    if (ub.hasProperty("rep:principalName")) {
        if ("rep:principalName = admin".equals(ub.getProperty("rep:principalName").toString())) {
            Global.adminNode = ub;
        }
    }
    ub.childNodeNames.each { it -> 
        if (Global.adminNode == null) {
            findAdminNode(ub.getChildNode(it));
        }
    }
}

ub = session.store.root.builder();
findAdminNode(ub.getChildNode("home").getChildNode("users"));

if (Global.adminNode) {
    println("Found admin node: " + Global.adminNode.toString());
    Global.adminNode.setProperty("rep:password", PasswordUtil.buildPasswordHash("admin"));
    session.store.merge(ub, EmptyHook.INSTANCE, CommitInfo.EMPTY);
} else {
    println("Could not find admin node.");
}

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne