問題点

AEM 6.2で、LDAP ユーザーが /welcome.html にログインして、アクセスすると、クラシック UI スタートアップスクリーンは、画面の右上の「サインアウト」リンクの横にある、全 LDAP DN を表示します。

原因

これは、AEM 6.2 のクラシック UI の問題です。

解決策

この問題を修正するには、welcome.jsp のオーバーレイを追加して製品コードを変更します。

  1. http://host:port/crx/de/index.jsp に移動し、管理者権限でログインしてください。
  2. /apps を参照し、フォルダー構造 /apps/cq/core/components を作成します。
  3. すべて保存」をクリックします。
  4. /libs/cq/core/components の参照
  5. スタートアップサブノードを右クリックして「コピー」を選択します。
  6. /apps/cq/core/components に戻る
  7. コンポーネントノードを右クリックしてペーストを選択します。
  8. 編集するファイル、/apps/cq/core/components/welcome/welcome.jsp を開きます。
  9. これらの行 [2] の後にこのコード [1] を追加します。
  10. すべて保存」をクリックします。

ユーザーがログインすると、フルネームが表示されます。

[1]

org.apache.jackrabbit.api.security.user.UserManager userManager = resourceResolver.adaptTo(org.apache.jackrabbit.api.security.user.UserManager.class);
org.apache.jackrabbit.api.security.user.Authorizable authorizable = userManager.getAuthorizable(auth.getPrincipal());
if (authorizable.hasProperty("profile/familyName")) {
name = authorizable.getProperty("profile/familyName")[0].getString(); 
}
if (authorizable.hasProperty("profile/givenName")) {
name = authorizable.getProperty("profile/givenName")[0].getString() + ((name.length() > 0)?" " + name:"");
}

[2]

String name = auth == null ? null : auth.getPrincipal().getName();
if (name == null) {
// workaround if user manager service is not ready yet.
name = session.getUserID();
}

ダウンロード

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

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