高度なカスタマイズ > ビジネスロジックのカスタマイズ > 暗号化されたパスワード > 暗号化されたパスワード > ソリューション > 手順 - .xconf が管理しないプロパティの暗号化
  
手順 - .xconf が管理しないプロパティの暗号化
.xconf が管理しない新しいプロパティは、Windchill の暗号化メカニズムを使用して暗号化できます。ただし、パスワードを暗号化および解読する手段を作成する必要があります。
プロパティ値の暗号化
1. プロパティ値を暗号化する手段を作成する必要があります。これは、main() メソッドで呼び出すことができる Java クラスを介して、および <Windchill>/bin/adminTools/sip/EncryptPasswords.xml を修正することによって行うことができます。
a. <Windchill>/bin/adminTools/sip/EncryptPasswords.xml には、xconf が管理しないプロパティ値を暗号化する encryptWVSWorkerAgent および encryptWVSCADAgent の 2 つの ANT ターゲットが含まれています。これらのターゲットは、これを行う方法の例として参照できます。暗号化を行うための Java クラスを呼び出す、パラメータを受け入れる新しいターゲットを作成する必要があります。
b. この呼び出される Java クラスは、プロパティと値のパラメータを使用し、Windchill の暗号化メカニズムを使用してこれらを暗号化します。この Java クラスには、このプロパティが保存されているファイルを適切に暗号化し、Java キーストアに正しい値を配置するためのロジックも含まれている必要があります。WTKeyStoreUtilWVS.java クラスには、encryptWCSWorkerAgent ターゲットと encryptWCSCADAgent ターゲットによって呼び出されるコードが含まれています。これは、プロパティ値が保存されているファイルを暗号化するために使用されるロジックの例として参照できます。
これにより、プロパティ値が暗号化されます。しかし、値に依存するコードで値を適切に使用されるようにするには、使用前にコードを更新して値を解読しておく必要があります。定義済みのプロパティでは、Windchill によって適切なインタフェース場所でプロパティが解読されます。
* 
この値に依存するコードは、適切に値を解読するように更新する必要があります。
プロパティ値の解読
プロパティ値を返すメソッドが上書きされる場合、プロパティ値を読み込む Windchill の基本クラスを拡張するすべてのコードを更新する必要があります。プロパティ値を取得して使用するカスタムコードでは、以下を使用して暗号化された値を解読できます。
プロパティ値が暗号化されている場合、com.ptc.windchill.keystore.WTKeyStoreUtil はプロパティ値の解読された値を取得するために API を提供します。API は、public static String decryptProperty(String property_name, String property_value, String product_root) です。
値を解読しようとするプロパティ名が property_name ならば、property_value が現在暗号化されている値で、product_root<Windchill> (または、アダプタインストールの <adapater_home>) の完全修飾パスです。
この API を使用するためのコード例は次のとおりです。
final String encrypted_value = “encrypted.wt.pom.dbPassword”;
final String property = “wt.pom.dbPassword”;
final String PATH = “D:\ptc\Windchill\”;
String decrypted = com.ptc.windchill.keystore.WTKeyStoreUtil.decryptProperty(property,encrypted_value, PATH);
解読された文字列は解読された値を含み、文字列に依存するコード内のどこかで適切に使用されます。