目的

管理者パスワードを忘れるとリセットする必要があります。

環境

AEM6.3, AEM6.4

手順

  1. サーバーコマンドプロンプトに次のコマンドを入植します(パスを、AEM segmentstore のパスに置き換えます

    java -jar oak-run-*.jar console path/to/crx-quickstart/repository/segmentstore --read-write :load admin-reset.groovy
    
  2. Oak-run はコンソールモードでローンチする必要があり、コマンドを入力するために、/> を先頭に使用したコンソールにすべきです。うまく作動しない場合は、segmentstore へのパスが正しいことを確認します。

  3. 次のコードを入力します。

    :load admin-reset63.groovy
  4. Enter キーを押すと、スクリプトは自動的に検索をし、管理者のパスワードを変更します。
    出力を確認すると、

    Found admin node : SegmentNodeBuilder{path=/home/users/some/path}
  5. AEM を開始する前に、oak run jar を終了し、コンソールを終了するには、次のように入力します
    :q

  6. AEM を起動します。

追加情報

必要なアイテム:

  • oak-run jar
  • admin-reset.groovy スクリプト(をダウンロード/削除或いはコンテンツから作成)

ダウンロード

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

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー