Ziel

Administratorkennwort wurde vergessen und muss zurückgesetzt werden.

Umgebung

AEM 6.3, AEM 6.4

Schritte

  1. Geben Sie den folgenden Befehl in der Server-Befehlseingabe ein (ersetzen Sie den Pfad durch den Pfad zu Ihrem AEM Segmentstore)

    java -jar oak-run-*.jar console path/to/crx-quickstart/repository/segmentstore --read-write :load admin-reset.groovy
    
  2. Oak-run sollte im Konsolenmodus gestartet werden und eine Konsole mit einem einleitenden /> sollte vorhanden sein, um die Befehle einzugeben. Wenn dies nicht funktioniert, überprüfen Sie, ob der Pfad zum Segmentstore korrekt ist.

  3. Geben Sie folgenden Code ein:

    :load admin-reset63.groovy
  4. Drücken Sie die „Eingabe“ und das Skript wird automatisch das Administratorkennwort finden und mit „admin“ ersetzen.
    Prüfen Sie die Ausgabe, die besagt:

    Found admin node : SegmentNodeBuilder{path=/home/users/some/path}
  5. Geben Sie Folgendes ein, um die Konsole zu schließen, beenden Sie die Oak-geführte jar-Datei, bevor Sie AEM starten können.
    :q

  6. Starten Sie AEM

Weitere Informationen

Erforderliche Elemente:

  • oak-run jar
  • admin-reset.groovy Skript (.txt herunterladen/entfernen oder aus Inhalten erstellen)

Herunterladen

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.");
}

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie