カスタム コネクタの構築

UI 定義と Web サービス エンドポイントについて理解したら、独自のコネクタを構築できます。
capam33
HID_TargetConnectorValidateDetail
UI 定義と Web サービス エンドポイントについて理解したら、独自のコネクタを構築できます。
以下の手順に従います。
2
すべてのカスタム ターゲット コネクタは、カスタム コネクタ サーバのすべてのインスタンスにインストールする必要があります。Windows または Linux システム上に Tomcat サーバがインストールされていれば、そのシステムにカスタム コネクタ サーバをインストールできます。カスタム ターゲット コネクタのコードで、ネイティブのオペレーティング システム コールが使用されている場合、すべてのターゲット コネクタでは、その同じオペレーティング システムに対してコールを実行する必要があります。あるターゲット コネクタでネイティブ Windows コールを実行して別のターゲット コネクタでネイティブ Linux コールを実行するようには記述しないでください。コネクタは 1 つのサーバ上で動作するため、いずれかのコネクタが失敗します。
カスタム コネクタ ソフトウェアの展開
カスタム コネクタを構築する前に、「カスタム コネクタ ソフトウェアの展開」の手順を完了します。[カスタム コネクタ]ページ(
[構成]-[カスタム コネクタ]
)で設定が完了していることを確認します。
必要なソフトウェアの入手
  • JDK 8 Update 201 (最小バージョン)または JDK 11
  • Java ビルド ツール: Apache Maven または Gradle
  • コア ライブラリ
    com.ca.pam:capamexternsionscore:4.16.0
    (SDK に含まれており、sdk/lib ディレクトリにあります)。
  • Maven または Gradle 用のリポジトリ
    Maven および Gradle では、リポジトリを利用してライブラリの依存関係を管理します。コネクタ プロジェクトを作成するには、まず、以下の依存関係を持つリポジトリをセットアップします。
    JDK 8
    JDK 11
    • javax.ws.rs:javax.ws.rs-api:2.0.1
    • org.glassfish.jersey.containers:jersey-container-servlet:2.25.1
    • org.glassfish.jersey.media:jersey-media-json-jackson:2.25.1
    • org.codehaus.jettison:jettison:1.3.8
    • io.swagger:swagger-jersey2-jaxrs:1.5.19
    • org.slf4j:slf4j-api:1.8.0-beta2
    • org.apache.logging.log4j:log4j-api:2.11.0
    • org.apache.logging.log4j:log4j-core:2.11.0
    • org.apache.logging.log4j:log4j-slf4j-impl:2.11.0
    • org.glassfish.jersey.containers:jersey-container-servlet:2.27
    • org.glassfish.jersey.core:jersey-common:2.27
    • org.glassfish.jersey.inject:jersey-hk2:2.27
    • org.glassfish.jersey.media:jersey-media-multipart:2.27
    • javax.xml.bind:jaxb-api:2.3.1
    • javax.activation:activation:1.1.1
    • org.glassfish.jersey.media:jersey-media-json-jackson:2.27
    • org.codehaus.jettison:jettison:1.4.0
    • io.swagger:swagger-jersey2-jaxrs:1.5.21
    • javax.servlet:javax.servlet-api:4.0.1
カスタム コネクタのプロジェクトの作成
カスタム ターゲット コネクタを構築する前に、最初の手順として、コネクタのプロジェクトを作成します。カスタム コネクタの zip ファイルには、カスタム コネクタのプロジェクトを作成するコマンドライン スクリプトが含まれています。
Windows:
createTCProject.cmd
UNIX:
createTCProject
createTCProject スクリプトを実行すると、プロジェクトをビルドするためにカスタム ConnectorTemplate が使用されます。customConnectorTemplate には、Maven および Gradle ソース コード用のメタデータ ファイルが含まれています。また、このテンプレートには、入力検証サービスと認証情報の検証および更新サービスのサンプル ソース コードが含まれています。
createTCProject スクリプトを実行するシステムで JAVA_HOME 環境変数を設定した場合、スクリプトはこの変数から JDK パスを読み取ります。スクリプトが正しい JDK バージョンとアップデートを指していることを確認します。
プロジェクトを作成する方法
スクリプトが含まれるディレクトリに移動し、以下のコマンドを実行します。
createTCProject -Dworkspace=
workspace_location
-DgroupId=
group_id
-DartifactId=
project_id
-Dversion=
version
-DbuildTool=
build_tool
このコマンドの例は、UNIX プラットフォーム用です。Windows システムの場合、コマンドの拡張子以外は同じです。
または、スクリプトの絶対パスまたは相対パスを指定します。たとえば、C:\CAPAM\customconnectors ディレクトリにいて、ファイルが \CAPAM\sdk にある場合、絶対パスを使用したコマンドは以下のとおりです。
C:\CAPAM\sdk\createTCProject -Dworkspace=
workspace_location
-DgroupId=
group_id
-DartifactId=
project_id
-Dversion=
version
-DbuildTool=
build_tool
相対パスを使用したコマンドは以下のとおりです。
..\sdk\createTCProject -Dworkspace=
workspace_location
-DgroupId=
group_id
-DartifactId=
project_id
-Dversion=
version
-DbuildTool=
build_tool
斜体のテキスト内のプレースホルダは、以下の情報で置き換えられます。
  • workspace_location
    : ターゲット コネクタ プロジェクトが生成される場所です。このパスは相対パスまたは絶対パスにできます。このフォルダが存在しない場合、ツールによって作成されます。
  • group_id
    : Maven または Gradle グループ識別子のような、ターゲット コネクタ プロジェクトのグループ識別子。この ID は、プロジェクトの Java ソース ファイルのパッケージ プレフィックスとしても使用されます。
  • artifact_id:
    ターゲット コネクタ プロジェクトの名前。この名前のフォルダがワークスペースに作成されます。ターゲット コネクタのすべてのソース ファイルおよびプロジェクト ファイルは、このフォルダに生成されます。この ID は、生成されたパッケージ名にも使用されます。
  • version
    : ターゲット コネクタ プロジェクトのバージョン。
  • build_tool:
    ターゲット コネクタ プロジェクトで使用するビルド ツール(Maven または Gradle)を指定します。
プロジェクトの作成
-
Gradle の例:
createTCProject -Dworkspace=tcworkspace -DgroupId=com.company.tc -DartifactId=myconnector -Dversion=1.0 -DbuildTool=gradle
プロジェクトの作成
-
Maven の例:
createTCProject -Dworkspace=tcworkspace -DgroupId=com.company.tc -DartifactId=myconnector -Dversion=1.0 -DbuildTool=maven
プロジェクトを作成すると、コマンドを実行した場所に以下のディレクトリ構造が作成されます。
カスタム コネクタ gradle プロジェクト構造
custom connector gradle project structure
プロジェクトを作成した後は、カスタム ターゲット コネクタを構築します。
ビルド スクリプトを使用したカスタム コネクタの構築
カスタム コネクタの zip ファイルには、カスタム コネクタを構築するためのスクリプトが含まれています。
以下のいずれかのビルド スクリプトの手順に従って、コネクタを構築します。
Gradle ビルド スクリプトの実行
テンプレートには、
build.gradle
ビルド スクリプトが含まれています。このファイルには、リポジトリ、依存関係、およびプラグインの設定が含まれています。build.gradle スクリプトのサンプルは、手順の後に示されます。
以下の指示に従ってスクリプトを変更します。
  1. repositories
    セクションを変更し、使用するリポジトリを含めます。
    repositories
    セクションには、Maven 中央リポジトリが含まれています。mavenCentral リポジトリは、スクリプト内に保持するか、削除することができます。
  2. dependencies
    セクションに依存関係をリストします。このリストには、ターゲット コネクタのコア ライブラリの依存関係と、コア ライブラリで必要なその他のサードパーティ ライブラリの依存関係を含める必要があります。このセクションに追加するすべての依存関係は、リポジトリにインストールする必要があります。これにより、Gradle ビルド スクリプトでライブラリを使用できるようになります。 
    デフォルトの build.gradle スクリプトを以下に示します。
    buildscript {
    repositories {
    mavenCentral()
    }
    }
    apply plugin: 'war'
    apply plugin: 'eclipse-wtp'
    apply plugin: 'idea'
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
    repositories {
    mavenCentral()
    }
    dependencies {
    compile ('javax.ws.rs:javax.ws.rs-api:2.0.1')
    compile ('org.glassfish.jersey.containers:jersey-container-servlet:2.25.1')
    compile ('org.glassfish.jersey.media:jersey-media-json-jackson:2.25.1')
    compile ('org.codehaus.jettison:jettison:1.3.8')
    compile ('io.swagger:swagger-jersey2-jaxrs:1.5.19')
    compile ('org.slf4j:slf4j-api:1.8.0-beta2')
    compile ('org.apache.logging.log4j:log4j-api:2.11.0')
    compile ('org.apache.logging.log4j:log4j-core:2.11.0')
    compile ('org.apache.logging.log4j:log4j-slf4j-impl:2.11.0')
    compile ('com.ca.pam:capamextensionscore:4.16.0')
    }
    file('build').mkdirs()
    war {
    archiveName 'projectTemplate.war'
    }
  3. Gradle ビルド スクリプトの変更が完了した後に、以下のコマンドを使用してスクリプトを実行します。
    gradlew.bat build
    ビルドが成功した場合は、ビルド ディレクトリに
    .war
    ファイルが作成されます。ビルドに問題がある場合、エラー メッセージがコンソールに表示されます。必要な修正を行い、スクリプトを再実行します。
  4. Gradle プロジェクトを Eclipse や Intellij など、統合開発環境(IDE)にインポートします。
  5. 次のタスク「uiDefinitions.json ファイルの変更」に移動します。
Maven ビルド スクリプトの実行
テンプレートには、
pom.xml
ファイルが含まれています。このファイルには、リポジトリ、依存関係、およびプラグインの設定が含まれています。
以下の指示に従ってスクリプトを変更します。
  1. repositories
    セクションを変更し、使用するリポジトリを含めます。
    repositories
    セクションには、Maven 中央リポジトリが含まれています。mavenCentral リポジトリは、スクリプト内に保持するか、削除することができます。
  2. dependencies
    セクションに依存関係をリストします。このリストには、ターゲット コネクタのコア ライブラリの依存関係と、コア ライブラリで必要なその他のサードパーティ ライブラリの依存関係を含める必要があります。このセクションに追加するすべての依存関係は、リポジトリにインストールする必要があります。これにより、maven ビルド スクリプトでライブラリを使用できるようになります。 
    デフォルトの Maven pom.xml ファイルを以下に示します。
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.ca.pam</groupId>
    <artifactId>customConnectorTemplate</artifactId>
    <version>1.0</version>
    <repositories>
    <!-- Define corporate repository here.-->
    </repositories>
    <dependencies>
    <dependency><groupId>javax.ws.rs</groupId><artifactId>javax.ws.rs-api</artifactId><version>2.0.1</version></dependency>
    <dependency><groupId>org.glassfish.jersey.containers</groupId><artifactId>jersey-container-servlet</artifactId><version>2.25.1</version></dependency>
    <dependency><groupId>org.glassfish.jersey.media</groupId><artifactId>jersey-media-json-jackson</artifactId><version>2.25.1</version></dependency>
    <dependency><groupId>org.codehaus.jettison</groupId><artifactId>jettison</artifactId><version>1.3.8</version></dependency>
    <dependency><groupId>io.swagger</groupId><artifactId>swagger-jersey2-jaxrs</artifactId><version>1.5.19</version></dependency>
    <dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.8.0-beta2</version></dependency>
    <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.11.0</version></dependency>
    <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.11.0</version></dependency>
    <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId><version>2.11.0</version></dependency>
    <dependency><groupId>com.ca.pam</groupId><artifactId>capamextensionscore</artifactId><version>4.16.0</version></dependency>
    <!-- Add additional dependencies -->
    </dependencies>
    <plugins>
    <plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.3</version>
    </plugin>
    </plugins>
    </project>
  3. Gradle ビルド スクリプトの変更が完了した後に、以下のコマンドを使用してスクリプトを実行します。
    mvmw.cmd package
    ビルドが成功した場合は、ターゲット ディレクトリに
    .war
    ファイルが作成されます。ビルドに問題がある場合、エラー メッセージがコンソールに表示されます。必要な修正を行い、スクリプトを再実行します。
  4. Maven プロジェクトを Eclipse や Intellij など、統合開発環境(IDE)にインポートします。
  5. 次のタスク「uiDefinitions.json ファイルの変更」に移動します。
uiDefinitons.json ファイルの変更
作成したプロジェクトで、タブとフィールドの属性を追加または変更して、カスタム ターゲット コネクタで必要なすべての UI エレメントを表示します。
以下の手順に従います。
  1. プロジェクトで、
    /src/main/resources/
    ディレクトリに移動し、uiDefiitions.json ファイルを見つけます。
  2. JSON エディタでファイルを開き、カスタム コネクタのエントリを変更します。
  3. 「application」セクションと「account」セクションを定義します。application セクションの拡張属性によって、ターゲット デバイスとの通信が有効になります。account セクションの拡張属性では、ターゲット デバイスのアカウント認証情報を検証または更新します。
有効な UI 属性の詳細については、「コネクタを設定するための UI フィールドおよびコントロール」を参照してください。
UI 定義のテストおよび検証
UI には、uiDefinitions.json ファイル内の属性をテストおよび検証するためのメカニズムがあります。また、検証メカニズムでは、ターゲット アプリケーションおよびアカウントのユーザ インターフェース コントロールの作成および変更をテストできます。この機能では、JSON エントリの構文と構造が正しいかどうかを検証します。定義にエラーがある場合、UI にエラー メッセージが表示されます。これらのメッセージは、uiDefinitions.json ファイル内の構文上の問題またはその他の問題を示す場合があります。また、カスタム検証ルールを定義することもできます。カスタム検証には、フィールドの検証条件を含めることができます。これにより、ユーザがターゲット アプリケーションまたはアカウントを更新または保存したときに UI データが検証されます。
 
この機能にはプレビュー オプションもあります。uiDefinitions.json ファイルを編集した後に、ターゲット アプリケーションとアカウントの変更済みの UI パネルとコントロールを表示できます。
ターゲット コネクタの検証機能のロールを持つ管理者のみが検証機能を使用できます。ターゲット コネクタの検証機能のロールには、ターゲット コネクタ UI の検証の権限が割り当てられています。
UI 定義を検証するには、以下の手順に従います。
  1. 運用管理者など、
    [ターゲット コネクタの検証機能]
    ロールを持つ管理者として UI にログインします。
    [設定]
    メニューの[TCF 定義の検証]オプションを表示するには、ターゲット コネクタ UI の検証権限を持つロールが割り当てられている必要があります。
  2. [設定]-[TCF 定義の検証]
    を選択します。
    [UI 定義の検証]ページに、
    [TCF 定義 JSON]
    ページが表示されます。
  3. uiDefinitions.json ファイルの内容をコピーして、このページに貼り付けます。
    または、アプリケーションおよびアカウントのタブや、その他の UI エレメントの JSON を手動で入力できます。このトピックで前述したように、JSON の構文と必要なフィールド属性に従ってください。
  4. ページに内容を配置した後、
    [検証]
    を選択します。
    定義の構文が検査されます。JSON にエラーが含まれている場合、これらのエラーがユーザにレポートされます。
    検出されたすべてのエラーを修正します。UI 定義にエラーがある場合、プレビューは表示されません。
  5. アプリケーションおよびアカウントのパネルをプレビューします。
    1. ターゲット アプリケーションのパネルを表示するには、
      [TCF アプリケーションの表示]
      を選択します。このパネルは、[TCF 定義 JSON]ページの隣に表示されます。JSON ファイルの application セクションで定義した内容がコントロールに反映されます。
    2. ターゲット アカウント パネルを表示するには
      [TCF アカウントの表示]
      を選択します。パネルは、[TCF 定義 JSON]ページの隣に表示されます。
      JSON ファイルの account セクションで定義した内容がコントロールに反映されます。
  6. JSON エントリを表示および更新するには、[TCF 定義 JSON]ページでエントリを編集します。
  7. JSON の記述が完了したら、テキストをコピーし、
    uiDefinitions.json
    ファイルに貼り付けます。
Web サービス エンドポイントの編集
作成したプロジェクトで、カスタム ターゲット コネクタのエンドポイントを定義する Web サービス クラスを変更します。
以下の手順に従います。
  1. プロジェクトの
    /src/main/java/com/company/tc/
    project_name
    /api
    ディレクトリに移動します。このフォルダには、3 つの Web サービス クラスが含まれています。以下の 2 つのクラスのみを変更します。
    • Credentials.java - このコードでは、リモート エンドポイントでパスワードを検証および変更するために TCF で使用するビジネス ロジックが提供されます。
    • Validations.java - このコードでは、uiDefinitions.json ファイル内のアプリケーションおよびアカウントの制約に対して任意のフィールド タイプを検証します。
    UIDefinitions.java Web サービスは変更しないでください。
  2. Credentials.java
    ファイルを編集します。このクラスで提供される 2 つのスタブ メソッドは、ターゲット コネクタの認証情報の検証および更新ロジックを追加します。
    以下のスタブ メソッドに、認証情報の検証ロジックを追加します。
    private void processCredentialVerify () throws ExtensionException {
    add credential verification logic here
    }
    以下のスタブ メソッドに、認証情報の更新ロジックを追加します。
    private void processCredentialUpdate () throws ExtensionException {
    add credential update logic here
    }
    いずれかの検証または更新に失敗した場合、これらのメソッドで ExtensionException をスローする必要があります。
    検証および更新を実行するために必要なデータは、インスタンス変数として使用できます。これらの変数は、Credentials.java クラスに一覧表示されています。
  3. 必要に応じて、
    Validations.java
    ファイルを変更します。このサービス クラスでは、uiDefinitions.json ファイル内の制約に基づいて、ターゲット アプリケーションとアカウントのデータを検証します。このクラスでは、カスタムの検証を追加する以下のスタブ メソッドが提供されます。
    検証をさらに追加する場合は、以下のスタブ メソッドに認証ロジックを追加します。
    private void performCustomValidation(Map<String,String> extendedAttributes, String validationType) throws ExtensionException {
    add custom validation logic here
    }
    このメソッドには、以下の 2 つの引数があります。
    • extendedAttributes: uiDefinitions.json ファイル内の「field」属性およびその値を表します。これらは、ユーザが
      PAM
      UI で指定する入力値です。
    • validationType: データがターゲット アプリケーションまたはターゲット アカウント用であるかどうかを示します。この値には「account」または「application」を指定できます。validationType の値は、アプライアンスによって TCF に送信されるリクエスト URL から取得されます。
    いずれかの検証に失敗した場合、このメソッドで ExtensionException をスローする必要があります。
    以下に、サーバ側の検証の例を示します。以下のコードでは[Echo - Application]パネルにチェックボックス コントロールのカスタム検証を追加します。
    private void customValidation(String json, String validationType) throws
    ExtensionException
    {
    if (validationType.equals("application")) {
    try {
    JSONObject jsonObj =
    new
    JSONObject(json);
    JSONObject jObject = jsonObj.getJSONObject(validationType);
    JSONObject jsonObject = jObject.getJSONObject("extendedAttributes");
    if(jsonObject.get("checkboxControl").equals("true")) {
    String str = jsonObject.get("textareaControl").toString();
    if(str.isEmpty() || str.equals("")) {
    buildException(EchoMessageConstants.
    TEXTAREA_CONTROL_MISSING
    , false, "textareaControl");
    }
    }
    } catch (JSONException e) {
    LOGGER
    .log(Level.
    SEVERE
    , "Custom validation failed " + e.toString());
    buildException(MessageConstants.
    INVALID_JSON
    , false);
    }
    if(exception != null) {
    throw exception;
    }
    検証に失敗した場合は、以下のメッセージが表示されます。
    custom_tcf_validation_error.png 
Web サービス エンドポイントの詳細については、「カスタム コネクタ用の Web サービス エンドポイント」を参照してください。
カスタム コネクタのログ記録の確立
アプライアンスとカスタム コネクタ サーバとの間のアクティビティをモニタして問題のトラブルシューティングを行うには、ログ記録をセットアップします。TCF およびサンプル ターゲット コネクタでは、標準の
java.util.logging
パッケージを使用して、catalina.out ファイルにメッセージを書き込みます。
ログ ステートメントを記述する場合、以下の 2 つの TCF 固有の属性を標準のログ メッセージ形式に追加します。これらの 2 つの属性を、カスタム コネクタ サーバとカスタム ターゲット コネクタのすべてのログ ステートメントに含めると、問題をデバッグできます。
  • リクエスト ID:
    PAM
    でカスタム コネクタ サーバに対するリクエストを生成する場合、この自動生成された属性はすべての REST Web サービス コールのヘッダに追加されます。リクエスト ID を使用すると、カスタム コネクタ サーバとの間のトランザクションを追跡することができ、エラーのトラブルシューティングに役立ちます、
  • コンテキスト名
    - カスタム コネクタ サーバがログ ファイルにメッセージを書き込む場合、コンテキスト名は、メッセージのソースが TCF またはカスタム ターゲット コネクタであるかどうかを識別します。コンテキスト名は設定可能です。名前を変更するには、
    Tomcat_home
    \src\main\webapp\WEB-INF\ に移動し、web.xml ファイル内の名前を編集します。コンテキスト名は、
    PAM
    ではなくカスタム コネクタ サーバで生成されるログ専用です。
ログ ステートメントの形式を以下に示します。リクエスト ID とコンテキスト名の前後には、指定したカスタム文字列が付きます。
day-month-year time log_level [
url_custom_connector_server
] tcf_java_class [
request_id
] [
context_name
]
Forward the request to UIDefinitions
以下に例を示します。
01-Nov-2018 13:15:20.735 INFO [http-nio-8080-exec-1] com.ca.pam.extensions.framework.api.TargetConnectors.targetConnectorUIDefinitions
[7dc53df5-703e-49b3-8670-b1c468f47f1f] [
targetconnector
] Forward the request to UIDefinitions
Java コードへのログ ステートメントの追加
カスタム ターゲット コネクタのログ ステートメントを追加するには、java.util.logging API を呼び出します。この API を呼び出す前に、LoggerWrapper クラスを呼び出して、リクエスト ID およびコンテキスト名をログ メッセージに追加します。以下に例を示します。
LOGGER.log(Level.INFO, LoggerWrapper.logMessage("<message>"));
この例では、
LOGGER
は java.util.logging.Logger クラスのインスタンスです。 
logMessage は静的なメソッドなので、LoggerWrapper クラスのインスタンスは必要ありません。カスタム メッセージは、パラメータとして logMessage メソッドに渡すことができます。このメソッドでは、リクエスト ID およびコンテキスト名を追加して、ログ ステートメントを構築します。 
ログ レベルの設定
catalina.out ファイルにログ メッセージが表示される場合、メッセージはログ レベルの階層に基づいて順序付けられます。各ログ メッセージ内に反映する詳細レベルに応じて、メッセージのログ レベルを変更できます。ログ レベルを変更するには、Tomcat サーバ ディレクトリ
/conf/logging.properties
に移動します。
特定のログ レベルがパッケージ内の特定のクラスでのみ必要な場合は、logging.properties ファイルにパッケージ名を追加します。
カスタム コネクタのエラー処理の設定
カスタム コネクタ SDK には、TCF 操作に関連するエラー メッセージが含まれています。エラーが発生すると、TCF はそのメッセージを
PAM
に送り返します。TCF のエラー メッセージは、
extension_messages.properties
ファイルと
extension_messages_ja.JP.properties
ファイルに含まれています。 
extension_messages.properties ファイルを変更しないでください。
カスタム ターゲット コネクタでは、ターゲット コネクタ操作専用のカスタム エラー処理をセットアップできます。エラーが発生すると、ターゲット コネクタは TCF にメッセージを送信し、そのメッセージは
PAM
に転送されます。
カスタム エラー処理では、以下のいずれかのプロパティ ファイルからエラー メッセージを読み取ります。
  • artifact_ID_
    messsages.properties ファイル(英語のメッセージ)
  • artifact_ID_
    messsages_ja_JP.properties ファイル(日本語のメッセージ)
TCF プロジェクトを作成するコマンドを実行する場合、これらの 2 つのカスタム プロパティ ファイルが
tomcat_home
/src/main/resources ディレクトリに自動的に作成されます。記述するカスタム メッセージは、メッセージ プロパティ ファイルに追加する必要があります。
カスタム エラー メッセージを追加する方法
プロパティ ファイルにエラー メッセージを追加する場合は、各メッセージの先頭に一意の数値識別子を付けます(例: PAM-TC-1001)。メッセージを追加するときは、連続した順序で次の番号を使用することを推奨します。
extension_messages.properties
ファイルと
extension_messages_ja.JP.properties
ファイルで異なる番号付けの方式を使用します。そうすれば、識別子が相互にオーバーライドされません。たとえば、extension_message.properties ファイルの番号付けが PAM-EF-001 で始まる場合、カスタム プロパティ ファイルでは xxx-xx-1001 を使用します。
カスタム プロパティ ファイルで番号付けの方式に関するコメントを追加しておけば、ファイルを変更する他のユーザにも番号付けのパターンがわかります。以下に例を示します。
// Resource Bundle for Custom Target Connector Messages
// Please start the message codes at 1001 (i.e. PAM-TC-1001) to avoid message number collisions
// Example: PAM-TC-1001=Text area control must not be empty when checkbox is selected.
TCF およびカスタム ターゲット コネクタに関連するエラー メッセージの場合、
PAM
アプライアンスのロケール設定によって言語が決まります。アプライアンスのロケールが英語の場合、すべてのエラー メッセージは英語です。アプライアンスのロケールが日本語の場合、すべてのメッセージは日本語です。一般に、アプライアンスのデータベースに格納されているデータは、ブラウザではなく、アプライアンスのロケールに影響を受けます。
ビルド プロセスの完了
  1. コネクタを構築するすべてのタスクを完了したら、Gradle または Maven のビルド コマンドを入力して、プロジェクトを再構築します。
    • gradlew.bat build
    • mvmw.cmd package
    更新された
    project_name
    .war ファイルが生成されます。
  2. /tomcat_home
    /webapps_targetconnectors ディレクトリに
    project_name
    .
    war ファイルをコピーして、このファイルを展開します。
    .war ファイルは自動的に展開されます。Tomcat サーバを再起動する必要はありません。
  3. 展開が正常に完了したことを確認するには、TCF が展開されている Tomcat サーバにログインします。
    catalina.out
    ファイルを開き、以下のようなメッセージを探します。
    Registering client of type, targetConnectors, with name:
    project_name
  4. グローバル管理者または設定マネージャとして
    PAM
    UI にログインします。
  5. トップ メニューで、
    [構成]
    を選択します。
  6. 左側のペインに
    [カスタム コネクタ]
    オプションが表示されていることを確認します。
  7. [認証情報]-[ターゲット管理]-[アプリケーション]
    を選択します。
  8. 追加
    ]を選択します。
  9. [アプリケーション タイプ]
    フィールドで、ドロップダウン リストにカスタム コネクタのプロジェクト名が含まれていることを確認します。
  10. UI から終了します。
カスタム コネクタによるリモート ターゲットの設定
独自のターゲット コネクタを構築して展開したので、このコネクタを使用して特権アカウントの認証情報を管理できます。カスタム コネクタを使用してターゲット アプリケーションおよびアカウントを設定する手順は、標準装備のコネクタの場合と同じです。詳細については、「特権アカウントの認証情報を保護する」を参照してください。