URL の外部化

AEMで、 Externalizer は、リソースパス ( 例えば、 /path/to/my/page) を外部 URL や絶対 URL( 例えば、 https://www.mycompany.com/path/to/my/page) を追加する必要があります。

インスタンスが Web レイヤーの背後で実行されている場合、自身の外部向け URL がわかりません。また、リンクをリクエストスコープの範囲外で作成する必要がある場合があります。これらの理由で、このサービスは、そのような外部 URL を設定して組み立てるための一元化された場所を提供します。

このページでは、Externalizer サービスの設定方法と使用方法について説明します。詳しくは、関連する Javadoc を参照してください。

Externalizer サービスの設定

この Externalizer サービスを使用すると、リソースパスにプログラム的にプレフィックスを付けるために使用できる複数のドメインを一元的に定義できます。各ドメインは、プログラムによってドメインを参照する際に使用される一意の名前で識別されます。

Externalizer サービスのドメインマッピングを定義するには:

  1. で設定マネージャーに移動します。 ツール​を、 Web コンソール​または、 https://<host>:<port>/system/console/configMgr.

  2. Day CQ Link Externalizer」をクリックして設定ダイアログボックスを開きます。

    メモ

    この設定に直接アクセスするためのリンクは https://<host>:<port>/system/console/configMgr/com.day.cq.commons.impl.ExternalizerImpl です。

    chlimage_1-44

  3. ドメインマッピングの定義:マッピングは、ドメイン、スペースおよびドメインを参照するコード内で使用できる一意の名前で構成されます。

    <unique-name> [scheme://]server[:port][/contextpath], 条件:

    • スキーム は通常、http または https ですが、ftp などでもかまいません。必要に応じて、https を使用して https リンクを強制します。URL の外部化を要求する際に、クライアントコードがスキームを上書きしない場合に使用されます。
    • server はホスト名です(ドメイン名または IP アドレスを指定できます)。
    • ポート (オプション)はポート番号です。
    • contextpath (オプション)は、AEMが別のコンテキストパスの下に web アプリとしてインストールされている場合にのみ設定されます。

    例:production https://my.production.instance

    次のマッピング名は事前定義されており、AEM で使用されるので、常に設定されている必要があります。

    • ローカル — ローカルインスタンス
    • 作成者 — オーサリングシステムの DNS
    • 公開 — 公開ウェブサイト DNS
    メモ

    カスタム設定によって、「production」、「staging」などの新しいカテゴリや、「my-internal-webservice」などの AEM 以外の外部システムでも追加できます。このような設定は、プロジェクトのコードベースの様々な場所でそのような URL をハードコーディングするのを避けるために有効です。

  4. 保存」をクリックして変更を保存します。

メモ

Externalizer サービスの使用

ここでは、Externalizer サービスの使用方法に関するいくつかの例を紹介します。

JSP で Externalizer サービスを取得する:

Externalizer externalizer = resourceResolver.adaptTo(Externalizer.class);

「publish」ドメインを付与してパスを外部化するには:

String myExternalizedUrl = externalizer.publishLink(resolver, "/my/page") + ".html";

ドメインマッピングが「 publish https://www.website.com", myExternalizedUrl が値" https://www.website.com/contextpath/my/page.html".

「author」ドメインを付与してパスを外部化するには:

String myExternalizedUrl = externalizer.authorLink(resolver, "/my/page") + ".html";

ドメインマッピングが「 author https://author.website.com", myExternalizedUrl が値" https://author.website.com/contextpath/my/page.html".

「local」ドメインを付与してパスを外部化するには:

String myExternalizedUrl = externalizer.externalLink(resolver, Externalizer.LOCAL, "/my/page") + ".html";

ドメインマッピングが「 local https://publish-3.internal", myExternalizedUrl が値" https://publish-3.internal/contextpath/my/page.html".

他の例については、関連する Javadoc を参照してください。

このページ