Objetivo

Se ha olvidado la contraseña de administrador y debe restablecerse.

Entorno

AEM 6.4, 6.5

Pasos

  1. Introduzca el siguiente comando en el símbolo del sistema del servidor (reemplace la ruta de acceso por la ruta de acceso al almacén de segmentos de AEM). AEM debe detenerse antes de ejecutar los pasos siguientes:

    java -jar oak-run-*.jar console path/to/crx-quickstart/repository/segmentstore --read-write ":load admin-reset.groovy"
    
  2. Introduzca lo siguiente:

    :load admin-reset63.groovy
  3. Pulse Intro y la secuencia de comandos buscará y cambiará automáticamente la contraseña de administrador a admin.
    Revise el resultado, debe indicar:

    Found admin node : SegmentNodeBuilder{path=/home/users/some/path}
  4. Inicie AEM

Información adicional

Elementos necesarios:

  • oak-run jar
  • admin-reset.groovy script (descargue/elimine el .txt cree valores a partir del contenido)

Descargar

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