iPLAss全体に対する設定はXMLベースの設定ファイルにて行います。 設定ファイルはservice-configファイルと呼称します。 本ドキュメントでは、service-configファイルの形式の説明、および設定可能な項目について説明します。
1. service-configファイルについて
service-configファイルはxml形式で記述されます。 また、複数に分割定義されたファイルをマージすることが可能です。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE serviceDefinition>
<serviceDefinition>
<inherits>/mtp-core-service-config-mysql.xml</inherits>
<inherits>/mtp-web-service-config.xml</inherits>
<service>
<interface>org.iplass.mtp.impl.web.WebFrontendService</interface>
<property name="staticContentPath" value="/iplass-skeleton" />
</service>
<service>
<interface>org.iplass.mtp.impl.lob.LobStoreService</interface>
<property name="binaryStore" class="org.iplass.mtp.impl.lob.lobstore.file.FileLobStore">
<property name="rootDir" value="/lobs" />
<property name="overwriteFile" value="false" />
</property>
<property name="longTextStore" class="org.iplass.mtp.impl.lob.lobstore.rdb.RdbLobStore" />
</service>
:
:
</serviceDefinition>
service-configファイルではService単位で設定を行っていきます。
1.1. Serviceとは
ServiceとはiPLAss上で規定されるコンポーネントです。
実体は org.iplass.mtp.spi.Service を実装するjavaクラスです。
service-configファイルからこの各種Serviceの属性を設定することが可能です。
1.2. service-configファイルの指定方法
iPLAss起動時に利用されるservice-configファイルは次のいずれかの形で読み込まれます。
クラスパス、ファイルパスから自動解決
起動時に明示的にservice-configファイルを指定しない場合は、クラスパス直下、もしくはファイルシステムのルートパスからmtp-service-config.xmlを取得します。
Webアプリケーションとしてデプロイする場合、 /WEB-INF/classes/ 直下などにmtp-service-config.xmlを配置可能です。
明示的に指定する場合
ファイルを明示的に指定する場合には以下の3つの方法があります。
-
VM引数
VM引数を使用する場合はキー名を"mtp.config"にてservice-configファイルのパスを指定します。-Dmtp.config=/app-service-config.xml
-
web.xml
param-name要素に"mtp.config"を指定し、param-value要素に読み込むservice-configファイルを指定します。<context-param> <param-name>mtp.config</param-name> <param-value>/app-service-config.xml</param-value> </context-param> -
コード上から
EntryPointBuilderクラスのconfig(String)メソッドにてservice-configファイルを指定します。import org.iplass.mtp.runtime.EntryPoint; : : //initialize EntryPoint on application startup EntryPoint entryPoint = EntryPoint.builder() .config("/app-service-config.xml").build();
指定されたファイル名(パス)を元に、クラスパス上のリソースパスとして、またファイルシステム上のファイルパスとして、ファイルを検索します。
1.3. service-configファイルの分割
service-configファイルは、定義の一部を別ファイルに分割して管理することが可能です。 例えば、環境依存部分の設定を別ファイルとして切り出し管理することが可能です。 また、iPLAssが定義するデフォルト値が設定されたservice-configファイルが提供されているので、それをベースとし、デフォルトから変更する箇所のみをオーバーライトすることも出来ます。 デフォルト値が設定されたservice-configファイルはiPLAssの各モジュールのjar内に格納されています。
以下にデフォルト値を提供するservice-configファイルの一覧を示します。
| ファイルパス | 説明 | ||
|---|---|---|---|
/mtp-core-service-config.xml |
iPLAssのcoreサービスに関するデフォルト設定です。 |
||
/mtp-core-service-config-mysql.xml |
mysql8以上を利用する場合のiPLAssのcoreサービスに関するデフォルト設定です。/mtp-core-service-config.xmlの内容を継承しています。 |
||
/mtp-core-service-config-mysql-5.7.xml |
mysql5.7を利用する場合のiPLAssのcoreサービスに関するデフォルト設定です。/mtp-core-service-config.xmlの内容を継承しています。 |
||
/mtp-core-service-config-mysql_pseudo_128.xml |
mysql8を利用し、かつ疑似パーティション機能(128パーティション)を利用する場合のiPLAssのcoreサービスに関するデフォルト設定です。/mtp-core-service-config-mysql.xmlの内容を継承しています。 |
||
/mtp-core-service-config-aurora_mysql.xml |
Amazon Aurora(mysql5.7)を利用し、かつ疑似パーティション機能(128パーティション)を利用する場合のiPLAssのcoreサービスに関するデフォルト設定です。/mtp-core-service-config-mysql-5.7.xmlの内容を継承しています。 |
||
/mtp-core-service-config-oracle.xml |
Oracleを利用する場合のiPLAssのcoreサービスに関するデフォルト設定です。/mtp-core-service-config.xmlの内容を継承しています。 |
||
/mtp-core-service-config-oracle_pseudo.xml |
Oracleを利用し、かつ疑似パーティション機能(32パーティション)を利用する場合のiPLAssのcoreサービスに関するデフォルト設定です。/mtp-core-service-config-oracle.xmlの内容を継承しています。 |
||
/mtp-core-service-config-oracle_pseudo_128.xml |
Oracleを利用し、かつ疑似パーティション機能(128パーティション)を利用する場合のiPLAssのcoreサービスに関するデフォルト設定です。/mtp-core-service-config-oracle.xmlの内容を継承しています。 |
||
/mtp-core-service-config-postgre.xml |
PostgreSQLを利用する場合のiPLAssのcoreサービスに関するデフォルト設定です。/mtp-core-service-config.xmlの内容を継承しています。 |
||
/mtp-core-service-config-postgre_pseudo.xml |
PostgreSQLを利用し、かつ疑似パーティション機能(32パーティション)を利用する場合のiPLAssのcoreサービスに関するデフォルト設定です。/mtp-core-service-config-postgre.xmlの内容を継承しています。 |
||
/mtp-core-service-config-postgre_pseudo_128.xml |
PostgreSQLを利用し、かつ疑似パーティション機能(128パーティション)を利用する場合のiPLAssのcoreサービスに関するデフォルト設定です。/mtp-core-service-config-postgre.xmlの内容を継承しています。 |
||
/mtp-core-service-config-sqlserver.xml |
SQLServerを利用する場合のiPLAssのcoreサービスに関するデフォルト設定です。/mtp-core-service-config.xmlの内容を継承しています。 |
||
/mtp-core-service-config-sqlserver_pseudo.xml |
SQLServerを利用し、かつ疑似パーティション機能(32パーティション)を利用する場合のiPLAssのcoreサービスに関するデフォルト設定です。/mtp-core-service-config-sqlserver.xmlの内容を継承しています。 |
||
/mtp-core-service-config-sqlserver_pseudo_128.xml |
SQLServerを利用し、かつ疑似パーティション機能(128パーティション)を利用する場合のiPLAssのcoreサービスに関するデフォルト設定です。/mtp-core-service-config-sqlserver.xmlの内容を継承しています。 |
||
/mtp-web-service-config.xml |
iPLAssのwebモジュールに関するデフォルト設定です。 |
||
/mtp-tools-service-config.xml |
AdminConsole、Toolsバッチから利用されるtoolsモジュールに関するデフォルト設定です。 |
||
/gem-service-config.xml |
gemモジュールに関する設定です。 |
||
/mdc-service-config.xml |
mdcモジュールに関するデフォルト設定です。Enterprise Editionで利用可能です。 |
||
/adminconsole-service-config.xml |
AdminConsoleに関するデフォルト設定です。 |
||
/infinispan-service-config.xml |
infinispanに関するデフォルト設定です。 |
||
/redis-service-config.xml |
redisに関するデフォルト設定です。 |
||
/aws-service-config.xml |
awsに関するデフォルト設定です。Enterprise Editionで利用可能です。iplass-ee-aws ライブラリに同梱されています。
|
||
/aws2-service-config.xml |
awsに関するデフォルト設定です。Enterprise Editionで利用可能です。iplass-ee-aws2 ライブラリに同梱されています。 |
||
/wam-service-config.xml |
wamモジュールに関するデフォルト設定です。Enterprise Editionで利用可能です。 |
||
/micrometer-service-config.xml |
micrometerモジュールに関するデフォルト設定です。Enterprise Editionで利用可能です。 |
分割されたファイルは、実行時に1つのservice-configファイルとしてマージされます。 同一Serviceの定義が複数のファイルに存在した場合のマージのされ方は、設定ファイルで指定が可能です。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE serviceDefinition>
<serviceDefinition>
<inherits>/mtp-core-service-config-mysql.xml</inherits>
<inherits>/mtp-web-service-config.xml</inherits>
<inherits>/mtp-tools-service-config.xml</inherits>
<inherits>/gem-service-config.xml</inherits>
<inherits>/adminconsole-service-config.xml</inherits>
<!-- 以下、デフォルト値をオーバーライトする設定を記述 -->
<service>
<interface>org.iplass.mtp.impl.lob.LobStoreService</interface>
<property name="binaryStore" class="org.iplass.mtp.impl.lob.lobstore.file.FileLobStore">
<property name="rootDir" value="/lobs" />
<property name="overwriteFile" value="false" />
</property>
<property name="longTextStore" class="org.iplass.mtp.impl.lob.lobstore.rdb.RdbLobStore" />
</service>
:
:
</serviceDefinition>
詳しくはservice-configファイルの構成の説明を参照ください。
1.4. service-configファイルの構成
service-configのルート要素です。
-
属性
属性名 型 説明 preprocess
boolean
このservice-configファイルの プリプロセス 処理を実施する場合trueを指定します。
-
子要素
要素名 型 説明 inherits
String、複数指定可
この設定ファイルが継承元とする設定ファイルを指定します。 継承元のService定義が読み込まれた後、本体のservice-configファイルに記述された定義が適用されます。
includes
String、複数指定可
この設定ファイルに取り込む設定ファイルを設定します。 本体のservice-configファイルの設定をincludeした設定ファイルで上書きします。
service
service、複数指定可
サービスの定義を設定します。
個々のサービスの定義を行う要素です。
-
属性
属性名 型 説明 name
String
サービス名を設定します。未指定の場合は子要素interface(インタフェース名)がサービス名となります。
ifnone
boolean
このサービスが継承元または取り込み先に存在しない場合にのみ定義します。デフォルト値はfalseです。
inherit
boolean
このサービスが継承元または取り込み先に存在する場合は元のサービス定義を継承します。デフォルト値はtrueです。
サービス名、interface、depend、propertyが継承されます。final
boolean
このサービス定義の上書きを禁止します。デフォルト値はfalseです。
-
子要素
要素名 型 説明 interface
String、必須
インタフェース名を設定します。インタフェース名は完全修飾名を設定します。
class
String
クラス名を設定します。クラス名は完全修飾名を設定してください。未指定の場合はinterfaceがclassとして扱われます。
depend
String、複数指定可
依存サービスを設定します。サービス名を指定します。
property
property、複数指定可
サービスのプロパティを設定します。
bean
bean、複数指定可
サービス内で利用するBeanのインスタンスを設定します。定義されたBeanのインスタンスはproperty要素から参照可能です。複数のプロパティ要素から同一のBeanのインスタンスを参照したい場合、bean要素を利用します。
サービスのプロパティを定義する要素です。
プロパティの要素がjavaBeans形式の場合、再帰的にproperty要素を設定することが可能です。
また、ref属性にて別途定義されたbean要素を参照することも可能です。
-
属性
属性名 型 説明 name
String
プロパティ名を設定します。
value
String
プロパティの値を設定します。
class
String
プロパティがjavaBeansの場合、そのクラス名を設定します。クラス名は完全修飾名を設定してください。
builder
String
プロパティの値の生成処理をカスタマイズしたい場合、ObjectBuilderクラス名を指定します。クラス名は完全修飾名を設定してください。 詳細は 設定値生成のカスタマイズ を参照ください。
ref
String
プロパティがjavaBeansの場合、 bean要素 で定義されるnameを指定可能です。
ifnone
boolean
このプロパティが継承元または取り込み先に存在しない場合にのみ定義します。デフォルト値はfalseです。
inherit
boolean
このプロパティが継承元または取り込み先に存在する場合は元のプロパティ定義を継承します。デフォルト値はtrueです。
final
boolean
このプロパティ定義の上書きを禁止します。デフォルト値はfalseです。
encrypted
boolean
暗号化された値であるかを設定します。デフォルト値はfalseです。
additional
boolean
このプロパティと同一名のプロパティが継承元または取り込み先に存在する場合、継承や上書きせずに追加するかを設定します。デフォルト値はfalseです。
Beanの生成に関する属性が複数同時に指定された場合の優先順位は以下です。
ref > builder > class > value
ただし、プロパティ定義を親の設定ファイルより継承する場合、継承元に定義されるrefの値は引き継がれません。
-
子要素
要素名 型 説明 value
String
プロパティの値を設定します。設定可能な値は文字列型です。属性のvalueの両方が設定された場合は属性のvalueが優先されます。
property
property、複数指定可
ネストされたプロパティの定義を設定します。
arg
property、複数指定可
Beanのコンストラクタにインジェクションする値を指定可能です。 指定可能な属性、要素はproperty型と同様です。 コンストラクタインジェクションする際のnameは、
arg0、arg1のようにarg[引数順]を指定します。buildScript
String
プロパティの値の生成処理をカスタマイズしたい場合、GroovyScript形式で記述します。詳細は 設定値生成のカスタマイズ を参照ください。
サービス内で利用するBeanのインスタンスを定義する要素です。
定義されたBeanのインスタンスはproperty要素から参照可能です。複数のプロパティ要素から同一のBeanのインスタンスを参照したい場合、bean要素を利用します。
-
属性
属性名 型 説明 name
String
Beanの名前を設定します。
class
String
Beanのクラス名を設定します。クラス名は完全修飾名を設定してください。
builder
String
Beanの生成処理をカスタマイズしたい場合、ObjectBuilderクラス名を指定します。クラス名は完全修飾名を設定してください。 詳細は 設定値生成のカスタマイズ を参照ください。
ifnone
boolean
このbean定義が継承元または取り込み先に存在しない場合にのみ定義します。デフォルト値はfalseです。
inherit
boolean
このbean定義が継承元または取り込み先に存在する場合は元のbean定義を継承します。デフォルト値はtrueです。
final
boolean
このbean定義の上書きを禁止します。デフォルト値はfalseです。
additional
boolean
このbean定義と同一名のbeanが継承元または取り込み先に存在する場合、継承や上書きせずに追加するかを設定します。デフォルト値はfalseです。
-
子要素
要素名 型 説明 property
property、複数指定可
Beanのプロパティの定義を設定します。
arg
property、複数指定可
Beanのコンストラクタにインジェクションする値を指定可能です。 指定可能な属性、要素はproperty型と同様です。 コンストラクタインジェクションする際のnameは、
arg0、arg1のようにarg[引数順]を指定します。buildScript
String
Beanの生成処理をカスタマイズしたい場合、GroovyScript形式で記述します。詳細は 設定値生成のカスタマイズ を参照ください。
Collectionへの対応
配列、List、Map形式をサポートします。
配列、Listの値を設定する場合は、name属性の値が同じ<property>要素を複数定義することにより表現します。
<service>
:
:
<property name="intList" value="1" />
<property name="intList" value="3" />
<property name="intList" value="5" />
</service>
Mapの値を設定する場合は、ネストした<property>要素にてnameにMapのkeyを指定します。
<service>
:
:
<property name="stringMap" >
<property name="key1" value="value1" />
<property name="key2" value="value2" />
<property name="key3" value="value3" />
</property>
</service>
設定例
-
javaBeansへのプロパティの設定例
以下のようなjavaBeansに対して、
public class SampleBean { private int num; private String condition; private List<ChildBean> children; private ChildBean2 child2; //getters, seters... public int getNum() { return this.num; } : : } public class ChildBean { private int age; private String name; //getters, seters... public int getAge() { return this.age; } : : } public class ChildBean2 { private int age; private String name; private Map<String, Point> pointMap; //constructor with args public ChildBean2(int age, String name) { this.age = age; this.name = name; } : : } public class Point { private int x; private int y; //getters, seters... public int getX() { return this.x; } : : }次のように値を設定するすることが可能です。
<service> : : <property name="sample" class="SampleBean"> <property name="num" value="123" /> <property name="condition" value="conditionStr" /> <property name="children" class="ChildBean"> <property name="age" value="5" /> <property name="name" value="abc" /> </property> <property name="children" class="ChildBean"> <property name="age" value="3" /> <property name="name" value="def" /> </property> <property name="child2" class="ChildBean2"> <arg name="arg0" value="10" /> <arg name="arg1" value="ghi" /> <property name="pointMap"> <property name="p1" class="Point"> <property name="x" value="3" /> <property name="y" value="15" /> </property> <property name="p2" class="Point"> <property name="x" value="7" /> <property name="y" value="30" /> </property> </property> </property> </property> </service> -
bean要素の利用例
以下のようなjavaBeansに対して、
public class SampleBean1 { private SharedBean sharedBean; //getters, seters... public SharedBean getSharedBean() { return this.sharedBean; } : : } public class SampleBean2 { private SharedBean sharedBean; //getters, seters... public SharedBean getSharedBean() { return this.sharedBean; } : : } public class SharedBean { private int age; private String name; //getters, seters... public int getAge() { return this.age; } : : }次のように値を設定するすることにより、SampleBean1とSampleBean2のsharedBeanに同一のインスタンスをセットすることが可能です。
<service> : : <property name="sample1" class="SampleBean1"> <property name="sharedBean" ref="sb" /> </property> <property name="sample2" class="SampleBean2"> <property name="sharedBean" ref="sb" /> </property> <bean name="sb" class="SharedBean"> <property name="age" ref="15" /> <property name="name" ref="abc" /> </bean> </service>
| 定義による同一のBeanのインスタンスを参照可能な範囲はService内のみです。 Service間を跨いで同一のインスタンスを利用したい場合は、明示的にServiceのインタフェース(アクセッサメソッドなど)を経由して利用します。 |
1.5. 設定値生成のカスタマイズ
ObjectBuilderを利用し、propertyの値、beanのインスタンス生成処理をカスタマイズすることが可能です。
-
ObjectBuilderクラス指定による生成
org.iplass.mtp.spi.ObjectBuilderインタフェースを実装するクラスを作成し、property要素、bean要素のbuilder属性に指定します。
ObjectBuilderの実装例import org.iplass.mtp.spi.ObjectBuilder; public class SampleObjectBuilder implements ObjectBuilder<SampleBean> { private String propAFromNestProperty; @Override public void setProperties(Map<String, Object> properties) { (1) propAFromNestProperty = (String) properties.get("propA"); } @Override public SampleBean build() { (2) SampleBean bean = new SampleBean(System.currentTimeMillis()); bean.setPropA(propAFromNestProperty); return bean; } } public class SampleBean { private String propA; : public SampleBean(long someDynamicParam) { : : } public String getPropA() { return propA; } public void setPropA(String propA) { this.propA = propA; } }1 setProperties() メソッドを実装することにより、ネストされたproperty要素に定義されている値を取得することも可能です。 2 build()メソッドでインスタンスを生成します 設定ファイルの記述例<service> : : <property name="sample1" builder="SampleObjectBuilder"> <property name="propA" value="abc" /> </property> </service>上記の設定により、sample1の値はSampleObjectBuilderで生成されたSampleBeanのインスタンスが設定されます(propAの値は設定ファイルで設定した形で)。
-
buildスクリプトによる生成
ObjectBuilderの生成処理をGroovyScriptで記述することも可能です。 GroovyScriptはbuildScript要素で記述します。
GroovyScriptでは次の変数がバインドされます。
変数名 説明 name
property要素もしくはbean要素に指定されたname属性の値。
value
property要素に指定されたvalue属性(もしくはvalue要素)の値。
className
property要素もしくはbean要素に指定されたclass属性の値。
properties
property要素もしくはbean要素にネストして指定されたproperty要素。keyにname、valueにpropertyの設定値が格納されたMap形式のインスタンス。
args
property要素もしくはbean要素にネストして指定されたargs要素。keyにname、valueにargsの設定値が格納されたMap形式のインスタンス。
設定ファイルの記述例<service> : : <property name="sample1"> <buildScript> SampleBean sb = new SampleBean(System.currentTimeMillis()); sb.propA = properties.propA; return sb; </buildScript> <property name="propA" value="abc" /> </property> </service>上記の設定により、propAの値は設定ファイルから取得したSampleBeanのインスタンスが設定されます。
1.6. 設定値の難読化
service-configファイルに記載される値を難読化出来ます。 難読化する手順は以下の通りです。
難読化方式の設定を記述した暗号化プロパティファイル(crypt.properties)を作成します。
以下の項目を設定できます。
| 項目名 | 設定値 |
|---|---|
propertyValueCoder |
org.iplass.mtp.impl.core.config.PropertyValueCoderを実装するクラス名を指定する。 PropertyValueCoderには文字列をエンコード/デコードする処理を実装する。 以下の実装をデフォルトで提供。
未指定の場合はDefaultPropertyValueCoderが適用される。 |
classはorg.iplass.mtp.impl.core.config.DefaultPropertyValueCoderを指定します。
| 項目名 | 設定値 | ||
|---|---|---|---|
keyFactoryAlgorithm |
暗号化のための鍵生成アルゴリズム。 未指定の場合はデフォルト値(PBKDF2WithHmacSHA256) |
||
keySalt |
鍵生成時のsalt。 未指定の場合はデフォルト値 |
||
keyStretch |
鍵生成時のストレッチ回数。 未指定の場合はデフォルト値 |
||
keyLength |
鍵のbit長。 未指定の場合はデフォルト値(128) |
||
cipherAlgorithm |
暗号化アルゴリズム。 未指定の場合はデフォルト値(AES) |
||
passphraseSupplier |
org.iplass.mtp.impl.core.config.PassphraseSupplierを実装するクラス名を指定する。 PassphraseSupplierには鍵生成時のパスフレーズを取得する処理を実装する。 以下の実装をデフォルトで提供。
未指定の場合はPropertyFilePassphraseSupplierが適用される。 |
||
passphrase |
PropertyFilePassphraseSupplierを利用する場合、パスフレーズを指定。 |
||
aws.secretName |
SecretsManagerPassphraseSupplierを利用する場合、シークレット名を指定。 |
パスフレーズのみを設定する例です。
passphrase=hogehoge
AWS Secrets Manager にパスフレーズを定義し、その値を利用する例です。
{ "passphrase": "passphrase_value" } (1)
| 1 | SecretsManager で passphrase というKey/Valueを定義する。 |
passphraseSupplier=org.iplass.mtp.impl.core.config.secretsmanager.awsv2.SecretsManagerPassphraseSupplier
aws.secretName=test/passphrase/example2 (1)
| 1 | AWS Secrets Manager に登録したシークレット名 test/passphrase/example2 を設定することで、当該シークレットを取得することが可能。本例では、passphrase_value がパスフレーズとなる。 |
classはorg.iplass.mtp.impl.aws.secretsmanager.SecretsManagerPropertyValueCoderを指定します。
|
AWS SDK for Java 1.x はメンテナンスモードになっており、2025年12月 にサポートを終了する予定です。 |
| 項目名 | 設定値 |
|---|---|
aws.secretName |
シークレット名を指定。 |
例として、AWS Secrets Managerのシークレットに登録された設定値を取得する場合、以下のように設定します。
propertyValueCoder=org.iplass.mtp.impl.aws.secretsmanager.SecretsManagerPropertyValueCoder
aws.secretName=test/propertyValueCoder/example (1)
| 1 | AWS Secrets Manager に登録したシークレット名 test/propertyValueCoder/example を設定することで、当該シークレットを取得することが可能。 |
併せて、AWS Secrets Managerによる設定値の取得 も確認ください。
classはorg.iplass.mtp.impl.core.config.secretsmanager.awsv2.SecretsManagerPropertyValueCoderを指定します。
| 項目名 | 設定値 |
|---|---|
aws.secretName |
シークレット名を指定。 |
例として、AWS Secrets Managerのシークレットに登録された設定値を取得する場合、以下のように設定します。
propertyValueCoder=org.iplass.mtp.impl.core.config.secretsmanager.awsv2.SecretsManagerPropertyValueCoder
aws.secretName=test/propertyValueCoder/example (1)
| 1 | AWS Secrets Manager に登録したシークレット名 test/propertyValueCoder/example を設定することで、当該シークレットを取得することが可能。 |
併せて、AWS Secrets Managerによる設定値の取得 も確認ください。
VM引数、もしくはweb.xmlのcontext-paramでpropertiesファイルへのパス(ClassLoaderのResourceとしてのパス、もしくはfileパス)を指定します。 または、EntryPointBuilderクラスのcrypt(String)メソッドにてパスを指定します。
| パラメータ名 |
mtp.config.crypt |
-Dmtp.config.crypt=/crypt.properties
<context-param> <param-name>mtp.config.crypt</param-name> <!-- ■ crypt config file ■ --> <param-value>/crypt.properties</param-value> </context-param>
import org.iplass.mtp.runtime.EntryPoint;
:
:
//initialize EntryPoint on application startup
EntryPoint entryPoint = EntryPoint.builder()
.config("/app-service-config.xml")
.crypt("/crypt.properties").build();
Encoderを利用して難読化を行います。 難読化の際にcrypt.propertiesを利用します。 passphraseについてはコンソールから直接入力で指定します。
難読化したテキストをservice-configファイルに設定します。 併せてpropertyの属性としてencrypted="true"を指定します。
<property name="password" value="39y04KVcitPsSAQtXgvc=" encrypted="true" />
SecretsManagerPropertyValueCoderを利用し、AWS Secrets Managerのシークレットに登録された設定値を取得します。
Key-Value形式で事前に登録しておきます。本例では、シークレット名を test/propertyValueCoder/example として設定した想定です。
{
"xxxservice_secret_password": "secret_password_value",
"xxxservice_secret_key": "secret_key_value"
}
SecretsManagerPropertyValueCoder と、登録したシークレット名を設定します。
propertyValueCoder=org.iplass.mtp.impl.core.config.secretsmanager.awsv2.SecretsManagerPropertyValueCoder (1)
aws.secretName=test/propertyValueCoder/example (2)
| 1 | 本例では、SecretsManagerPropertyValueCoder を設定しています。 |
| 2 | AWS Secrets Manager に登録したシークレット名 test/propertyValueCoder/example を設定する。 |
AWS Secrets Managerのシークレットに登録されている設定値のキーをservice-configファイルに設定します。 併せてpropertyの属性としてencrypted="true"を指定します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE serviceDefinition>
<serviceDefinition>
<service>
<interface>org.iplass.mtp....XxxService</interface>
<class>org.iplass.mtp....XxxService</interface>
<property name="simpleValue" value="value123" />
<property name="password" value="xxxservice_secret_password" encrypted="true" /> (1)
<property name="key" value="xxxservice_secret_key" encrypted="true" /> (2)
</service>
</serviceDefinition>
| 1 | property 要素の value 属性に設定された "xxxservice_secret_password" が AWS Secrets Manager のキーとなります。値は secret_password_value が設定されます。 |
| 2 | property 要素の value 属性に設定された "xxxservice_secret_key" が AWS Secrets Manager のキーとなります。値は secret_key_value が設定されます。 |
1.7. プリプロセッサ
service-configファイルのプリプロセス処理を実行することが可能です。 プリプロセス処理を有効化(serviceDefinition要素の属性preprocessにtrueを指定)した場合、service-configファイルは読み込み前にGroovyTemplateとして実行されます。
例えば、環境依存の設定値をシステムプロパティや環境変数などから取得することが可能です。
$ \ はGroovyTemplateでは予約語となります。プリプロセス処理を有効化する場合、設定ファイル中の $ は \$ 、 \ は \\ のようにエスケープが必要になります。XMLコメント内の該当文字もエスケープが必要です。 |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE serviceDefinition>
<serviceDefinition preprocess="true"> (1)
:
:
<service>
<interface>org.iplass.mtp.impl.lob.LobStoreService</interface>
<property name="binaryStore" class="org.iplass.mtp.impl.lob.lobstore.file.FileLobStore">
<property name="rootDir" value="${System.getProperty('lobStoreDir')}" /> (2)
</property>
</service>
</serviceDefinition>
| 1 | serviceDefinitionにpreprocess="true"を指定します |
| 2 | システムプロパティlobStoreDirを読み込みます |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE serviceDefinition>
<serviceDefinition preprocess="true"> (1)
:
:
<service>
<interface>org.iplass.mtp.impl.lob.LobStoreService</interface>
<property name="binaryStore" class="org.iplass.mtp.impl.lob.lobstore.file.FileLobStore">
<property name="rootDir" value="${System.getenv('LOB_STORE_DIR')}" /> (2)
</property>
</service>
</serviceDefinition>
| 1 | serviceDefinitionにpreprocess="true"を指定します |
| 2 | 環境変数LOB_STORE_DIRを読み込みます |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE serviceDefinition>
<serviceDefinition preprocess="true"> (1)
<!-- <%
// プロパティファイルから制御フラグを取得
def props = new Properties()
getClass().getResource('/dev.properties').withInputStream {
props.load(it)
}
def rdb = props.getProperty('rdb', 'mysql')
def includeAdmin = props.getProperty('includeAdmin', 'true')
%> --> (2)
<inherits>/mtp-core-service-config-${rdb}.xml</inherits>
<inherits>/mtp-web-service-config.xml</inherits>
<inherits>/mtp-tools-service-config.xml</inherits>
<inherits>/gem-service-config.xml</inherits>
<!-- <% if (includeAdmin == 'true') {%> -->
<inherits>/adminconsole-service-config.xml</inherits>
<!-- <%}%> -->
:
:
</serviceDefinition>
| 1 | serviceDefinitionにpreprocess="true"を指定します |
| 2 | <% %>にScriptを記述可能です |
2. Service一覧
設定ファイルにて設定可能なServiceの一覧と概要を示します。
2.1. Core services
iPLAssの中心となる機能に関するサービス群です。
| 名前 | 概要 |
|---|---|
基盤内部でタスクを非同期実行するためのサービスです。 |
|
クラスタ通信にHttpMessageChannelを利用して非同期実行を行うサービスです。 |
|
Entityに対する登録・更新・削除を操作ログとして出力するサービスです。 |
|
認証関連のロガーを管理するサービスです。 |
|
認証を行うためのサービスです。 |
|
認証トークンを管理するためのサービスです。 |
|
AutoNumber型の採番を行うサービスです。 |
|
バイナリ形式のメタデータをバイト配列でメモリ内に保持しない仕組みを提供する為のサービスです。 |
|
キャッシュのサービスです。 |
|
クラスタ間通信のサービスです。 |
|
データベース接続を行うためのサービスです。 |
|
Cube集計のサービスです。 |
|
RDBによるキューを利用した標準の非同期実行のサービスです。 |
|
エンティティを管理するサービスです。 |
|
全文検索のサービスです。 |
|
国際化のサービスです。 |
|
コマンド実行時に呼び出されるインターセプターを管理するサービスです。 |
|
保存リストの実行を管理するサービスです。 |
|
LOBデータの永続化を行うサービスです。 |
|
ログ全般に関する設定を行うサービスです。 |
|
メール送信を行うためのサービスです。 |
|
リソースバンドルを管理するためのサービスです。 |
|
メタデータの管理を行うためのサービスです。 |
|
oidの採番を行うサービスです。 |
|
二段階認証のワンタイム認証コードを生成するサービスです。 |
|
プロパティを管理するサービスです。 |
|
プロパティ単位の暗号化を行うサービスです。 |
|
モバイル端末へのプッシュ通知を行うためのサービスです。 |
|
EQLの外部ヒント句を管理するサービスです。 |
|
各種RDBとのインターフェースとなるRdbAdapterを管理するサービスです。 |
|
RDBを利用したキューのサービスです。 |
|
スケジュールタスクの定義(メタデータ)を管理するサービスです。 |
|
動的スクリプトの実行を管理するサービスです。 |
|
ランダム文字列を生成するための設定を管理するサービスです。 |
|
SMS送信を行うためのサービスです。 |
|
Entityデータの永続化を行うサービスです。 |
|
構文解析のためのサービスです。 |
|
タスクIDの採番を行うサービスです。 |
|
テナント全体の振る舞いを設定するサービスです。 |
|
入力チェックを行うためのサービスです。 |
|
アプリケーション起動時のウォームアップ(暖気)処理を管理するサービスです。 |
|
Webhookの動作を管理するサービスです。 |
|
ワークフローの動作を管理するサービスです。 |
2.2. Web services
ActionやWebApi、Web全般に関するサービス群です。
| 名前 | 概要 |
|---|---|
ブラウザからのリクエスト時に呼び出されるインターセプターを管理するサービスです。 |
|
CSVアップロードを管理するサービスです。 |
|
EntityのCSVインポートに関するサービスです。 |
|
Entityデータのアップロードを管理するサービスです。 |
|
EntityWebApiを管理するサービスです。 |
|
過去にアクセスされたIPアドレスの保持を行うためのサービスです。 |
|
OAuth2.0 Authorization ServerおよびOpenID Connect Providerの機能を管理するためのサービスです。 |
|
ODataサービスの動作を管理するサービスです。 |
|
OpenAPIに関連する機能を管理するためのサービスです。 |
|
OpenID Connect Relying Partyの機能を管理するためのサービスです。 |
|
帳票出力を管理するサービスです。 |
|
SAML認証を行うためのサービスです。 |
|
SCIM Identity Provider 機能の動作を管理するサービスです。 |
|
SCIM Service Provider 機能の動作を管理するサービスです。 |
|
テナントの稼動状態を管理するサービスです。 |
|
WebApiのJAXBでの変換対象のクラス定義を行うサービスです。 |
|
WebApiのJSON出力時のObjectMapper定義を行うサービスです。 |
|
WebApiを管理するサービスです。 |
|
WebAuthn仕様による認証を行うためのサービスです。 |
|
Webアプリケーション全般の動作を管理するサービスです。 |
2.3. Gem services
Gem(Generic Entity Manager)画面に関するサービス群です。
| 名前 | 概要 |
|---|---|
集計機能のサービスです。 |
|
Cube集計のカスタムメジャーのテンプレートを管理するサービスです。 |
|
EntityListing機能のサービスです。 |
|
汎用画面全般の設定を行うサービスです。 |
|
MDC版汎用画面全般の設定を行うサービスです。 |
|
MDC版の相対範囲を独自に追加するためのサービスです。 |
|
MDC版の詳細画面の設定を行うサービスです。 |
|
MDC版の検索画面の設定を行うサービスです。 |
|
集計機能やEntityListingの日付の検索条件で、相対範囲を独自に追加するためのサービスです。 |
2.4. Admin services
管理画面(AdminConsole)に関するサービス群です。
| 名前 | 概要 |
|---|---|
AdminConsoleの操作ログに関するサービスです。 |
|
AdminConsoleService全般のサービスです。 |
2.5. Tools services
各種ツール類(AdminConsoleのTools、バッチ等)に関するサービス群です。
| 名前 | 概要 |
|---|---|
Entityデータのツールに関するサービスです。 |
|
StorageSpaceの移行ツールに関するサービスです。 |
|
テナント管理ツールに関するサービスです。 |
2.6. Other services
その他のプラグインとなるモジュールに関するサービス群です。
| 名前 | 概要 |
|---|---|
AWSの設定を管理する サービスです。AWS SDK for Java 1.x の設定を管理します。 |
|
AWSの設定を管理する サービスです。AWS SDK for Java 2.x の設定を管理します。 |
|
InfinispanServiceを管理する サービスです。 |
|
RedisServiceを管理する サービスです。 |
|
reCAPTCHAによるロボット排除を管理するためのサービスです。 |
|
メールやSMSを利用して検証を行うためのサービスです。 |
|
Web会員管理機能のサービスです。 |
|
メトリクス収集、モニタリングシステムへの連携を行うためのサービスです。 |
|
GoogleCloudの設定を管理するサービスです。 |
3. Serviceの詳細
3.1. ActionMappingService
アクションの定義(メタデータ)と、アクションがリクエストされた時に呼び出されるインターセプターを管理するサービスです。
インタフェース名
org.iplass.mtp.impl.web.actionmapping.ActionMappingService
実装クラス名
org.iplass.mtp.impl.web.actionmapping.ActionMappingService
ActionMappingServiceの設定
ブラウザからのリクエスト時に呼び出されるインターセプターを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
interceptor |
RequestInterceptor、複数指定可 |
リクエスト用のインターセプター。 |
classはorg.iplass.mtp.web.interceptor.RequestInterceptorの実装クラスを指定します。
標準で、以下のRequestInterceptorを提供します。
classはorg.iplass.mtp.impl.web.interceptors.InitialInterceptorを指定します。
リクエストの初期処理として言語とプレビュー時刻を設定するインターセプターです。設定変更可能な項目はありません。
classはorg.iplass.mtp.impl.web.interceptors.ActionCacheInterceptorを指定します。
キャッシュを行うインターセプターです。設定変更可能な項目はありません。
classはorg.iplass.mtp.impl.web.interceptors.AuthInterceptorを指定します。
認証を行うインターセプターです。設定変更可能な項目はありません。
classはorg.iplass.mtp.impl.web.interceptors.ExceptionInterceptorを指定します。
例外のハンドリングを行うインターセプターです。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
noHande |
String、複数指定可 |
ハンドリングを行わない例外クラス。 複数指定する場合はプロパティを複数設定するか例外クラスを半角コロン(:)で区切って設定します。 |
eliminate |
String、複数指定可 |
ハンドリングから除外する例外クラス。 複数指定する場合はプロパティを複数設定するか例外クラスを半角コロン(:)で区切って設定します。 |
classはorg.iplass.mtp.impl.web.interceptors.LoggingInterceptorを指定します。
ログの出力を行うインターセプターです。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
actionTrace |
boolean |
アクションのログを出力するか。デフォルト値はtrueです。 |
partsTrace |
boolean |
画面の1部品として実行されたアクションのログを出力するか。デフォルト値はtrueです。 |
paramName |
String、複数指定可 |
ログ出力するパラメータ名。 |
noStackTrace |
String、複数指定可 |
スタックトレースを出力しない例外クラス。 複数指定する場合はプロパティを複数設定するか例外クラスを半角コロン(:)で区切って設定します。 |
warnLogThresholdOfSqlExecutionCount |
int |
警告ログを出力するSQL実行回数の閾値。 |
warnLogThresholdOfExecutionTimeMillis |
long |
警告ログを出力する実行時間の閾値(ミリ秒)。 |
メンテナンスチェックを行うインターセプターです。設定変更可能な項目はありません。
classはorg.iplass.mtp.impl.micrometer.metrics.web.action.ActionMetricsInterceptorを指定します。
Actionのレイテンシ・SQLの発行回数をメトリクスとして記録するインターセプターです。Micrometerモジュールを適用した場合にデフォルトで追加されます。
| 項目 | 値 | 説明 |
|---|---|---|
provider |
ActionMetricsTagsProvider |
org.iplass.mtp.impl.micrometer.metrics.web.action.ActionMetricsTagsProviderを実装するクラス。メトリクスに付与するタグをカスタマイズしたい場合に指定可能です。デフォルトでは、org.iplass.mtp.impl.micrometer.metrics.web.action.DefaultActionMetricsTagsProviderが使用されます。 |
設定例
<service>
<interface>org.iplass.mtp.impl.web.actionmapping.ActionMappingService</interface>
<property name="interceptor" class="org.iplass.mtp.impl.web.interceptors.InitialInterceptor" />
<property name="interceptor" class="org.iplass.mtp.impl.web.interceptors.AuthInterceptor" />
<property name="interceptor" class="org.iplass.mtp.impl.web.interceptors.ExceptionInterceptor">
<property name="noHande" value="org.iplass.mtp.auth.NeedTrustedAuthenticationException" />
<property name="eliminate" value="org.apache.catalina.connector.ClientAbortException" />
<property name="eliminate" value="org.iplass.mtp.impl.web.WebProcessRuntimeException:org.apache.catalina.connector.ClientAbortException" />
</property>
<property name="interceptor" class="org.iplass.mtp.impl.web.interceptors.UnavailableInterceptor" />
<property name="interceptor" class="org.iplass.mtp.impl.web.interceptors.LoggingInterceptor">
<property name="partsTrace" value="true" />
<property name="paramName" value="defName" />
<property name="noStackTrace" value="org.apache.catalina.connector.ClientAbortException" />
<property name="noStackTrace" value="org.iplass.mtp.impl.web.WebProcessRuntimeException:org.apache.catalina.connector.ClientAbortException" />
</property>
<property name="interceptor" class="org.iplass.mtp.impl.web.interceptors.ActionCacheInterceptor" />
</service>
3.2. AdminAuditLoggingService
AdminConsoleの操作ログに関するサービスです。
インタフェース名
org.iplass.adminconsole.server.base.service.auditlog.AdminAuditLoggingService
実装クラス名
org.iplass.adminconsole.server.base.service.auditlog.AdminAuditLoggingService
AdminAuditLoggingServiceの設定
AdminAuditLoggingServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
logCompact |
boolean |
LongTextなど長すぎる文字列を指定文字数でカットするか。デフォルト値はfalseです。 |
logQuery |
boolean |
クエリをロガーに出力するか。デフォルト値はfalseです。 |
logSelectValueWithLabel |
boolean |
SelectValueをログに出力する時に、ラベルで出力するか。デフォルト値はfalseです。 |
logReferenceWithLabel |
boolean |
Referenceをログに出力する時に、nameで出力するか。falseの場合、oidを出力します。デフォルト値はfalseです。 |
textMaxLength |
int |
LongTextなど長すぎる文字列をカットする文字数。デフォルト値は256です。 |
設定例
<service>
<interface>org.iplass.adminconsole.server.base.service.auditlog.AdminAuditLoggingService</interface>
<!-- logファイルへの出力時、LongTextなど長すぎる文字列を全部出力しない場合はtrue -->
<property name="logCompact" value="false" />
<!-- logCompactがtrueの場合、最大文字数(デフォルト256文字まで) -->
<!-- property name="textMaxLength" value="256" / -->
<!-- if log query, set to true -->
<property name="logQuery" value="false" />
</service>
3.3. AdminConsoleService
AdminConsoleService全般のサービスです。
インタフェース名
org.iplass.adminconsole.server.base.service.AdminConsoleService
実装クラス名
org.iplass.adminconsole.server.base.service.AdminConsoleService
AdminConsoleServiceの設定
AdminConsoleServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
showServerInfo |
boolean |
AdminConsole上で環境情報としてサーバ情報を表示するか |
logDownloadConfig |
アプリケーションログのダウンロード設定 |
|
maxUploadFileSize |
long |
AdminConsoleでのファイルアップロード時のサイズ上限(byte)。デフォルトは1GByteです。 |
classはorg.iplass.adminconsole.server.base.service.LogConfigを指定します。
LogExplorerからサーバに出力されたログをダウンロードするための設定です。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
enabled |
boolean |
ログファイルのダウンロードを有効にするか |
logHome |
String、複数指定可 |
ログファイルの格納フォルダ |
fileFilter |
String、複数指定可 |
LogExplorerに表示するファイル名のフィルタ、正規表現で指定 |
設定例
<service>
<interface>org.iplass.adminconsole.server.base.service.AdminConsoleService</interface>
<!-- AdminConsole上で環境情報としてサーバ情報を表示するか -->
<property name ="showServerInfo" value="true" />
<!-- AdminConsoleで参照可能なログの設定 -->
<property name="logDownloadConfig" class="org.iplass.adminconsole.server.base.service.LogConfig">
<property name="enabled" value="true" />
<!--
ログファイルの格納フォルダを指定
${tenantId}:テナントID
${tenantName}:テナント名
*:任意のフォルダ名
例1:/logs/${tenantId}/
/logs/フォルダ直下にテナントIDのフォルダがあり、それ以降にテナントごとのログがある。
例2:/logs/*/${tenantId}/
/logs/フォルダ直下に任意のフォルダがあり、その下にテナントIDのフォルダ、それ以降にテナントごとのログがある。
例えば、複数サーバのログを/logs/ap1/、/logs/ap2/などに配置している場合。
-->
<property name="logHome" value="/logs/${tenantId}/" />
<!--
ファイル名に対するFilterを指定(正規表現)
例:.*app\.log.* (== *app.log*)
-->
<property name="fileFilter" value=".*app\.log.*" />
</property>
<!-- ファイルアップロード時のMAXファイルサイズ(Byte) -->
<!--
<property name ="maxUploadFileSize" value="1073741824" />
-->
</service>
3.4. AggregationService
集計機能の定義(メタデータ)を管理するサービスです。
インタフェース名
org.iplass.mtp.impl.aggregation.unit.AggregationService
実装クラス名
org.iplass.mtp.impl.aggregation.unit.AggregationService
AggregationServiceの設定
AggregationServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
useSubQueryIfPossible |
boolean |
フィルター条件に保存リストを利用する場合に、可能な限りサブクエリを利用するか。デフォルト値はfalseです。 |
設定例
<service>
<interface>org.iplass.mtp.impl.aggregation.unit.AggregationService</interface>
<class>org.iplass.mtp.impl.aggregation.unit.AggregationService</class>
<!-- フィルター条件に保存リストを利用する場合に、可能な限りサブクエリを利用するか否か -->
<property name="useSubQueryIfPossible" value="false" />
</service>
3.5. AsyncTaskService
基盤内部でタスクを非同期実行するためのサービスです。
インタフェース名
org.iplass.mtp.impl.async.AsyncTaskService
実装クラス名
org.iplass.mtp.impl.async.thread.ThreadingAsyncTaskService
ThreadingAsyncTaskServiceの設定
ThreadingAsyncTaskServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
corePoolSize |
int |
非同期処理のためのスレッドプールのサイズ。 アイドル状態であってもプール内に維持されるスレッドの数です。デフォルト値は4です。 |
threadPoolType |
String |
スレッドプールのタイプ。
未指定の場合、threadPoolTypeは
|
maximumPoolSize |
int |
スレッドプール内で使用可能なスレッドの最大数。 -1が設定された場合はintの最大値が設定されます。デフォルト値は-1です。 |
keepAliveTime |
long |
threadPoolTypeが |
useResourceHolder |
boolean |
ResourceHolderを使用するか。デフォルト値はtrueです。 |
設定例
<service>
<interface>org.iplass.mtp.impl.async.AsyncTaskService</interface>
<class>org.iplass.mtp.impl.async.thread.ThreadingAsyncTaskService</class>
<property name="maximumPoolSize" value="256" />
</service
3.6. AsyncTaskServiceForHttpMessageChannel
クラスタ通信にHttpMessageChannelを利用して非同期実行を行うサービスです。 ClusterServiceでNode間のメッセージ送信を非同期実行するためのAsyncTaskServiceの定義です。
インタフェース名
org.iplass.mtp.impl.async.AsyncTaskService
実装クラス名
org.iplass.mtp.impl.async.thread.ThreadingAsyncTaskService
ThreadingAsyncTaskServiceの設定
ThreadingAsyncTaskServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
corePoolSize |
int |
非同期処理のためのスレッドプールのサイズ。 アイドル状態であってもプール内に維持されるスレッドの数です。デフォルト値は4です。 |
threadPoolType |
String |
スレッドプールのタイプ。
未指定の場合、threadPoolTypeは
|
maximumPoolSize |
int |
スレッドプール内で使用可能なスレッドの最大数。 -1が設定された場合はintの最大値が設定されます。デフォルト値は-1です。 |
keepAliveTime |
long |
threadPoolTypeが |
useResourceHolder |
boolean |
ResourceHolderを使用するか。デフォルト値はtrueです。 |
設定例
<service name="AsyncTaskServiceForHttpMessageChannel">
<interface>org.iplass.mtp.impl.async.AsyncTaskService</interface>
<class>org.iplass.mtp.impl.async.thread.ThreadingAsyncTaskService</class>
<!--
クラスタ通信にHttpMessageChannelを利用する場合の非同期送信のためのスレッドプールの設定
corePoolSizeを、実際のサーバ数×2程度の値に設定
-->
<property name="corePoolSize" value="4" />
<!--
スレッドプールのタイプ。未指定の場合、threadPoolTypeは"cached"に設定され、
maximumPoolSize以上のリクエストがあると、RejectedExecutionExceptionが発生してしまう。
-->
<property name="threadPoolType" value="fixed" />
</service>
3.7. AuditLoggingService
Entityに対する登録・更新・削除を操作ログとして出力するサービスです。
インタフェース名
org.iplass.mtp.impl.entity.auditlog.AuditLoggingService
実装クラス名
org.iplass.mtp.impl.entity.auditlog.LoggerAuditLoggingService
org.iplass.mtp.impl.entity.auditlog.RdbAuditLoggingService
LoggerAuditLoggingServiceの設定
ロガーへの出力内容を設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
logCompact |
boolean |
LongTextなど長すぎる文字列を指定文字数でカットするか。デフォルト値はfalseです。 |
logQuery |
boolean |
クエリをロガーに出力するか。デフォルト値はfalseです。 |
logSelectValueWithLabel |
boolean |
SelectValueをログに出力する時に、ラベルで出力するか。デフォルト値はfalseです。 |
logReferenceWithLabel |
boolean |
Referenceをログに出力する時に、nameで出力するか。falseの場合、oidを出力します。デフォルト値はfalseです。 |
textMaxLength |
int |
LongTextなど長すぎる文字列をカットする文字数。デフォルト値は256です。 |
maskTarget |
ログをマスクする際に使用する、個別のMaskTargetを設定。 |
classはorg.iplass.mtp.impl.entity.auditlog.MaskTargetを指定します。 マスク対象のEntityとProperty、マスク方式を設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
entity |
String |
マスク対象のEntityを指定します。"*"で全てのEntityを指定可能です。 |
property |
String |
マスク対象のPropertyを指定します。"*"で全てのPropertyを指定可能です。また、"*"指定のEntity、PropertyであってもProperty名を個別で指定することにより、個別指定の |
maskHandler |
マスク方式を設定します。 |
classはorg.iplass.mtp.impl.entity.auditlog.LogMaskHandlerの実装クラスを指定します。 標準で、以下のMaskHandlerを提供します。
値を固定文字列でマスクするLogMaskHandlerです。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
maskString |
String |
設定した文字列で値を置き換えます。 |
値を正規表現でマスクするLogMaskHandlerです。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
maskChar |
String |
正規表現に一致した文字を |
maskRegex |
String |
正規表現のパターン。指定できる文字列は |
値をハッシュ化してマスクするLogMaskHandlerです。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
hashAlgorithm |
String |
ハッシュのアルゴリズムを指定。 デフォルトは |
マスクしないことを明示するLogMaskHandlerです。 "*"指定でマスク対象のPropertyとなる場合でも、LogNoMaskHandlerを個別のPropertyに指定することにより、マスクさせないことが可能です。
RdbAuditLoggingServiceの設定
RDBとロガーへの出力内容を設定します。
設定項目
LoggerAuditLoggingServiceの設定項目に加え以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
searchResultCacheLimit |
long |
検索結果からユーザー名などの追加情報を取得する為の内部キャッシュサイズ。 |
logIndexOrder |
boolean |
多重度が複数のプロパティの更新ログを記録する際、並び順(配列のindex)の変更も記録するか否か。デフォルト値はtrueです。 |
disableLogging |
boolean |
RDBへのログ記録を一時的に無効化したい場合trueを指定。 システム管理者によるデータメンテナンス時にログが記録されるのを防ぎたい場合、一時的にログ記録を無効化することが可能です。 |
設定例
<service>
<interface>org.iplass.mtp.impl.entity.auditlog.AuditLoggingService</interface>
<class>org.iplass.mtp.impl.entity.auditlog.RdbAuditLoggingService</class>
<!-- logファイルへの出力時、LongTextなど長すぎる文字列を全部出力しない場合(デフォルト256文字まで)はtrue -->
<property name="logCompact" value="false" />
<!-- if log query, set to true -->
<property name="logQuery" value="false" />
<!-- Internal cache size for retrieving additional information, such as user name, from search result -->
<property name="searchResultCacheLimit" value="50" />
<!-- log出力時、SelectValueのコードとラベルを出力する場合はtrue -->
<property name="logSelectValueWithLabel" value="true" />
<!-- log出力時、Referenceのoidとnameを出力する場合はtrue -->
<property name="logReferenceWithLabel" value="true" />
<!-- logファイルへ出力されるプロパティのマスク設定 -->
<property name="maskTarget" class="org.iplass.mtp.impl.entity.auditlog.MaskTarget">
<property name="entity" value="entityA" />
<property name="property" value="propertyA" />
<property name="maskHandler" ref="allMaskHandler" />
</property>
<property name="maskTarget" class="org.iplass.mtp.impl.entity.auditlog.MaskTarget">
<property name="entity" value="*" />
<property name="property" value="propertyB" />
<property name="maskHandler" ref="regexMaskHandler" />
</property>
<bean name="allMaskHandler" class="org.iplass.mtp.impl.entity.auditlog.LogAllMaskHandler">
<property name="maskString" value="*****" />
</bean>
<bean name="regexMaskHandler" class="org.iplass.mtp.impl.entity.auditlog.LogRegexMaskHandler">
<property name="maskChar" value="*" />
<property name="maskRegex" value=".+?" />
</bean>
<bean name="hashMaskHandler" class="org.iplass.mtp.impl.entity.auditlog.LogHashMaskHandler">
<property name="hashAlgorithm" value="SHA-256" />
</bean>
<bean name="noMaskHandler" class="org.iplass.mtp.impl.entity.auditlog.LogNoMaskHandler">
</bean>
</service>
3.8. AuthLoggerService
認証関連のロガーを管理するサービスです。
インタフェース名
org.iplass.mtp.impl.auth.log.AuthLoggerService
実装クラス名
org.iplass.mtp.impl.auth.log.AuthLoggerService
AuthLoggerServiceの設定
AuthLoggerServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
loggers |
AuthLogger、複数指定可 |
ロガーの設定。
ロガー名(loggerName)が |
classはorg.iplass.mtp.impl.auth.log.AuthLoggerの実装クラスを指定します。
標準で、以下のAuthLoggerを提供します。
classはorg.iplass.mtp.impl.auth.log.Slf4jAuthLoggerを指定します。
SLF4Jを利用して認証のログ出力を行うロガーです。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
loggerName |
String |
ロガー名。 |
slf4LoggerName |
String |
SLF4Jのロガー名。デフォルト値は |
classはorg.iplass.mtp.impl.auth.log.MultiAuthLoggerを指定します。
複数のロガーを保持します。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
loggerName |
String |
ロガー名。 |
logger |
AuthLogger、複数指定可 |
標準のロガーの設定。 |
classはorg.iplass.mtp.impl.auth.log.EnterpriseSlf4jAuthLoggerを指定します。
SLF4Jを利用して認証のログ出力を行うロガーです。 設定可能はSlf4jAuthLoggerを参照してください。
classはorg.iplass.mtp.impl.micrometer.metrics.authentication.AuthenticationEventMetricsを指定します。
認証試行の成功・失敗回数をメトリクスとして記録するロガーです。Micrometerモジュールを適用した場合、デフォルトでMultiAuthLoggerのロガーとして、EnterpriseSlf4jAuthLoggerと共に使用されます。設定可能な項目はありません。
設定例
<service>
<interface>org.iplass.mtp.impl.auth.log.AuthLoggerService</interface>
<property name="logger" class="org.iplass.mtp.impl.auth.log.EnterpriseSlf4jAuthLogger">
<property name="loggerName" value="default" />
</property>
</service>
3.9. AuthService
認証を行うためのサービスです。 認証プロバイダを切り替えることにより、様々な認証を行うことができます。
インタフェース名
org.iplass.mtp.impl.auth.AuthService
実装クラス名
org.iplass.mtp.impl.auth.AuthService
org.iplass.mtp.impl.auth.EnterpriseAuthService
AuthServiceの設定
AuthServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
userSessionStore |
ユーザーのセッションを管理するストアオブジェクトの設定。 |
|
authorizationProvider |
認可処理を行うプロバイダの設定。 |
|
authenticationProvider |
AuthenticationProvider、複数指定可 |
認証処理を行うプロバイダの設定。 |
EnterpriseAuthServiceの設定
AuthServiceを設定します。
設定項目
AuthServiceの設定を参照してください。
classはorg.iplass.mtp.impl.auth.authenticate.UserSessionStoreの実装クラスを指定します。
org.iplass.mtp.impl.auth.authenticate.DefaultUserSessionStore
標準で提供しているUserSessionStoreです。
classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserSessionStoreを指定します。 以下の項目を指定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
shareLoginSession |
boolean |
セッションに保持するログイン情報を複数テナントで共有するか。 |
sessionFixationProtection |
DefaultUserSessionStore.SessionFixationProtectionMethod |
セッション固定攻撃対策方法。DefaultUserSessionStore.SessionFixationProtectionMethodのenum値を指定。 次のいずれかを指定します。
デフォルト値は |
classはorg.iplass.mtp.impl.auth.authorize.AuthorizationProviderの実装クラスを指定します。
org.iplass.mtp.impl.auth.authorize.builtin.BuiltinAuthorizationProvider
iPLAssの標準認可プロバイダです。
classはorg.iplass.mtp.impl.auth.authorize.builtin.BuiltinAuthorizationProviderを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
authorizationContextHandler |
Permission毎の処理を表現するクラスの設定。 |
|
grantAllPermissionsToAdmin |
boolean |
Adminユーザーに対し全権限を与えるか。 falseが設定された場合はAdminユーザーに対しロール制御が適用されます。 デフォルト値はtrueです。 |
classはorg.iplass.mtp.impl.auth.authorize.builtin.AuthorizationContextHandlerの実装クラスを指定します。
org.iplass.mtp.impl.auth.authorize.builtin.action.ActionAuthContextHandler org.iplass.mtp.impl.auth.authorize.builtin.cube.CubeAuthContextHandler org.iplass.mtp.impl.auth.authorize.builtin.entity.EntityAuthContextHandler org.iplass.mtp.impl.auth.authorize.builtin.webapi.WebApiAuthContextHandler org.iplass.mtp.impl.auth.authorize.builtin.workflow.WorkflowAuthContextHandler
WebApi権限の処理を行うクラスです。
classはorg.iplass.mtp.impl.auth.authorize.builtin.action.ActionAuthContextHandlerを指定します。
WebApi権限の処理を行うクラスです。
classはorg.iplass.mtp.impl.auth.authorize.builtin.cube.CubeAuthContextHandlerを指定します。
Entity権限の処理を行うクラスです。
classはorg.iplass.mtp.impl.auth.authorize.builtin.entity.EntityAuthContextHandlerを指定します。 以下の項目を指定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
useCorrelatedSubqueryOnEntityLimitCondition |
boolean |
Entity権限による限定条件を付与する際、相関サブクエリにするか否か。 デフォルト値はtrueです。 |
WebApi権限の処理を行うクラスです。
classはorg.iplass.mtp.impl.auth.authorize.builtin.webapi.WebApiAuthContextHandlerを指定します。
Workflow権限の処理を行うクラスです。
classはorg.iplass.mtp.impl.auth.authorize.builtin.workflow.WorkflowAuthContextHandlerを指定します。
classはorg.iplass.mtp.impl.auth.authenticate.AuthenticationProviderの実装クラスを指定します。
標準で、以下のAuthenticationProviderを提供します。
iPLAssの標準認証プロバイダです。 DBに保存されたユーザー情報を元にid/password認証します。 パスワードの複雑度、ロックアウト設定など、認証ポリシーにて設定可能です。
classはorg.iplass.mtp.impl.auth.authenticate.builtin.BuiltinAuthenticationProviderを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
providerName |
String |
プロバイダ名称。
複数のプロバイダを設定する場合は、それぞれ一意となる名称を設定してください。
デフォルト値は |
updatable |
boolean |
アカウント管理モジュールの使用可否。 デフォルト値はtrueです。
|
passwordHashSetting |
PasswordHashSetting 、複数指定可 |
パスワードHashアルゴリズム。 複数定義することにより既存アルゴリズムを動作させつつ、新規のパスワード更新時には新しいバージョンのアルゴリズムにて動作させることが可能です。 |
autoLoginHandler |
AutoLoginHandler |
自動ログインハンドラ。 この認証プロバイダを利用した自動ログイン処理を行う場合に設定します。 デフォルトの実装として次のクラスを利用可能です。 |
userEntityResolver |
UserEntityResolver |
認証成功後のユーザーEntityの取得方法を設定します。 次のいずれかを指定可能です。 |
パスワードHashアルゴリズムに関する設定です。
classはorg.iplass.mtp.impl.auth.authenticate.builtin.PasswordHashSettingクラス、もしくはそのサブクラスを指定します。
標準で、以下のPasswordHashSettingを提供します。
PasswordHashSettingクラスを利用する場合は、 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
version |
String |
パスワードHashアルゴリズムのバージョン値。 アルゴリズム設定を変更する場合は、世代順にインクリメントし、重複しない値を設定してください。 デフォルト値は1です。 |
passwordHashAlgorithm |
String |
設定可能なアルゴリズムについては MessageDigest アルゴリズム を参照して下さい。
デフォルト値は |
systemSalt |
String |
システムで取り扱うソルト値(俗に言うペッパーです)。実際のソルト値はユーザ単位のランダムのソルト値とこのsystemSaltの両方が適用されます。
新しいversionを追加する度に新しい値を設定することを推奨します。
デフォルト値は |
stretchCount |
int |
パスワードのHashを行う際のストレッチ回数。 デフォルト値は1000です。 |
classはorg.iplass.mtp.impl.auth.authenticate.builtin.Argon2PasswordHashSettingを指定します。
Argon2によるパスワードHashアルゴリズムに関する設定です。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
version |
String |
パスワードHashアルゴリズムのバージョン値。 アルゴリズム設定を変更する場合は、世代順にインクリメントし、重複しない値を設定してください。 |
passwordHashAlgorithm |
String |
|
hashLength |
int |
生成するハッシュのサイズ(byte)。デフォルト値は32です。 |
systemSalt |
String |
システムで取り扱うソルト値(俗に言うペッパーです)。Argon2におけるsecretパラメータです。 新しいversionを追加する度に新しい値を設定することを推奨します。 |
parallelism |
int |
並列数。 |
memorySizeKB |
int |
メモリサイズ(KiB)。 |
iterations |
int |
反復回数。 |
IdPasswordAutoLoginHandlerを利用すると、WebApi呼び出し時にHTTPヘッダーにID、パスワードを指定することにより、認証することが可能となります。 次のいずれかの方法を利用可能です。
-
カスタムヘッダーによる認証
X-Auth-Id、X-Auth-PasswordヘッダーにそれぞれID、パスワードを指定することにより認証します。 -
BASIC認証による認証
BASIC認証方式による認証を行います。 AuthorizationヘッダーにID、パスワードを指定します。
classはorg.iplass.mtp.impl.auth.authenticate.builtin.web.IdPasswordAutoLoginHandlerを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
enableBasicAuthentication |
boolean |
WebApi呼び出し時にBASIC認証による認証を有効化する場合はtrueを設定します。デフォルト値はfalseです。 |
rejectAmbiguousRequest |
boolean |
すでにログイン済みの場合にID、パスワードを指定された場合の挙動を制御します。デフォルト値はfalseです。
|
Userエンティティを検索してユーザー情報を取得します。 ユーザーが検索出来ない場合ログイン失敗とします。
classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolverを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
unmodifiableUniqueKeyProperty |
String |
Userエンティティを検索する際のキーとするプロパティ名。 このプロパティに指定された項目=[ユニークID](uniquePrincipalTypeで指定したPrincipalの値)を条件にUserエンティティを検索します。 デフォルト値はoidです。 |
eagerLoadReferenceProperty |
String、複数指定可 |
ログイン後のUserエンティティ検索時に同時に取得する参照プロパティ。 デフォルトの設定では、Userの参照プロパティであるrankおよびgroupsが指定されています。 |
filterCondition |
String |
ユーザー検索時のフィルター条件を指定可能です。 |
classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。 UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。
ユーザー自身に紐づけられた、永続的なopaqueな(それ自体に意味を持たないランダムな文字列の)Tokenにより認証するプロバイダです。 Tokenは事前に 'org.iplass.mtp.auth.tokenAuthTokenInfoList' インタフェースを用いて事前に生成されている必要があります。
classはorg.iplass.mtp.impl.auth.authenticate.simpletoken.SimpleAuthTokenAuthenticationProviderを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
providerName |
String |
|
autoLoginHandler |
AutoLoginHandler |
自動ログインハンドラ。 この認証プロバイダを利用した自動ログイン処理を行う場合に設定します。 デフォルトの実装として次のクラスを利用可能です。 |
credentialTypeForTrust |
String |
信頼された認証に格上げする際に必要なCredentialの実装クラス名を指定します。
例えば、 |
accountHandleClassForTrust |
String |
信頼された認証に格上げする際に必要なAccountHandleの実装クラス名を指定します。
例えば、 |
userEntityResolver |
UserEntityResolver |
認証成功後のユーザーEntityの取得方法を設定します。 次のいずれかを指定可能です。 |
WebApi呼び出し時に、Bearer Tokenによる認証をすることが可能となります。
classはorg.iplass.mtp.impl.auth.authenticate.token.web.BearerTokenAutoLoginHandlerを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
rejectAmbiguousRequest |
boolean |
すでにログイン済みの場合にBearer Tokenを指定された場合の挙動を制御します。デフォルト値はfalseです。
|
bearerTokenHeaderOnly |
boolean |
Bearer TokenをHTTP Headerからのみ取得する場合はtrueを指定します。 |
authTokenType |
String |
AuthTokenServiceで定義される、このBearerTokenAutoLoginHandlerが扱うAuthTokenHandlerのtypeを指定します。 |
classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolverを指定します。
詳細は DefaultUserEntityResolver を参照してください。
classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。
org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。
OAuth2.0のアクセストークンにより認証するプロバイダです。
WebApi呼び出し時に引き渡されるアクセストークンによりユーザーを認証します。アクセストークンは事前にOAuth2.0のフローに従い取得します。
classはorg.iplass.mtp.impl.auth.oauth.AccessTokenAuthenticationProviderを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
providerName |
String |
|
autoLoginHandler |
AutoLoginHandler |
自動ログインハンドラ。 この認証プロバイダを利用した自動ログイン処理を行う場合に設定します。 次のクラスを利用します。 |
credentialTypeForTrust |
String |
信頼された認証に格上げする際に必要なCredentialの実装クラス名を指定します。
例えば、 |
accountHandleClassForTrust |
String |
信頼された認証に格上げする際に必要なAccountHandleの実装クラス名を指定します。
例えば、 |
userEntityResolver |
UserEntityResolver |
認証成功後のユーザーEntityの取得方法を設定します。 次のいずれかを指定可能です。 |
classはorg.iplass.mtp.impl.auth.authenticate.token.web.BearerTokenAutoLoginHandlerを指定します。
アクセストークンを利用する場合、authTokenTypeは OAT 、rejectAmbiguousRequestは true を指定します。
詳細は BearerTokenAutoLoginHandler を参照してください。
classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolverを指定します。
詳細は DefaultUserEntityResolver を参照してください。
classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。
org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。
設定ファイルに記載されたアカウント情報から認証するプロバイダです。 全テナントを管理する開発者用のadminユーザーアカウントをFileに記述し、各テナントのUserエンティティにはadminユーザーがなくともメタデータ管理ができるようにする、といった用途を想定しています。
以下に設定例を示します。 なお、管理者権限のユーザーを設定ファイルに記述することになるので、ConfigFileAuthenticationProviderを使用する際は設定値の難読化も併せて使用してください。
<service>
<interface>org.iplass.mtp.impl.auth.AuthService</interface>
<property name="authenticationProvider" class="org.iplass.mtp.impl.auth.authenticate.configfile.ConfigFileAuthenticationProvider" >
<property name="tenantIds" value="1" />
<property name="tenantIds" value="2" />
<property name="tenantIds" value="5" />
<property name="accounts">
<property name="id" value="configUser" />
<property name="password" value="password000" />
<property name="admin" value="true" />
<property name="attributeMap">
<property name="attr1" value="xxx" />
<property name="attr2" value="yyy" />
<property name="attr3" value="zzz" />
</property>
</property>
</property>
:
:
</service>
classはorg.iplass.mtp.impl.auth.authenticate.configfile.ConfigFileAuthenticationProviderを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
providerName |
String |
|
accounts |
AccountConfig、複数指定可 |
アカウント情報の設定。 |
tenantIds |
int、複数指定可 |
|
以下の項目が設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
id |
String |
アカウントのID。 |
password |
String |
アカウントのパスワード。 |
admin |
boolean |
このアカウントが管理者権限を持つか。 |
attrributeMap |
String |
任意のキー名(name)と値(value)。
|
JAAS(Java Authentication and Authorization Service)を利用してid/password認証するプロバイダです。 設定により、iPLAssのDB内にUserエンティティが存在していなくとも認証が可能となります。
JAAS認証モジュールの定義はログイン構成ファイル(やjavax.security.auth.login.Configuration実装)で定義されている必要があります。 JAAS認証モジュールを定義する方法としてはJVM起動時のシステム変数でログイン構成ファイルを指定する方法等があります。
例: -Djava.security.auth.login.config=/someware/conf/jaas.cfg
mtplogin {
com.sun.security.auth.module.LdapLoginModule REQUIRED
userProvider="ldap://example.dentsusoken.com:389/dc=mtp,dc=dentsusoken,dc=com" (1)
userFilter="(uid={USERNAME})"
useSSL=false
debug=true
;
};
| 1 | userProvider、userFilterのUSERNAMEには適宜ldapサーバの情報を設定して下さい。 |
classはorg.iplass.mtp.impl.auth.authenticate.jaas.JaasAuthenticationProviderを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
providerName |
String |
|
entryName |
String |
JAAS認証設定に定義されるentry名。 デフォルト値はmtploginです。 |
uniquePrincipalType |
java.security.Principal |
当該の認証モジュールにおける、ユニークIDを指し示すPrincipalクラス名。 例えば、com.sun.security.auth.module.LdapLoginModuleを利用する場合は、com.sun.security.auth.LdapPrincipalや、com.sun.security.auth.UserPrincipalを指定可能です。 uniquePrincipalTypeが未指定の場合は、認証時に入力されたidがユニークIDとして利用されます。 |
userEntityResolver |
UserEntityResolver |
認証成功後のユーザーEntityの取得方法を設定します。 次のいずれかを指定可能です。 userEntityResolverの定義エントリ自体がない場合は、ユーザーEntityはaccountIdで検索されます。 DefaultUserEntityResolverの定義エントリがあり、unmodifiableUniqueKeyPropertyの定義が未設定の場合はoidで検索されます。 |
classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolverを指定します。
詳細は DefaultUserEntityResolver を参照してください。
classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。
UserエンティティがDB上に存在せずともログイン可能とします。 oidにJAAS認証モジュールより返却された[ユニークID](uniquePrincipalTypeで指定したPrincipalの値)、accountId、nameに認証時に入力したidがセットされたUserエンティティを疑似的に生成します。
classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。
org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。
JavaEE(Servlet仕様)に規定される認証機構を用いて認証する認証プロバイダです。 HttpServletRequest#getUserPrincipal()で取得されるPrincipalオブジェクトにより認証します。 ログイン処理は事前にJavaEEコンテナが提供する仕組みによって、iPLAss外で行われている想定です。 設定により、iPLAssのDB内に当該Principalに該当するUserエンティティが存在していなくとも認証を可能とすることができます。
classはorg.iplass.mtp.impl.auth.authenticate.jee.JeeContainerManagedAuthenticationProviderを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
providerName |
String |
|
validateOnlyLogin |
boolean |
PrincipalがiPLAssセッションで認識しているUserと一致するかをリクエストの都度確認するか否か。 デフォルト値はfalseです。 |
roleAsGroup |
String、複数指定可 |
JavaEEに規定されるrole(HttpServletRequest#isUserInRole(String))をグループコードとして扱いたい場合、グループコードとして扱いたいrole名を指定します。 |
userEntityResolver |
UserEntityResolver |
認証成功後のユーザーEntityの取得方法。 次のいずれかを指定可能です。 実際に指定するclassはリンク先を参照してください。 userEntityResolverの定義エントリ自体がない場合は、ユーザーEntityはaccountIdで検索されます。 DefaultUserEntityResolverの定義エントリがあり、unmodifiableUniqueKeyPropertyの定義が未設定の場合はoidで検索されます。 |
classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolverを指定します。
詳細は DefaultUserEntityResolver を参照してください。
classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。
UserエンティティがDB上に存在せずともログイン可能とします。 oid、accountId、nameにJEEコンテナが返却したPrincipalオブジェクトのnameをセットしたUserエンティティを疑似的に生成します。 roleAsGroupが指定されている場合、当該roleはグループコードとして設定されます。
classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。
org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。
LDAPサーバ(Active Directory含む)を利用してid/password認証するプロバイダです。 設定により、iPLAssのDB内にUserエンティティが存在していなくとも認証を可能とすることができます。 その際、LDAPサーバ上で管理されているユーザーの属性値、所属グループを取得することも可能です。
classはorg.iplass.mtp.impl.auth.authenticate.ldap.LdapAuthenticationProviderを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
providerName |
String |
BuiltinAuthenticationProviderを参照してください。 |
jndiEnv |
LDAP接続用のJNDI環境プロパティ。 |
|
userDn |
String |
認証時のユーザーのDNのパターン。 認証要求されたユーザーのID、テナント名はそれぞれ${userName}、${tenantName}で埋め込まれます。 cn=${userName},cn=Users,ou=${tenantName} ${userName}@example.dentsusoken.com ※Active Directoryの場合 未指定の場合は、認証処理の前にユーザーDNを取得するため、userFilterの設定値を利用してユーザーを検索、DNを取得し、その取得したユーザーDNを用いて認証します。 認証要求時のユーザーID、テナント名からユーザーDNが一意に導き出せる場合は、この値を設定することを推奨します。 |
getUser |
boolean |
ユーザー認証成功後、LDAP上のユーザーの属性値を取得するか否か。 userFilterが設定されている場合、それを利用してユーザーを検索します。 userFilterが未設定の場合、ユーザーDNを用いてユーザーを取得します。 デフォルト値はfalseです。 |
userBaseDn |
String |
ユーザー検索の際のbaseDN(のパターン)。 テナント単位にユーザーのbaseDNが分かれる場合、${tenantName}でテナント名を埋め込むことが可能です。 cn=Users,ou=${tenantName} userBaseDnが指定されない場合、java.naming.provider.urlで指定されたルートDN以下から検索します。 |
userFilter |
String |
ユーザー検索の際のfilterのパターン。 認証要求されたユーザーのID、テナント名はそれぞれ${userName}、${tenantName}で埋め込まれます。 (&(objectClass=user)(userPrincipalName=${userName}@local)) userDn指定がされていない場合は、userFilterの設定は必須です。 |
uniqueKeyAttribute |
String |
LDAPから取得するユーザー属性のうち、ユーザーを一意に特定するための属性名。 未指定の場合は、認証要求時のユーザーIDの値がユニークキーとして設定されます。 |
userAttribute |
String、複数指定可 |
LDAPから取得するユーザー属性名。複数の設定が可能です。 未指定の場合は、すべての属性をLDAPより取得します。 |
getGroup |
boolean |
ユーザー認証成功後、ユーザーが所属するLDAP上のグループ情報を取得するか否か。 取得したグループ情報はiPLAssでのロール定義にて利用可能となります。 デフォルト値はfalseです。 |
groupBaseDn |
String |
グループ検索の際のbaseDN(のパターン)。 テナント単位にグループのbaseDNが分かれる場合、${tenantName}でテナント名を埋め込むことが可能です。 cn=Groups,ou=${tenantName} groupBaseDnが指定されない場合、java.naming.provider.urlで指定されたルートDN以下から検索します。 |
groupFilter |
String |
グループ検索の際のfilterのパターン。 所属検索対象のユーザーのDN、テナント名はそれぞれ${userDn}、${tenantName}で埋め込まれます。 (&(objectClass=groupOfNames)(member=${userDn})) getGroupがtrueの場合は、groupFilterの設定は必須です。 |
groupCodeAttribute |
String |
グループコードとして取得するLDAP上の属性名(例:cn)。 getGroupがtrueの場合は、groupCodeAttributeの設定は必須です。 |
groupAsTenant |
boolean |
ユーザーが認証対象のテナントに所属しているか否かをLDAP上のグループで判別するか。 デフォルト値はfalseです。 |
tenantGroupCode |
String |
groupAsTenantがtrueの場合、tenantGroupCodeに設定されるパターンにグループコードが一致した場合、テナントに所属していると判断し、認証成功とします。 ${tenantName}でテナント名を埋め込むことが可能です。 T-${tenantName} テナント判断用のグループはgroupFilterで検索される結果に含まれている必要があります。 |
userEntityResolver |
UserEntityResolver |
認証成功後のユーザーEntityの取得方法。 次のいずれかを指定可能です。 実際に指定するclassはリンク先を参照してください。 userEntityResolverの定義エントリ自体がない場合は、ユーザーEntityはaccountIdで検索されます。 DefaultUserEntityResolverの定義エントリがあり、unmodifiableUniqueKeyPropertyの定義が未設定の場合はoidで検索されます。 |
設定可能な項目は、以下に説明している基本的な項目以外にも設定可能です。 詳細はこちらの内容を参照下さい。
| 項目 | 値 | 説明 |
|---|---|---|
java.naming.factory.initial |
String |
JNDIのInitialContextFactoryの指定です。 デフォルト値はcom.sun.jndi.ldap.LdapCtxFactoryです。 |
java.naming.provider.url |
String |
LDAP接続先を指し示すURL。URLには検索ルートとなるbaseDNを含むことも可能です。 ldap://example.dentsusoken.com:389/dc=mtp,dc=dentsusoken,dc=com |
java.naming.security.principal |
String |
ユーザー検索、グループ検索が可能な管理用ユーザーのID。 未設定の場合、ユーザー検索、グループ検索の際には、認証時のユーザーアカウントを利用します。 認証ユーザーに検索権限がない場合は設定してください。 |
java.naming.security.credentials |
String |
ユーザー検索、グループ検索が可能な管理用ユーザーのパスワード。 |
classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolverを指定します。
詳細はDefaultUserEntityResolverを参照してください。
UserエンティティがDB上に存在せずともログイン可能とします。 LDAP認証モジュールの場合は、LDAPより返却されたユーザー属性値とUserエンティティのプロパティをマッピングすることが可能です。 attributeMappingUserエンティティのプロパティとLDAPから取得した属性とのマッピングを定義します。 プロパティ名単位に複数件の設定が可能です。
classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
propertyName |
String |
マッピング先のUserエンティティのプロパティ名。 |
accountAttributeName |
String |
マッピング元のLDAPから取得した属性値の名前。 LDAP上に定義される属性名の他、以下の設定値を利用可能です。
また、${属性値}形式を利用したGroovyTemplate形式で複数の属性を結合することが可能です。 ${sn ?:''} ${givenName ?:''} ※snとgivenNameをスペースで結合 |
type |
Class |
LDAPから取得した値を変換する際の型(java.lang.String、java.lang.Booleanなど)。 未指定の場合は、LDAPより返却された型のままセットします。 |
defaultValue |
Object |
LDAPより値が取得出来なかった際のデフォルト値。 未指定の場合、かつ値が取得できなかった場合はnullがセットされます。 |
classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。
org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。
Active Directoryに対してLdapAuthenticationProviderを利用する場合、ユーザー認証時のuserDnは次の形式となる点を注意してください。
[userID]@[domainName]
また、Active Directory上でユーザーオブジェクトを一意に識別可能なobjectGUIDの値をuniqueKeyAttributeとして利用する場合、objectGUIDはバイナリで格納されている点注意が必要となります。 バイナリの属性を正しくハンドリングするためにはJNDI環境プロパティ(java.naming.ldap.attributes.binary)を正しく設定する必要があります。
以下にActive Directoryを利用する際の設定例を示します。
<service>
<interface>org.iplass.mtp.impl.auth.AuthService</interface>
<property name="authenticationProvider" class="org.iplass.mtp.impl.auth.authenticate.ldap.LdapAuthenticationProvider" >
<property name="providerName" value="ad" />
<property name="jndiEnv">
<property name="java.naming.provider.url" value="ldap://example.dentsusoken.com:389/DC=example,DC=dentsusoken,DC=com" />
<property name="java.naming.ldap.attributes.binary" value="objectGUID" /><!-- objectGUIDはバイナリと宣言 -->
</property>
<property name="getUser" value="true" />
<property name="userBaseDn" value="CN=Users" />
<property name="userDn" value="${userName}@example.dentsusoken.com" />
<property name="userFilter" value="(&(objectClass=user)(userPrincipalName=${userName}@example.dentsusoken.com))" />
<property name="uniqueKeyAttribute" value="objectGUID" />
<property name="userAttribute" value="name" />
<property name="userAttribute" value="sn" />
<property name="userAttribute" value="givenName" />
<property name="getGroup" value="true" />
<property name="groupBaseDn" value="CN=Groups" />
<property name="groupFilter" value="(&(objectClass=groupOfNames)(member=${userDn}))" />
<property name="groupCodeAttribute" value="cn" />
<property name="groupAsTenant" value="true" />
<property name="tenantGroupCode" value="T-${tenantName}" />
<property name="userEntityResolver" class="org.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolver">
<property name="attributeMapping">
<property name="propertyName" value="oid" />
<property name="accountAttributeName" value="objectGUID" />
<property name="type" value="java.lang.String" /><!-- byte[]で取得されるので、文字列に変換 -->
</property>
<property name="attributeMapping">
<property name="propertyName" value="name" />
<property name="accountAttributeName" value="${sn ?:''} ${givenName ?:''}" />
<property name="type" value="java.lang.String" />
</property>
<property name="attributeMapping">
<property name="propertyName" value="firstName" />
<property name="accountAttributeName" value="givenName" />
</property>
<property name="attributeMapping">
<property name="propertyName" value="lastName" />
<property name="accountAttributeName" value="sn" />
</property>
<property name="attributeMapping">
<property name="propertyName" value="admin" />
<property name="defaultValue" value="false" class="java.lang.Boolean"/>
</property>
</property>
</property>
:
:
</service>
SSO製品(またはそれに類する独自認証基盤)におけるエージェント型、リバースプロキシ型での認証機構に対応するための認証プロバイダです。 通常これらのSSO製品を利用した場合、認証情報はHTTPヘッダーやHttpServletRequestのattribute、HttpSessionのattributeとしてアプリケーション側に連携されます。 当認証プロバイダにおいては、これら外部認証機構から連携された情報を元にiPLAss上での認証処理を行います。 ログイン画面、またログイン処理は外部認証機構側で提供され、iPLAss外で行われている想定です。 設定により、iPLAssのDB内に当該ユーザーに該当するUserエンティティが存在していなくとも認証を可能とすることができます。
classはorg.iplass.mtp.impl.auth.authenticate.preexternal.PreExternalAuthenticationProviderを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
providerName |
String |
|
validateOnlyLogin |
boolean |
連携されるユーザー情報がiPLAssセッションで認識しているUserと一致するかをリクエストの都度確認するか否か。 デフォルト値はfalseです。 |
sourceType |
外部認証機構から渡されるユーザー情報が格納されている場所。 |
|
accountIdAttribute |
String |
外部認証機構から渡されるユーザー情報のうちアカウントIDが格納されているキー名。 |
uniqueKeyAttribute |
String |
外部認証機構から渡されるユーザー情報のうちユニークキー(OIDに相当)が格納されているキー名。 未指定の場合は、accoutIdAttributeに指定された値がユニークキーとして利用されます。 |
userAttribute |
String、複数指定可 |
外部認証機構から渡されるユーザー情報のうちユーザーの属性として扱う値のキー名。 |
logoutUrl |
String |
外部認証機構のログアウト処理を行うURL。 iPLAssの標準画面でログアウトが呼び出された場合、当該画面へリダイレクトします。 |
userEntityResolver |
UserEntityResolver |
認証成功後のユーザーEntityの取得方法。 次のいずれかを指定可能です。 実際に指定するclassはリンク先を参照してください。 userEntityResolverの定義エントリ自体がない場合、かつuniqueKeyAttributeが未指定の場合ユーザーEntityはaccountIdで検索されます。 上記以外の場合、unmodifiableUniqueKeyPropertyの定義が未設定の場合はoidで検索されます。 |
外部認証機構から渡されるユーザー情報が格納されている場所を指定します。
- HEADER
-
ヘッダーからgetHeader(String)にてユーザー情報を取得します
- REQUEST
-
HttpServletRequestからgetAttribute(String)にてユーザー情報を取得します
- SESSION
-
HttpSessionからgetAttribute(String)にてユーザー情報を取得します
classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolverを指定します。
詳細は DefaultUserEntityResolver を参照してください。
classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。
詳細は AccountBaseUserEntityResolver を参照してください。 外部認証機構から渡されたuserAttributeの値をUserエンティティのプロパティにマッピング可能です。
classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。
org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。
X509クライアント証明書を用いて認証する認証プロバイダです。 X509クライアント証明書自体の正当性はSSL/TLSレイヤーで検証されているものとして処理します(iPLAss内で再検証は行いません)。
X509AuthenticationProviderは単独で認証プロバイダとして利用される他、TwoStepAuthenticationProviderのセカンダリの認証要素としての利用も可能です。 単独の認証プロバイダとして利用する場合、証明書内のCNがaccountIdと一致している必要がありますが、TwoStepAuthenticationProviderのセカンダリの認証要素として利用する場合は、CNとaccountIdの一致は必須ではありません。
また、単独の認証プロバイダとして利用する場合、クライアント証明書の性質上、ログアウト処理を行ったとしても、それに引き続くリクエストですぐに再認証されてしまいます。
設定により、iPLAssのDB内に当該ユーザーに該当するUserエンティティが存在していなくとも認証を可能とすることができます。
classはorg.iplass.mtp.impl.auth.authenticate.x509.X509AuthenticationProviderを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
providerName |
String |
|
validateOnlyLogin |
boolean |
連携されるユーザー情報がiPLAssセッションで認識しているUserと一致するかをリクエストの都度確認するか否か。 デフォルト値はfalseです。 |
twoStep2ndFactor |
boolean |
TwoStepAuthenticationProviderのセカンダリの認証要素としての設定の場合、trueに設定する必要があります。 デフォルト値はfalseです。 |
userEntityResolver |
UserEntityResolver |
認証成功後のユーザーEntityの取得方法。 次のいずれかを指定可能です。 実際に指定するclassはリンク先を参照してください。 userEntityResolverの定義エントリ自体がない場合は、ユーザーEntityはaccountIdで検索されます。 DefaultUserEntityResolverの定義エントリがあり、unmodifiableUniqueKeyPropertyの定義が未設定の場合はoidで検索されます。 |
classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolverを指定します。
詳細は DefaultUserEntityResolver を参照してください。
classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。
UserエンティティがDB上に存在せずともログイン可能とします。 oid、accountId、nameに証明書内のCNをセットしたUserエンティティを疑似的に生成します。
classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。
org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。
SAML2.0ベースでSSO/SLOを行う認証プロバイダです。 iPLAssはSAML2.0仕様のSPモードをサポートします。 外部のIdPにて認証された認証情報を連携し、iPLAssにログイン可能です。 SamlAuthenticationProviderを利用する際は、別途 AuthenticationPolicyでのSAML有効化の設定が必要です。
classはorg.iplass.mtp.impl.auth.authenticate.saml.SamlAuthenticationProviderを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
providerName |
String |
|
userEntityResolver |
UserEntityResolver |
認証成功後のユーザーEntityの取得方法。 次のいずれかを指定可能です。 実際に指定するclassはリンク先を参照してください。 |
メタデータとして設定されたSAML定義のNameIDのマッピングに従いユーザーEntityを検索します。
classはorg.iplass.mtp.impl.auth.authenticate.saml.SamlUserEntityResolverを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
eagerLoadReferenceProperty |
String、複数指定可 |
ログイン後のUserエンティティ検索時に同時に取得する参照プロパティ。 デフォルトの設定では、Userの参照プロパティであるrankおよびgroupsが指定されています。 |
filterCondition |
String |
ユーザー検索時のフィルター条件。 |
classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。
詳細は AccountBaseUserEntityResolver を参照してください。 SAML経由で渡されたユーザー属性値をUserエンティティのプロパティにマッピング可能です。
classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。
org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。
2step認証を行う認証プロバイダです。 プライマリの認証プロバイダを1つ、セカンダリの認証プロバイダを1つ以上設定します。 設定された認証プロバイダ、および認証ポリシーにおける設定により、2ステップ認証処理が実行されます。 認証ポリシーの詳細については[ユーザー-管理]シートを参照下さい。
TwoStepAuthenticationProviderの設定では、以下の例のようにプライマリ、セカンダリのAuthenticationProviderを内包する形で定義します。
<service>
<interface>org.iplass.mtp.impl.auth.AuthService</interface>
<property name="authenticationProvider" class="org.iplass.mtp.impl.auth.authenticate.twostep.TwoStepAuthenticationProvider">
<property name="primary" class="org.iplass.mtp.impl.auth.authenticate.builtin.BuiltinAuthenticationProvider">
<property name="updatable" value="true" />
<property name="providerName" value="default" />
<property name="passwordHashSettings">
<property name="version" value="1" />
<property name="passwordHashAlgorithm" value="SHA-256" />
<property name="systemSalt" value="salt" />
<property name="stretchCount" value="3000" />
</property>
</property>
<property name="secondary" class="org.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeAuthenticationProvider" />
<property name="secondary" class="org.iplass.mtp.impl.auth.authenticate.timebased.TimeBasedAuthenticationProvider">
<property name="maxFailureCount" value="5" />
<property name="failureExpirationInterval" value="10" />
<property name="unmodifiableUniqueKeyResolver" class="org.iplass.mtp.impl.auth.authenticate.timebased.DefaultUnmodifiableUniqueKeyResolver">
<property name="unmodifiableUniqueKeyProperty" value="oid" />
</property>
</property>
<property name="secondary" class="org.iplass.mtp.impl.auth.authenticate.knowledgebased.KnowledgeBasedAuthenticationProvider">
</property>
:
:
</service>
classはorg.iplass.mtp.impl.auth.authenticate.twostep.TwoStepAuthenticationProviderを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
providerName |
String |
BuiltinAuthenticationProvider参照。 未指定の場合は、primaryに定義されるproviderNameが適用されます。 |
primary |
AuthenticationProvider |
プライマリのAuthenticationProvider。 指定可能(※)なAuthenticationProviderは認証時のCredentialとしてIdPasswordCredentialを利用する次の認証プロバイダ、もしくはカスタムの認証プロバイダです。 ※ iPLAss GEM提供のログイン認証処理を利用する場合 |
secondary |
AuthenticationProvider |
セカンダリのAuthenticationProviderを指定します。 secondaryは複数指定可能です。 次のいずれかの認証プロバイダを指定可能(※)です。 OnetimeCodeAuthenticationProvider ※ iPLAss GEM提供のログイン認証処理を利用する場合 |
ワンタイムの認証コードを用いて認証を行うプロバイダです。 通常、2step認証時のセカンダリの認証プロバイダとして利用します。 ワンタイムコードの生成方式は、別途OnetimeCodeGeneratorServiceにて定義します。 ワンタイムコード生成方式のうちいずれを利用するかの設定は認証ポリシーに定義します。 詳細は認証機能の2段階認証を参照してください。
OnetimeCodeAuthenticationProvider自体にて設定可能な項目はありません。
classはorg.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeAuthenticationProviderを指定します。
時間ベース認証(2段階認証アプリで認証)を行うプロバイダです。 通常、2step認証時のセカンダリの認証プロバイダとして利用します。 詳細は認証機能の2段階認証を参照してください。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
maxFailureCount |
int |
最大認証失敗回数。デフォルト値は5です。 |
failureExpirationInterval |
int |
認証失敗の有効期限(分)です。指定した時間以内に認証失敗した回数を失敗回数とします。 デフォルト値は10です。 |
unmodifiableUniqueKeyResolver |
UnmodifiableUniqueKeyResolver |
Userエンティティの一意キーを検索する方法を設定します。
DefaultUnmodifiableUniqueKeyResolver (デフォルト) |
Userエンティティを検索してUserエンティティの一意キーを取得します。
classはorg.iplass.mtp.impl.auth.authenticate.timebased.DefaultUnmodifiableUniqueKeyResolverを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
unmodifiableUniqueKeyProperty |
String |
Userエンティティを検索する際に取得する一意キーのプロパティ名。 デフォルト値はoidです。 |
classはorg.iplass.mtp.auth.login.timebased.UnmodifiableUniqueKeyResolverを実装する独自クラスを指定します。
org.iplass.mtp.auth.login.timebased.UnmodifiableUniqueKeyResolverの実装クラスにてUserエンティティの一意キーを取得するロジックを記述します。
ナレッジベース認証(秘密の質問に答えることで認証する)を行うプロバイダです。 通常、2step認証時のセカンダリの認証プロバイダとして利用します。 Userエンティティに保持するプロパティを質問項目として利用することが可能です。 どのプロパティを質問項目とするか、質問の数などの設定は、認証ポリシーにて行います。 詳細は認証機能の2段階認証を参照してください。
KnowledgeBasedAuthenticationProvider自体にて設定可能な項目はありません。
classはorg.iplass.mtp.impl.auth.authenticate.knowledgebased.KnowledgeBasedAuthenticationProviderを指定します。
RememberMe機能(ログインしたままにする機能)を実現する認証プロバイダです。 前回ログイン時にブラウザCookie(永続Cookie)に保存されたトークンによって認証を行うプロバイダです。 ログインしたままにする有効期間の設定などは、認証ポリシーにいて行います。 詳細は認証機能のRemember Meを参照してください。
RememberMeTokenAuthenticationProviderは、実際の各種AuthenticationProviderにRememberMe機能を付与するラッパーとして動作します。 設定ファイルにはRememberMe機能を付与したいAuthenticationProviderを内包する形で定義します。
設定例を以下に示します。
<service>
<interface>org.iplass.mtp.impl.auth.AuthService</interface>
<property name="authenticationProvider"
class="org.iplass.mtp.impl.auth.authenticate.rememberme.RememberMeTokenAuthenticationProvider">
<property name="authenticationProvider" class="org.iplass.mtp.impl.auth.authenticate.builtin.BuiltinAuthenticationProvider">
<property name="updatable" value="true" />
<property name="providerName" value="default" />
:
:
</property>
</property>
:
:
</service>
classはorg.iplass.mtp.impl.auth.authenticate.rememberme.RememberMeTokenAuthenticationProviderを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
providerName |
String |
BuiltinAuthenticationProvider参照 未指定の場合は、内包するauthenticationProviderに定義されるproviderNameが適用されます。 |
authenticationProvider |
AuthenticationProvider |
実際の認証処理を行うAuthenticationProvider。 |
deleteTokenOnFailure |
boolean |
認証失敗時にトークンを削除するか否かを設定します。デフォルトはtrueです。 |
clientStore |
AuthTokenClientStore |
クライアント側のトークン保存方法の設定です。 デフォルトで次の実装クラスを提供します。 |
autoLoginHandler |
AutoLoginHandler |
自動ログインハンドラ。 RememberMeTokenAuthenticationProviderに実装されているRememberMeトークンを利用した自動ログイン処理をカスタマイズしたい場合に、カスタムのAutoLoginHandlerを設定します。 |
クライアント側のトークン保存方法としてCookieを利用するクラスです。
classはorg.iplass.mtp.impl.auth.authenticate.token.web.AuthTokenCookieStoreを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
cookieName |
String |
Cookie名。 |
設定例
<service>
<interface>org.iplass.mtp.impl.auth.AuthService</interface>
<class>org.iplass.mtp.impl.auth.EnterpriseAuthService</class>
<property name="authenticationProvider" class="org.iplass.mtp.impl.auth.authenticate.rememberme.RememberMeTokenAuthenticationProvider">
<property name="deleteTokenOnFailure" value="true" />
<property name="clientStore" class="org.iplass.mtp.impl.auth.authenticate.token.web.AuthTokenCookieStore">
<property name="cookieName" value="iprmtkn" />
</property>
<property name="authenticationProvider" class="org.iplass.mtp.impl.auth.authenticate.twostep.TwoStepAuthenticationProvider">
<property name="primary" class="org.iplass.mtp.impl.auth.authenticate.builtin.BuiltinAuthenticationProvider">
<property name="updatable" value="true" />
<property name="providerName" value="default" />
<!-- if load custom reference property at login, set userEntityResolver.eagerLoadReferenceProperty -->
<!--
<property name="userEntityResolver" class="org.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolver">
<property name="eagerLoadReferenceProperty" value="rank" />
<property name="eagerLoadReferenceProperty" value="groups" />
<property name="eagerLoadReferenceProperty" value="yourCustomReference" />
</property>
-->
<property name="passwordHashSettings">
<property name="version" value="1" />
<property name="passwordHashAlgorithm" value="SHA-256" />
<property name="systemSalt" value="yourSystemSalt" />
<property name="stretchCount" value="1000" />
</property>
</property>
<property name="secondary" class="org.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeAuthenticationProvider">
</property>
<property name="secondary" class="org.iplass.mtp.impl.auth.authenticate.timebased.TimeBasedAuthenticationProvider">
<property name="maxFailureCount" value="5" />
<property name="failureExpirationInterval" value="10" />
<property name="unmodifiableUniqueKeyResolver" class="org.iplass.mtp.impl.auth.authenticate.timebased.DefaultUnmodifiableUniqueKeyResolver">
<property name="unmodifiableUniqueKeyProperty" value="oid" />
</property>
</property>
<property name="secondary" class="org.iplass.mtp.impl.auth.authenticate.knowledgebased.KnowledgeBasedAuthenticationProvider">
</property>
<property name="secondary" class="org.iplass.mtp.impl.auth.authenticate.x509.X509AuthenticationProvider">
<property name="twoStep2ndFactor" value="true" />
</property>
</property>
</property>
<property name="authenticationProvider" class="org.iplass.mtp.impl.auth.authenticate.saml.SamlAuthenticationProvider">
<property name="updatable" value="false" />
<property name="providerName" value="saml" />
</property>
<property name="authorizationProvider" class="org.iplass.mtp.impl.auth.authorize.builtin.BuiltinAuthorizationProvider">
<property name="grantAllPermissionsToAdmin" value="true" />
<property name="authorizationContextHandler" class="org.iplass.mtp.impl.auth.authorize.builtin.action.ActionAuthContextHandler" />
<property name="authorizationContextHandler" class="org.iplass.mtp.impl.auth.authorize.builtin.webapi.WebApiAuthContextHandler" />
<property name="authorizationContextHandler" class="org.iplass.mtp.impl.auth.authorize.builtin.cube.CubeAuthContextHandler" />
<property name="authorizationContextHandler" class="org.iplass.mtp.impl.auth.authorize.builtin.entity.EntityAuthContextHandler">
<property name="useCorrelatedSubqueryOnEntityLimitCondition" value="true" />
</property>
<property name="authorizationContextHandler" class="org.iplass.mtp.impl.auth.authorize.builtin.workflow.WorkflowAuthContextHandler" />
</property>
</service>
WebAuthn仕様のDiscoverable Credential(パスキー)を用いたパスワードレス、ネームレス認証を提供する認証プロバイダです。 WebAuthnAuthenticationProviderを利用する際は、別途 WebAuthn定義の設定、および AuthenticationPolicyでのWebAuthnの有効化の設定が必要です。
classはorg.iplass.mtp.impl.auth.authenticate.webauthn.WebAuthnAuthenticationProviderを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
providerName |
String |
|
userEntityResolver |
UserEntityResolver |
認証成功後のユーザーEntityの取得方法。 次のいずれかを指定可能です。 実際に指定するclassはリンク先を参照してください。 |
classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolverを指定します。
詳細は DefaultUserEntityResolver を参照してください。
classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。
org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。
3.10. AuthTokenService
認証トークンを管理するためのサービスです。
インタフェース名
org.iplass.mtp.impl.auth.authenticate.token.AuthTokenService
実装クラス名
org.iplass.mtp.impl.auth.authenticate.token.AuthTokenService
AuthTokenServiceの設定
AuthTokenServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
storeMap |
AuthTokenStore、Map形式 |
AuthTokenStoreの設定。
keyにstore名を指定し、Map形式で定義します。
最低限、 |
handler |
AuthTokenHandler、複数指定可 |
AuthTokenHandlerの設定。 |
classはorg.iplass.mtp.impl.auth.authenticate.token.AuthTokenStoreの実装クラスを指定します。
標準で、以下のAuthTokenStoreを提供します。
classはorg.iplass.mtp.impl.auth.authenticate.token.RdbAuthTokenStoreを指定します。
RDBで認証トークンを管理します。
| 項目 | 値 | 説明 |
|---|---|---|
saveDetailAsJson |
boolean |
AuthTokenをJSON形式で保存するか否かを指定します。
JSON形式で保存する場合、JacksonのObjectMapperを利用してAuthTokenの属性値が保存されます(JSON形式で保存する場合は、保存対象のAuthTokenを実装するクラスがそれに対応している必要があります)。 |
authTokenStore |
認証トークンを保存する実際のAuthTokenStoreです。 |
classはorg.iplass.mtp.impl.auth.authenticate.token.CachableAuthTokenStoreを指定します。
内包するauthTokenStoreにキャッシュ機能を付与します。
| 項目 | 値 | 説明 |
|---|---|---|
cacheStoreName |
String |
CacheService に定義されるCacheStore(CacheStoreFactory)の名前を指定します。
未指定の場合のデフォルト値は |
authTokenStore |
認証トークンを保存する実際のAuthTokenStoreです。 |
classはorg.iplass.mtp.impl.auth.authenticate.token.CacheOnlyAuthTokenStoreを指定します。
CachableAuthTokenStoreと異なり、バックエンドの永続化先を持たず、CacheStoreのみに保存します。
| 項目 | 値 | 説明 | ||
|---|---|---|---|---|
cacheStoreName |
String |
CacheService に定義されるCacheStore(CacheStoreFactory)の名前を指定します。
未指定の場合のデフォルト値は
|
classはorg.iplass.mtp.impl.auth.authenticate.token.AuthTokenHandlerの実装クラスを指定します。
標準で、以下のAuthTokenHandlerを提供します。
classはorg.iplass.mtp.impl.auth.authenticate.rememberme.RememberMeTokenHandlerを指定します。
RememberMeTokenを取り扱います。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
store |
String |
使用するAuthTokenStoreの名前。未指定の場合は、 |
type |
String |
種別。未設定の場合、 |
hashSettings |
HashSetting、複数指定可 |
Tokenのハッシュ化有無、方式の設定。 未指定の場合はプレーンテキストで保存します。 |
secureRandomGeneratorName |
String |
SecureRandomService に定義されるToken文字列の生成器を指定。
未設定の場合、 |
visible |
boolean |
|
classはorg.iplass.mtp.impl.auth.authenticate.token.HashSettingを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
version |
String |
バージョンを特定する文字列を指定。 |
hashAlgorithm |
String |
ハッシュのアルゴリズムを指定。 |
stretchCount |
int |
ストレッチ回数。デフォルトは1です。 |
classはorg.iplass.mtp.impl.auth.authenticate.simpletoken.SimpleAuthTokenHandlerを指定します。
SimpleAuthTokenを取り扱います。 SimpleAuthTokenはそれ自体が紐付くユーザーとしてのアクセスを許可します。 SimpleAuthTokenは明示的に削除されるまで永続的に有効です。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
store |
String |
使用するAuthTokenStoreの名前。未指定の場合は、 |
type |
String |
種別。未設定の場合、 |
hashSettings |
HashSetting、複数指定可 |
Tokenのハッシュ化有無、方式の設定。 未指定の場合はプレーンテキストで保存します。 |
secureRandomGeneratorName |
String |
SecureRandomService に定義されるToken文字列の生成器を指定。
未設定の場合、 |
visible |
boolean |
|
classはorg.iplass.mtp.impl.auth.authenticate.timebased.TimeBasedOneTimePasswordHandlerを指定します。 このAuthTokenHandlerは、2段階認証機能における時間ベース認証にて利用されます。 2段階認証の認証におけるシークレットキーを取り扱います。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
store |
String |
使用するAuthTokenStoreの名前。未指定の場合は、 |
type |
String |
種別。未設定の場合、 |
timeStepWindowSize |
int |
time stepの有効期間。1を設定した場合、現在のtime stepの前後1ステップのワンタイムパスワードも有効とみなします。デフォルト値は1です。 |
backwardTimeStepWindowSize |
int |
過去方向の有効なtime step数。デフォルトは-1で、その場合 |
classはorg.iplass.mtp.impl.auth.oauth.token.opaque.AccessTokenHandlerを指定します。
OAuth2.0のAccessTokenおよび、RefreshTokenを取り扱います。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
store |
String |
使用するAuthTokenStoreの名前。未指定の場合は、 |
refreshTokenStore |
String |
RefreshTokenの保存に使用するAuthTokenStoreの名前。未指定の場合は、 |
type |
String |
AccessTokenを識別するための種別。未設定の場合、 |
refreshTokenType |
String |
RefreshTokenの種別。未設定の場合、 |
hashSettings |
HashSetting、複数指定可 |
Tokenのハッシュ化有無、方式の設定。 未指定の場合はプレーンテキストで保存します。この設定はAccessToken、RefreshToken両方に適用されます。 |
secureRandomGeneratorName |
String |
SecureRandomService に定義されるAccessTokenのToken文字列の生成器を指定。
未設定の場合、 |
refreshTokenSecureRandomGeneratorName |
String |
SecureRandomService に定義されるRefreshTokenのToken文字列の生成器を指定。
未設定の場合、 |
visible |
boolean |
|
classはorg.iplass.mtp.impl.auth.oauth.OAuthClientCredentialHandlerを指定します。
OAuth2.0における、ClientおよびResourceServerのCredential(client_id、client_secret)を取り扱います。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
store |
String |
使用するAuthTokenStoreの名前。未指定の場合は、 |
type |
String |
種別の定義です。 |
hashSettings |
HashSetting、複数指定可 |
Tokenのハッシュ化有無、方式の設定。 未指定の場合はプレーンテキストで保存します。 |
secureRandomGeneratorName |
String |
SecureRandomService に定義されるToken文字列の生成器を指定。
未設定の場合、 |
oldCredentialValidDays |
int |
過去に生成したCredentialの有効期間(日)を指定可能です。 未指定の場合は過去のCredentialは即座に破棄されます。 |
classはorg.iplass.mtp.impl.webhook.WebhookAuthTokenHandlerを指定します。
Webhook通知におけるWebhookEndPointの認証情報を取り扱います。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
store |
String |
使用するAuthTokenStoreの名前。未指定の場合は、 |
type |
String |
WebhookAuthTokenを識別するための種別。デフォルト値は、 |
classはorg.iplass.mtp.impl.auth.authenticate.builtin.policy.riskevals.web.CookieRiskEvaluationTokenHandlerを指定します。
このAuthTokenHandlerは、2段階認証機能におけるリスクベース認証(CookieToken)にて利用されます。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
store |
String |
使用するAuthTokenStoreの名前。未指定の場合は、 |
type |
String |
種別。未設定の場合、 |
hashSettings |
HashSetting、複数指定可 |
Tokenのハッシュ化有無、方式の設定。 未指定の場合はプレーンテキストで保存します。 |
secureRandomGeneratorName |
String |
SecureRandomService に定義されるToken文字列の生成器を指定。
未設定の場合、 |
設定例
<service>
<interface>org.iplass.mtp.impl.auth.authenticate.token.AuthTokenService</interface>
<property name="storeMap">
<property name="default" class="org.iplass.mtp.impl.auth.authenticate.token.RdbAuthTokenStore" />
<property name="cache" class="org.iplass.mtp.impl.auth.authenticate.token.CachableAuthTokenStore">
<property name="authTokenStore" class="org.iplass.mtp.impl.auth.authenticate.token.RdbAuthTokenStore" />
</property>
</property>
<property name="handler" class="org.iplass.mtp.impl.auth.authenticate.rememberme.RememberMeTokenHandler">
<property name="type" value="REMME" />
<property name="store" value="default" />
</property>
<property name="handler" class="org.iplass.mtp.impl.auth.authenticate.simpletoken.SimpleAuthTokenHandler">
<property name="type" value="SAT" />
<property name="store" value="cache" />
<property name="secureRandomGeneratorName" value="moreSecure" />
<property name="hashSettings">
<property name="version" value="1" />
<property name="hashAlgorithm" value="SHA-256" />
</property>
</property>
</service>
3.11. AutoNumberTypeCounter
AutoNumber型の採番を行うサービスです。
EntityのプロパティとしてAutoNumber型を利用する場合のCounterServiceの定義です。
採番時に飛び番を許容するかどうかで利用する設定が変わります。
許容する場合は AutoNumberTypeCounterAcceptSkip の設定を、
許容しない場合は AutoNumberTypeCounterNoSkip の設定を利用します。
インタフェース名
org.iplass.mtp.impl.counter.CounterService
実装クラス名
org.iplass.mtp.impl.counter.RdbTableCounterService
org.iplass.mtp.impl.counter.CachableRdbTableCounterService
RdbTableCounterServiceの設定
RdbTableCounterServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
separateTransaction |
boolean |
採番時にトランザクションを分けるか。デフォルト値はfalseです。 |
retryCount |
int |
採番失敗時にリトライする回数。デフォルト値は3です。 |
counterTypeName |
String |
採番タイプの名前。デフォルト値は |
CachableRdbTableCounterServiceの設定
CachableRdbTableCounterServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
separateTransaction |
boolean |
採番時にトランザクションを分けるか。デフォルト値はfalseです。 |
retryCount |
int |
採番失敗時にリトライする回数。デフォルト値は3です。 |
counterTypeName |
String |
採番タイプの名前。デフォルト値は |
cacheSize |
int |
キャッシュサイズ。デフォルト値は20です。 |
設定例
<service name="AutoNumberTypeCounterAcceptSkip">
<interface>org.iplass.mtp.impl.counter.CounterService</interface>
<!-- without cache RdbTableCounterService -->
<!--
<class>org.iplass.mtp.impl.counter.RdbTableCounterService</class>
<property name="counterTypeName" value="AutoNumberTypeCounter" />
<property name="separateTransaction" value="true" />
<property name="retryCount" value="3" />
-->
<!-- with cache RdbTableCounterService -->
<class>org.iplass.mtp.impl.counter.CachableRdbTableCounterService</class>
<property name="counterTypeName" value="AutoNumberTypeCounter" />
<property name="cacheSize" value="20" />
<property name="retryCount" value="3" />
</service>
<service name="AutoNumberTypeCounterNoSkip">
<interface>org.iplass.mtp.impl.counter.CounterService</interface>
<class>org.iplass.mtp.impl.counter.RdbTableCounterService</class>
<property name="counterTypeName" value="AutoNumberTypeCounter" />
<property name="separateTransaction" value="false" />
</service>
3.12. (非推奨)AWSSetting
AWSの設定を管理するサービスです。
|
AWS SDK for Java 1.x はメンテナンスモードになっており、2025年12月 にサポートを終了する予定です。 |
インタフェース名
org.iplass.mtp.impl.aws.AWSSetting
実装クラス名
org.iplass.mtp.impl.aws.AWSSetting
AWSSettingの設定
AWSSettingを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
accessKeyId |
String |
AWSのアクセスキーID |
secretKey |
String |
AWSのシークレットキー |
clientConfiguration |
AWSClient側の設定(デフォルト) |
|
configurationMap |
ClientConfiguration、Map形式 |
AWSClient側の個別設定。個別設定しない場合は、デフォルトの |
classはcom.amazonaws.ClientConfigurationです。 AWSの各種サービスに接続する際の設定を行うことが可能です。
設定例
<service>
<interface>org.iplass.mtp.impl.aws.AWSSetting</interface>
<class>org.iplass.mtp.impl.aws.AWSSetting</class>
<!--
<property name="accessKeyId" value="input your access key id" />
<property name="secretKey" value="input your secret key" />
-->
<!-- デフォルトのAWSClient設定 -->
<property name="clientConfiguration">
<property name="maxConnections" value="100" />
</property>
<property name="configurationMap">
<!-- S3LobStoreの個別設定 -->
<property name="S3LobStore" class="com.amazonaws.ClientConfiguration">
<property name="maxConnections" value="50" />
</property>
<!-- AWSHttpSenderの個別設定 -->
<property name="AWSHttpSender" class="com.amazonaws.ClientConfiguration">
<property name="connectionTimeout" value="10000" />
</property>
</property>
</service>
3.13. AWSSetting
AWSの設定を管理するサービスです。本サービスでは、AWS SDK for Java 2.x の設定を管理します。
インタフェース名
org.iplass.mtp.impl.awsv2.AWSSetting
実装クラス名
org.iplass.mtp.impl.awsv2.AWSSetting
AWSSettingの設定
AWSSetting を設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
credentialsProviderFactory |
AwsCredentialsProvider を生成する為の設定。未設定の場合は DefaultCredentialsProviderFactory が設定されます。 |
|
clientConfig |
AWS SDK クライアントの全体に適用するデフォルト設定。AWSリージョンや通信設定を設定します。 |
class は org.iplass.mtp.impl.awsv2.CredentialsProviderFactory の実装クラスを設定します。
標準で以下の CredentialsProviderFactory を提供しています。
classはorg.iplass.mtp.impl.awsv2.DefaultCredentialsProviderFactoryを指定します。
デフォルトの認証情報プロバイダーチェーンを使用して AWS認証情報を作成します。設定変更可能な項目はありません。
詳細は AWS SDK for Java 2.x デフォルトの認証情報プロバイダーチェーンを参照してください。
classはorg.iplass.mtp.impl.awsv2.StaticCredentialsProviderFactoryを指定します。
AWS で作成したアクセスキーを利用して AWS 認証情報を作成します。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
accessKeyId |
String |
アクセスキーの、Access key ID を設定します。 |
secretAccessKey |
String |
アクセスキーの、Secret access key を設定します。 |
classは org.iplass.mtp.impl.awsv2.AWSClientConfig を設定します。
AWS SDK クライアントの設定を指定します。AWS サービスに対応したクライアントでも個別に設定可能な場合は、個別に設定した値が優先されます。
| 項目 | 値 | 説明 |
|---|---|---|
proxyScheme |
String |
プロキシースキームを設定します。http, https のいずれかを設定します。 |
proxyHost |
String |
プロキシーホスト名を設定します。 |
proxyPort |
Integer |
プロキシーポート番号を設定します。未指定の場合は、proxyScheme のデフォルトポートが設定されます。 |
connectionTimeoutMillis |
Long |
HttpClient コネクションタイムアウト(ミリ秒)を設定します。 |
socketTimeoutMillis |
Long |
HttpClient ソケットタイムアウト(ミリ秒)を設定します。 |
maxConnections |
Integer |
HttpClient 最大コネクション数を設定します。 |
connectionAcquisitionTimeoutMillis |
Long |
プールコネクション獲得タイムアウト(ミリ秒)を設定します。 |
maxPendingConnectionAcquires |
Integer |
プールコネクション獲得待ち許容数を設定します。 |
apiCallTimeoutMillis |
Long |
API全体実行タイムアウト(ミリ秒)を設定します。API リトライを含む呼び出し全体のタイムアウトを設定します。 |
apiCallAttemptTimeoutMillis |
Long |
API実行タイムアウト(ミリ秒)を設定します。1回のAPI実行のHTTP施行にかかる時間を設定します。 |
defaultsMode |
String |
スマート設定のデフォルトを設定します。詳細は HttpClient スマート設定のデフォルト を参照してください。 |
endpointOverride |
String |
サービスエンドポイントを設定します。localstack 等、AWS以外の環境を利用する場合に設定することを想定しています。 |
region |
String |
AWSリージョンを設定します。 |
設定例
<service>
<interface>org.iplass.mtp.impl.awsv2.AWSSetting</interface>
<class>org.iplass.mtp.impl.awsv2.AWSSetting</class>
<!-- use AWS Access Key Id -->
<!--
<property name="credentialsProviderFactory" class="org.iplass.mtp.impl.awsv2.StaticCredentialsProviderFactory">
<property name="accessKeyId" value="input your access key id" />
<property name="secretAccessKey" value="input your secret access key" />
</property>
-->
<!--
Aws クライアントのデフォルト設定。全ての設定値は任意。個別サービスでも設定可能で、設定されている場合は個別サービスの設定値が優先される。
-->
<!--
<property name="clientConfig" class="org.iplass.mtp.impl.awsv2.AWSClientConfig">
<property name="proxyScheme" value="http" />
<property name="proxyHost" value="proxy.domain" />
<property name="proxyPort" value="8080" />
<property name="connectionTimeoutMillis" value="3000" />
<property name="socketTimeoutMillis" value="3000" />
<property name="maxConnections" value="5" />
<property name="connectionAcquisitionTimeoutMillis" value="60000" />
<property name="maxPendingConnectionAcquires" value="20" />
<property name="apiCallTimeoutMillis" value="10000" />
<property name="apiCallAttemptTimeoutMillis" value="3000" />
<property name="defaultsMode" value="auto" />
<property name="endpointOverride" value="[setYourDefaultEndpoint]" />
<property name="region" value="[setYourDefaultRegion]" />
</property>
-->
</service>
3.14. BinaryMetaDataService
バイナリ形式のメタデータをバイト配列でメモリ内に保持しない仕組みを提供する為のサービスです。
インタフェース名
org.iplass.mtp.impl.metadata.binary.BinaryMetaDataService
実装クラス名
org.iplass.mtp.impl.metadata.binary.BinaryMetaDataService
BinaryMetaDataServiceの設定
バイナリ形式のメタデータの保持に関する動作について設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
keepInMemoryThreshold |
int |
メモリ内に保持するサイズの閾値(バイト)。 サイズが閾値を超える場合は一時ファイルとして保持されます。デフォルト値は65536(64KiB)です。 |
cacheMemoryThreshold |
int |
メモリにキャッシュするサイズの閾値(バイト)。 サイズが閾値以下の場合はメモリにキャッシュされます。デフォルト値は1048576(1024KiB)です。 |
xmlBinaryChunkSize |
int |
メタデータのXMLにマーシャルまたはアンマーシャルする際のチャンクサイズ(バイト)。 デフォルト値は262144(256KiB)です。 |
deleteTempFileOnDestroy |
boolean |
サービスが破棄される、あるいは仮想マシン(VM)がシャットダウンされる際に一時ファイルを削除するか。デフォルト値はtrueです。 |
tempFileDir |
String |
一時ファイルが保存されるディレクトリのパス。 設定しない場合は"java.io.tmpdir"のディレクトリパスが使用されます。 |
設定例
<service>
<interface>org.iplass.mtp.impl.metadata.binary.BinaryMetaDataService</interface>
<property name="keepInMemoryThreshold" value="65536" />
<property name="cacheMemoryThreshold" value="1048576" />
<property name="xmlBinaryChunkSize" value="262144" />
<property name="deleteTempFileOnDestroy" value="true" />
<!-- if temp dir not specified, use "java.io.tmpdir"'s dir -->
<!--
<property name="tempFileDir" value="/tmp" />
-->
</service>
3.15. CacheService
キャッシュストアを管理するサービスです。
インタフェース名
org.iplass.mtp.impl.cache.CacheService
実装クラス名
org.iplass.mtp.impl.cache.CacheService
CacheServiceの設定
CacheServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
reloadThreadPoolSize |
int |
キャッシュのリロード処理を実施するスレッド数。デフォルト値は4です。 |
defaultFactory |
標準のCacheStoreFactoryの設定。 |
|
任意の文字列( |
CacheStoreFactory、複数指定可 |
個別のCacheStoreFactoryの設定。 |
classはorg.iplass.mtp.impl.cache.store.CacheStoreFactoryの実装クラスを指定します。
標準で、以下のCacheStoreFactoryを提供します。
各CacheStoreFactoryの共通の設定項目です。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
namespace |
String |
キャッシュを行う名前空間。 |
namespacePattern |
String |
キャッシュを行う名前空間のパターン。パターンは正規表現で記述します。 |
indexCount |
int |
インデックスの数。デフォルト値は0です。 |
concurrencyLevelOfCacheHandler |
int |
CacheHandlerの並列実行数。デフォルト値は4です。 |
Rdbを利用するCacheStoreFactoryです。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
cacheKeyResolver |
CacheKeyResolverの設定。 |
|
cacheIndexResolver |
CacheKeyResolver、複数指定可 |
インデックスのCacheKeyResolverの設定。 |
connectionFactoryName |
String |
接続ファクトリ名。 |
rdbArapterName |
String |
RdbAdapter名。 |
tableName |
String |
キャッシュを保存するテーブル名。デフォルト値は |
retryCount |
int |
キャッシュ保存失敗時にリトライする回数。デフォルト値は0です。 |
timeToLive |
long |
キャッシュの生存時間(ミリ秒)。-1が設定された場合は無期限となります。デフォルト値は-1です。 |
timeToLiveCalculator |
TimeToLiveCalculator |
キャッシュエントリ個別に生存期間を動的に設定したい場合、org.iplass.mtp.impl.cache.store.TimeToLiveCalculatorインタフェースの実装クラスを指定します。timeToLiveの設定よりtimeToLiveCalculatorの実装が優先されます。 |
内部メモリを利用するCacheStoreFactoryです。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
initialCapacity |
int |
キャッシュの初期容量。デフォルト値は16です。 |
loadFactor |
float |
負荷係数。初期値は0.75です。 |
concurrencyLevel |
int |
並行して更新しているスレッドの推定数。デフォルト値は16です。 |
timeToLive |
int |
キャッシュの生存時間(ミリ秒)。-1が設定された場合は無期限となります。デフォルト値は-1です。 |
timeToLiveCalculator |
TimeToLiveCalculator |
キャッシュエントリ個別に生存期間を動的に設定したい場合、org.iplass.mtp.impl.cache.store.TimeToLiveCalculatorインタフェースの実装クラスを指定します。timeToLiveの設定よりtimeToLiveCalculatorの実装が優先されます。 |
size |
int |
キャッシュのサイズ。-1が設定された場合は無制限となります。デフォルト値は-1です。 |
multiThreaded |
boolean |
マルチスレッドに対応するか。デフォルト値はtrueです。 |
evictionInterval |
long |
キャッシュの有効期限(ミリ秒)。-1が設定された場合は無期限となります。デフォルト値は-1です。 |
fineGrainedLock |
boolean |
細粒度のロックを行うかどうか。Index利用且つキャッシュの更新頻度が高い場合、このフラグを有効化することにより、キャッシュ更新処理の並列性が向上する可能性があります。デフォルト値はfalseです。 |
indexConfig |
細粒度のロックのindex毎の詳細設定です。 |
classにorg.iplass.mtp.impl.cache.store.builtin.FineGrainedLockIndexConfigの実装クラスを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
shardSize |
int |
シャードのサイズ。並列度に応じた値を設定します。デフォルト値は1です。 |
fair |
boolean |
ロック時の公平性ポリシーを指定します。公平順序付けポリシーを使用する場合は |
信頼性の低い、サーバ間のキャッシュを同期するCacheStoreFactoryです。 実ストアのtimeToLiveの設定で一定間隔でキャッシュがリフレッシュされる前提で利用してください。 他のサーバがキャッシュの更新処理中にダウンした場合などは、そのtimeToLiveの間、キャッシュと実データの間で不整合が発生する可能性あります。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
cacheKeyResolver |
CacheKeyResolverの設定。 |
|
cacheIndexResolver |
CacheKeyResolver、複数指定可 |
インデックスのCacheKeyResolverの設定。 |
store |
CacheStoreFactoryの設定。 |
|
listener |
同期メッセージ受信時に実行するリスナーの設定。 |
|
noClusterEventOnPut |
boolean |
キャッシュへのput操作時に別サーバに通知しない場合にtrueを設定する。デフォルト値はfalse(通知する)です。 |
トランザクションが有効な間はバックエンドのCacheStoreに反映を遅延するCacheStoreFactoryです。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
backendStore |
バックエンドのCacheStoreFactoryの設定。 |
Infinispanを利用するCacheStoreFactoryです。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
createOnStartup |
boolean |
スタートアップ時にCacheStoreを生成するか。デフォルト値はfalseです。 |
cacheConfigrationName |
String |
キャッシュ名。 |
timeToLiveCalculator |
TimeToLiveCalculator |
キャッシュエントリ個別に生存期間を動的に設定したい場合、org.iplass.mtp.impl.cache.store.TimeToLiveCalculatorインタフェースの実装クラスを指定します。 |
Redisを利用するCacheStoreFactoryです。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
serverName |
String |
RedisServiceで設定されたサーバ名。 |
timeToLive |
long |
キャッシュの生存時間(秒)。0以下が設定された場合は無期限となります。デフォルト値は0 (無期限) です。 |
timeToLiveCalculator |
TimeToLiveCalculator |
キャッシュエントリ個別に生存期間を動的に設定したい場合、org.iplass.mtp.impl.cache.store.TimeToLiveCalculatorインタフェースの実装クラスを指定します。timeToLiveの設定よりtimeToLiveCalculatorの実装が優先されます。 |
retryCount |
int |
キャッシュ保存失敗時のリトライ回数。デフォルト値は0 (リトライしない) です。 |
poolConfig |
コネクションプールの設定 (Apache Commons-pool2 を使用しています)。 |
以下の項目が設定可能です。各項目の詳細やデフォルト値は、Apache Commons-pool2のorg.apache.commons.pool2.impl.BaseObjectPoolConfig、org.apache.commons.pool2.impl.GenericObjectPoolConfigで確認できます。
| 項目 | 値 | 説明 |
|---|---|---|
maxTotal |
int |
プールから割り当てることができるコネクションの最大数。デフォルト値は8です。 |
maxIdle |
int |
プール内のアイドルインスタンス数の上限。デフォルト値は8です。 |
minIdle |
int |
プール内に維持するアイドルインスタンスの最小数。デフォルト値は0です。 |
blockWhenExhausted |
boolean |
maxTotalに達した状態でプールからインスタンスを取得しようとしたときに呼び出し元が待機する必要があるかどうか。デフォルト値はtrueです。 |
maxWaitMillis |
long |
コネクションが使用できないときに呼び出し元が待機する最大ミリ秒数。デフォルト値は-1 (タイムアウトしない) です。 |
testOnBorrow |
boolean |
コネクションをプールから取得する前に検証するかどうか。デフォルト値はfalseです。 |
testOnReturn |
boolean |
コネクションがプールに返される前に検証するかどうか。デフォルト値はfalseです。 |
testWhileIdle |
boolean |
プール内のアイドルインスタンスを検証するかどうか。デフォルト値はfalseです。 |
timeBetweenEvictionRunsMillis |
long |
プール内のアイドルインスタンスの検証が実行される間にスリープする時間。デフォルト値は-1 (検証しない) です。 |
minEvictableIdleTimeMillis |
long |
プール内でインスタンスがアイドル状態になってから、検証されて退去させられるようになるまでの最小時間。デフォルト値は 180000 (30分) です。 |
numTestsPerEvictionRun |
int |
アイドルインスタンス検証スレッドの書く実行中に検査するオブジェクトの最大数。デフォルト値は3です。 |
バックエンドCacheStoreのサイズ、キャッシュヒット回数/ミス回数をメトリクスとして収集するCacheStoreFactoryです。バックエンドに実際にキャッシュを行う永続ストアを持っており、このクラスではキャッシュに関する操作は行いません(記録のみ)。 Micrometerモジュールを依存関係に追加した場合に設定可能です。Micrometerモジュールを適用した場合、標準で設定されているCacheStoreFactoryに対して、メトリクスを収集するようにデフォルトで設定されます。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
wrappedStore |
バックエンドのCacheStoreFactoryの設定。 |
|
sizeOnly |
boolean |
CacheStoreのサイズのみを記録するかを指定します。falseの場合、CacheStoreのサイズに加えて、Cacheのヒット/ミスの回数をnameSpace毎に記録します。デフォルトでは、Queryキャッシュ、ActionContentキャッシュのみfalseに設定されています。 |
classにorg.iplass.mtp.impl.cache.store.keyresolver.CacheKeyResolverの実装クラスを指定します。
標準で、以下のCacheKeyResolverを提供します。
classにorg.iplass.mtp.impl.counter.CachableRdbTableCounterServicea$CounterCacheKeyResolverを指定します。
CounterKey型のCacheKeyResolverです。設定変更可能な項目はありません。
classにorg.iplass.mtp.impl.cache.store.keyresolver.IntegerCacheKeyResolverを指定します。
Integer型のCacheKeyResolverです。設定変更可能な項目はありません。
classにorg.iplass.mtp.impl.entity.cache.QueryCacheKeyResolverを指定します。
Query型のCacheKeyResolverです。設定変更可能な項目はありません。
classにorg.iplass.mtp.impl.cache.store.keyresolver.StringCacheKeyResolverを指定します。
文字列型のCacheKeyResolverです。設定変更可能な項目はありません。
classにorg.iplass.mtp.impl.metadata.MetaDataSyncServerCacheListenerを指定します。
メタデータの同期を行います。設定変更可能な項目はありません。
設定例
<service>
<interface>org.iplass.mtp.impl.cache.CacheService</interface>
<!-- Entityのトランザクションローカル用キャッシュ(非共有) -->
<property name="entityTransactionLocal" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
<property name="namespace" value="mtp.entity.transactionLocalCache" />
<property name="multiThreaded" value="false" />
<property name="size" value="32" />
</property>
<!-- Queryのトランザクションローカル用キャッシュ(非共有) -->
<property name="queryTransactionLocal" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
<property name="namespace" value="mtp.entity.transactionLocalQueryCache" />
<property name="indexCount" value="1" /><!-- index:defName -->
<property name="multiThreaded" value="false" />
<property name="size" value="32" />
</property>
<!-- 権限チェック結果のキャッシュ(非共有) -->
<property name="permissionLocal" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
<property name="namespace" value="mtp.auth.permissionCache" />
<property name="multiThreaded" value="false" />
<property name="size" value="16" />
</property>
<!-- TenantContextキャッシュ -->
<property name="tenantContext" class="org.iplass.mtp.impl.cache.store.builtin.TransactionLocalCacheStoreFactory">
<property name="namespace" value="mtp.tenant.tenantContext" />
<property name="indexCount" value="1" /><!-- index:tenantUrl -->
<property name="backendStore" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
</property>
</property>
<!-- CounterServiceのカウンタキャッシュ -->
<property name="rdbTableCounter" class="org.iplass.mtp.impl.cache.store.builtin.SyncServerCacheStoreFactory">
<property name="namespace" value="mtp.counter.rdbTableCounter" />
<property name="cacheKeyResolver" class="org.iplass.mtp.impl.counter.CachableRdbTableCounterService$CounterCacheKeyResolver" />
<property name="store" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
<property name="timeToLive" value="-1" />
<property name="size" value="1024" />
</property>
</property>
<!-- 権限系Entityのキャッシュ -->
<property name="authBuiltin" class="org.iplass.mtp.impl.cache.store.builtin.TransactionLocalCacheStoreFactory">
<property name="namespacePattern" value="mtp[.]auth[.]builtin[.].*" />
<property name="backendStore" class="org.iplass.mtp.impl.cache.store.builtin.SyncServerCacheStoreFactory">
<property name="cacheKeyResolver" class="org.iplass.mtp.impl.cache.store.keyresolver.StringCacheKeyResolver" />
<property name="store" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
<!-- 6時間有効 -->
<property name="timeToLive" value="21600000" />
</property>
</property>
</property>
<!-- メタデータ(本体)キャッシュ -->
<property name="metadata" class="org.iplass.mtp.impl.cache.store.builtin.TransactionLocalCacheStoreFactory">
<property name="namespacePattern" value="mtp[.]metadata[.]metaData/.*" />
<property name="indexCount" value="1" /><!-- index:path -->
<property name="backendStore" class="org.iplass.mtp.impl.cache.store.builtin.SyncServerCacheStoreFactory">
<property name="cacheKeyResolver" class="org.iplass.mtp.impl.cache.store.keyresolver.StringCacheKeyResolver" />
<property name="cacheIndexResolver" class="org.iplass.mtp.impl.cache.store.keyresolver.StringCacheKeyResolver" />
<property name="store" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
<!-- 12時間有効 -->
<property name="timeToLive" value="43200000" />
</property>
<property name="listener" class="org.iplass.mtp.impl.metadata.MetaDataSyncServerCacheListener" />
</property>
</property>
<!-- メタデータ(パスに対するリスト)キャッシュ(サーバローカルキャッシュ。メタデータ本体キャッシュのサーバ通知経由でデータの同期) -->
<property name="metadataList" class="org.iplass.mtp.impl.cache.store.builtin.TransactionLocalCacheStoreFactory">
<property name="namespacePattern" value="mtp[.]metadata[.]metaDataDefList/.*" />
<property name="backendStore" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
<!-- 12時間有効 -->
<property name="timeToLive" value="43200000" />
</property>
</property>
<!-- cubeのキャッシュ -->
<property name="cubeStatus" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
<property name="namespace" value="mtp.aggregation.cube.status" />
</property>
<property name="cubeFactData" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
<property name="namespace" value="mtp.aggregation.cube.factPartition" />
<property name="concurrencyLevelOfCacheHandler" value="4" />
</property>
<!-- Queryキャッシュ -->
<property name="query" class="org.iplass.mtp.impl.cache.store.builtin.TransactionLocalCacheStoreFactory">
<property name="namespacePattern" value="mtp[.]entity[.]queryCache/.*" />
<property name="indexCount" value="1" /><!-- index:defName -->
<property name="backendStore" class="org.iplass.mtp.impl.cache.store.builtin.SyncServerCacheStoreFactory">
<property name="cacheKeyResolver" class="org.iplass.mtp.impl.entity.cache.QueryCacheKeyResolver" />
<property name="cacheIndexResolver" class="org.iplass.mtp.impl.cache.store.keyresolver.StringCacheKeyResolver" />
<property name="store" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
<property name="fineGrainedLock" value="true" />
<property name="indexConfig" class="org.iplass.mtp.impl.cache.store.builtin.FineGrainedLockIndexConfig">
<property name="shardSize" value="16" />
<property name="fair" value="true" />
</property>
<!-- 12時間有効 -->
<property name="timeToLive" value="43200000" />
<!-- 最大128 -->
<property name="size" value="128" />
</property>
</property>
</property>
<!-- 上記namespace以外の場合のデフォルトキャッシュ -->
<property name="defaultFactory" class="org.iplass.mtp.impl.cache.store.builtin.SimpleCacheStoreFactory">
<property name="namespacePattern" value=".*" />
<property name="indexCount" value="5" />
</property>
</service>
3.16. CaptchaService
reCAPTCHAによるロボット排除を管理するためのサービスです。
インタフェース名
org.iplass.wam.impl.captcha.CaptchaService
実装クラス名
org.iplass.wam.impl.captcha.CaptchaService
CaptchaServiceの設定
CaptchaServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
captchaMethod |
CaptchaMethod、複数指定可 |
CaptchaMethodの設定。 |
classはorg.iplass.wam.impl.captcha.CaptchaMethodの実装クラスを指定します。
標準でorg.iplass.wam.impl.captcha.ReCaptchaMethodを提供しています。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
siteKey |
String |
reCAPTCHAのサイトキー。 |
secretKey |
String |
GoogleのreCAPTCHAのシークレットキー。reCAPTCHA Enterpriseを使用する場合、GCPのAPIキー。 |
projectId |
String |
reCAPTCHA Enterpriseを使用する場合、GCPのプロジェクトIDを入力します。 |
allowableScoreThreshold |
String |
許容するスコアの閾値。設定した閾値以上のスコアの場合、正当であると判断します。reCAPTCHA v3もしくはreCAPTCHA Enterpriseの場合に設定します。 |
設定例
<service>
<interface>org.iplass.wam.impl.captcha.CaptchaService</interface>
<class>org.iplass.wam.impl.captcha.CaptchaService</class>
<property name="captchaMethod" class="org.iplass.wam.impl.captcha.ReCaptchaMethod">
<property name="siteKey" value="yourSiteKey" />
<property name="secretKey" value="yourSecretKey" />
<property name="projectId" value="yourProjectId" />
<property name="allowableScoreThreshold" value="0.5" />
</property>
</service>
3.17. ClusterService
クラスタ間通信を行うためのサービスです。
インタフェース名
org.iplass.mtp.impl.cluster.ClusterService
実装クラス名
org.iplass.mtp.impl.cluster.ClusterService
ClusterServiceの設定
ClusterServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
messageChannel |
クラスタ間の通信に利用するメッセージチャネルの設定。 |
classはorg.iplass.mtp.impl.cluster.channel.MessageChannelの実装クラスを指定します。
標準で、以下のMessageChannelを提供します。
classはorg.iplass.mtp.impl.cluster.channel.http.HttpMessageChannelを指定します。
Httpを介してメッセージ送受信するメッセージチャネルです。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
serverUrl |
String、複数指定可 |
他のクラスタメンバの通信用URL。 http://[server]:[port]/[applicationContext]/cmcs 自身のサーバのurlも含めることも可能です。 serverUrlに自身のサーバのurlを含めた場合、次の形で自身のurlを解決して、それ以外のサーバにメッセージ送信します。
|
certKey |
String |
通信時の認証用のキー。クラスタメンバで同一のものを定義します。 |
connectionTimeout |
int |
http通信確立時のConnectionTimeout値(ミリ秒)。デフォルト値は30000(30秒)です。 |
soTimeout |
int |
http通信確立時のSoTimeout値(ミリ秒)。デフォルト値は30000(30秒)です。 |
proxyHost |
String |
http通信する際のproxyHost。 |
proxyPort |
int |
http通信する際のproxyPort。 |
poolingMaxTotal |
int |
httpコネクションのプールの最大数。デフォルト値は20です。 |
poolingDefaultMaxPerRoute |
int |
ドメイン単位のhttpコネクションの最大数。デフォルト値は2です。 |
poolingTimeToLive |
int |
プールされているhttpコネクションの生存期間(ミリ秒)。デフォルトは無制限です。 |
retryCount |
int |
メッセージ送信失敗時のリトライ回数。デフォルト値は3です。 |
retryDelay |
int |
メッセージ送信失敗時のリトライ間隔(ms)。デフォルト値は10000(10秒)です。 |
classはorg.iplass.mtp.impl.cluster.channel.jgroups.JGroupsMessageChannelを指定します。 JGroupsを介してメッセージ送受信するメッセージチャネルです。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
configFilePath |
String |
JGroupsの設定ファイルへのパスを指定します。 指定されたパスを元に、次の順にファイルを検索します。
|
clusterName |
String |
JGroupsのクラスタ名を指定します。同一のクラスタ名が指定されたノードがクラスタメンバとなります。 |
classはorg.iplass.mtp.impl.infinispan.cluster.channel.InfinispanMessageChannelを指定します。
Infinispanを利用してメッセージの送受信を行うメッセージチャネルです。 InfinispanMessageChannelを利用する場合は、別途 InfinispanService の設定が必要です。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
sync |
boolean |
メッセージの送信を同期して行うかを設定します。 |
設定例
<service>
<interface>org.iplass.mtp.impl.cluster.ClusterService</interface>
<property name="messageChannel"
class="org.iplass.mtp.impl.cluster.channel.http.HttpMessageChannel">
<property name="serverUrl" value="http://xxx1.xxx.xxx/app/cmcs" />
<property name="serverUrl" value="http://xxx2.xxx.xxx/app/cmcs" />
<property name="certKey" value="yourOwnClusterCertKey" />
<property name="connectionTimeout" value="30000" />
<property name="soTimeout" value="30000" />
<property name="proxyHost" value="proxy.xxx.xxx" />
<property name="proxyPort" value="8080" />
</property>
</service>
<service>
<interface>org.iplass.mtp.impl.cluster.ClusterService</interface>
<property name="messageChannel" class="org.iplass.mtp.impl.cluster.channel.jgroups.JGroupsMessageChannel">
<property name="configFilePath" value="/jgroups-config-udp.xml" />
<property name="clusterName" value="yourOwnClusterName" />
</property>
</service>
<service>
<interface>org.iplass.mtp.impl.cluster.ClusterService</interface>
<depend>org.iplass.mtp.impl.infinispan.InfinispanService</depend>
<property name="messageChannel" class="org.iplass.mtp.impl.infinispan.cluster.channel.InfinispanMessageChannel">
<property name="sync" value="false" />
</property>
</service>
3.18. ConnectionFactory
データベース接続を行うためのサービスです。 データベース接続の実装として、DriverManagerを利用した接続と、DataSourceを利用した接続のモジュールを標準提供します。
インタフェース名
org.iplass.mtp.impl.rdb.connection.ConnectionFactory
実装クラス名
org.iplass.mtp.impl.rdb.connection.DriverManagerConnectionFactory
org.iplass.mtp.impl.rdb.connection.DataSourceConnectionFactory
org.iplass.mtp.impl.rdb.connection.ReplicationAwareDataSourceConnectionFactory
DriverManagerConnectionFactoryの設定
DriverManagerを利用したデータベースの接続情報を設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
url |
String |
データベース接続文字列のURL。 |
user |
String |
ログインに使用されるユーザー名。 |
password |
String |
接続するユーザーのパスワード。 |
driver |
String |
JDBCドライバの完全修飾クラス名。 |
warnLogThreshold |
int |
警告ログを出力する処理時間(ミリ秒)の閾値。 |
warnLogBefore |
boolean |
事前警告ログを出力するか否かを指定します。 |
countSqlExecution |
boolean |
SQL発行回数を記録するか否かを指定します。記録されたSQL実行回数はAction、Web APIなどの実行単位とともにログ出力されます。 |
transactionIsolationLevel |
String |
トランザクションの分離レベル。以下が設定可能。
|
clientInfoMap |
String、Map形式 |
ConnectionのclientInfoへセットする値をMap形式で指定します。nameにはclientInfoのname、valueにはセットする値のMDCのキー名を指定します。valueに |
clientInfoMaxLength |
int |
ConnectionのclientInfoへセットする値の最大文字数を指定します。
-1の場合は、無制限です。 |
isCreateConnectionIfReadOnlyTransaction |
boolean |
実行対象のトランザクションが読み取り専用の場合に、フレームワーク内で管理している未使用コネクションを利用せず、新規にコネクションを作成するか否かを指定します。true が指定されると、新規にコネクションを作成します。 |
設定例
<service>
<interface>org.iplass.mtp.impl.rdb.connection.ConnectionFactory</interface>
<class>org.iplass.mtp.impl.rdb.connection.DriverManagerConnectionFactory</class>
<property name="url" value="jdbc:oracle:thin:ADDRESS:PORT:DB" />
<property name="user" value="yourName" />
<property name="password" value="yourPassword" />
<property name="driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="warnLogThreshold" value="0" />
<property name="clientInfoMap">
<property name="OCSID.CLIENTID" value="thread" />
<property name="OCSID.ACTION" value="command" />
</property>
<property name="clientInfoMaxLength" value="64" />
<property name="isCreateConnectionIfReadOnlyTransaction" value="false" />
</service>
DataSourceConnectionFactoryの設定
DataSourceを利用したデータベースの接続情報を設定します。 DataSourceは次のいずれかの方法で取得します。
-
JNDI経由で取得する
-
DataSourceのインスタンスを直接生成する
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
dataSourceName |
String |
データソース名。デフォルト値は |
jndienv.<キー名> |
String、複数指定可 |
JNDIの環境プロパティ。 |
dataSource |
javax.sql.DataSource |
javax.sql.DataSourceを実装するクラスのインスタンスを指定。 |
warnLogThreshold |
int |
警告ログを出力する処理時間(ミリ秒)の閾値。 |
warnLogBefore |
boolean |
事前警告ログを出力するか否かを指定します。 |
countSqlExecution |
boolean |
SQL発行回数を記録するか否かを指定します。記録されたSQL実行回数はAction、Web APIなどの実行単位とともにログ出力されます。 |
transactionIsolationLevel |
String |
トランザクションの分離レベル。以下が設定可能。
|
clientInfoMap |
String、Map形式 |
ConnectionのclientInfoへセットする値をMap形式で指定します。nameにはclientInfoのname、valueにはセットする値のMDCのキー名を指定します。valueに |
clientInfoMaxLength |
int |
ConnectionのclientInfoへセットする値の最大文字数を指定します。
-1の場合は、無制限です。 |
isCreateConnectionIfReadOnlyTransaction |
boolean |
実行対象のトランザクションが読み取り専用の場合に、フレームワーク内で管理している未使用コネクションを利用せず、新規にコネクションを作成するか否かを指定します。true が指定されると、新規にコネクションを作成します。 |
設定例(JNDI経由)
<service>
<interface>org.iplass.mtp.impl.rdb.connection.ConnectionFactory</interface>
<class>org.iplass.mtp.impl.rdb.connection.DataSourceConnectionFactory</class>
<property name="dataSourceName" value="java:comp/env/jdbc/sampleDS" />
<property name="jndienv.java.naming.factory.initial"
value="custom.JNDIInitialContextFactory" />
<property name="jndienv.java.naming.provider.url"
value="custom://server:1234:path/to/context" />
<property name="warnLogThreshold" value="0" />
<property name="clientInfoMap">
<property name="threadName" value="thread" />
<property name="commandName" value="command" />
</property>
<property name="isCreateConnectionIfReadOnlyTransaction" value="false" />
</service>
設定例(直接生成)
<service>
<interface>org.iplass.mtp.impl.rdb.connection.ConnectionFactory</interface>
<class>org.iplass.mtp.impl.rdb.connection.DataSourceConnectionFactory</class>
<property name="dataSource" class="com.zaxxer.hikari.HikariDataSource">
<property name="jdbcUrl" value="jdbc:mysql://server:3306/mtdb" />
<property name="username" value="user" />
<property name="password" value="pass" />
<property name="dataSourceProperties">
<property name="serverTimezone" value="JST" />
</property>
</property>
<property name="warnLogThreshold" value="0" />
<property name="clientInfoMap">
<property name="threadName" value="thread" />
<property name="commandName" value="command" />
</property>
<property name="isCreateConnectionIfReadOnlyTransaction" value="false" />
</service>
ReplicationAwareDataSourceConnectionFactoryの設定
DataSourceを利用したデータベースの接続情報を設定します。 オリジナル(読み書き可能)、リードレプリカ(読み取り専用)、それぞれのDataSourceを設定します。
| MySQLのJDBCドライバはドライバレベルでリードレプリカに対応しているため、ReplicationAwareDataSourceConnectionFactoryを利用せずともリードレプリカへの対応は可能です。詳しくはMySQLのドキュメントを参照ください。 |
オリジナル、リードレプリカそれぞれのDataSourceは次のいずれかの方法で取得します。
-
JNDI経由で取得する
-
DataSourceのインスタンスを直接生成する
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
dataSourceName |
String |
オリジナルのデータソース名。デフォルト値は |
replicaDataSourceName |
String、複数指定可 |
リードレプリカのデータソース名。 |
jndienv.<キー名> |
String、複数指定可 |
JNDIの環境プロパティ。 |
dataSource |
javax.sql.DataSource |
javax.sql.DataSourceを実装するクラスのインスタンスを指定。 |
replicaDataSource |
javax.sql.DataSource、複数指定可 |
javax.sql.DataSourceを実装するクラスのインスタンスを指定。 |
warnLogThreshold |
int |
警告ログを出力する処理時間(ミリ秒)の閾値。 |
warnLogBefore |
boolean |
事前警告ログを出力するか否かを指定します。 |
countSqlExecution |
boolean |
SQL発行回数を記録するか否かを指定します。記録されたSQL実行回数はAction、Web APIなどの実行単位とともにログ出力されます。 |
transactionIsolationLevel |
String |
トランザクションの分離レベル。以下が設定可能。
|
clientInfoMap |
String、Map形式 |
ConnectionのclientInfoへセットする値をMap形式で指定します。nameにはclientInfoのname、valueにはセットする値のMDCのキー名を指定します。valueに |
clientInfoMaxLength |
int |
ConnectionのclientInfoへセットする値の最大文字数を指定します。
-1の場合は、無制限です。 |
isCreateConnectionIfReadOnlyTransaction |
boolean |
実行対象のトランザクションが読み取り専用の場合に、フレームワーク内で管理している未使用コネクションを利用せず、新規にコネクションを作成するか否かを指定します。true が指定されると、新規にコネクションを作成します。 |
設定例(JNDI経由)
<service>
<interface>org.iplass.mtp.impl.rdb.connection.ConnectionFactory</interface>
<class>org.iplass.mtp.impl.rdb.connection.ReplicationAwareDataSourceConnectionFactory</class>
<property name="dataSourceName" value="java:comp/env/jdbc/sampleDS" />
<property name="replicaDataSourceName" value="java:comp/env/jdbc/sampleReplicaDS1" />
<property name="replicaDataSourceName" value="java:comp/env/jdbc/sampleReplicaDS2" />
<property name="jndienv.java.naming.factory.initial"
value="custom.JNDIInitialContextFactory" />
<property name="jndienv.java.naming.provider.url"
value="custom://server:1234:path/to/context" />
<property name="warnLogThreshold" value="0" />
<property name="isCreateConnectionIfReadOnlyTransaction" value="true" />
</service>
設定例(直接生成)
<service>
<interface>org.iplass.mtp.impl.rdb.connection.ConnectionFactory</interface>
<class>org.iplass.mtp.impl.rdb.connection.ReplicationAwareDataSourceConnectionFactory</class>
<property name="dataSource" class="com.zaxxer.hikari.HikariDataSource">
<property name="jdbcUrl" value="jdbc:postgresql://server:5432/mtdb" />
<property name="username" value="user" />
<property name="password" value="pass" />
</property>
<property name="replicaDataSource" class="com.zaxxer.hikari.HikariDataSource">
<property name="jdbcUrl" value="jdbc:postgresql://replicaServer1:5432/mtdb" />
<property name="username" value="user" />
<property name="password" value="pass" />
</property>
<property name="replicaDataSource" class="com.zaxxer.hikari.HikariDataSource">
<property name="jdbcUrl" value="jdbc:postgresql://replicaServer2:5432/mtdb" />
<property name="username" value="user" />
<property name="password" value="pass" />
</property>
<property name="warnLogThreshold" value="0" />
<property name="isCreateConnectionIfReadOnlyTransaction" value="true" />
</service>
3.19. CsvUploadService
CSVアップロードを管理するサービスです
インタフェース名
org.iplass.mtp.impl.fileport.CsvUploadService
実装クラス名
org.iplass.mtp.impl.fileport.CsvUploadService
CsvUploadServiceの設定
CsvUploadServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
showErrorLimitCount |
int |
CSVアップロードエラー表示件数上限値。 |
defaultUpdateTargetVersionForNoneVersionedEntity |
TargetVersion |
CSVアップロードのバージョン管理Entity以外の場合の更新時のデフォルトTargetVersion。デフォルト値は |
mustOrderByWithLimit |
boolean |
アップロード形式でのCSVダウンロード時に、件数上限が指定されている場合にOrderByを必ず指定するかを設定する。デフォルト値は SQLServerを利用している場合は、
|
設定例
<service>
<interface>org.iplass.mtp.impl.fileport.CsvUploadService</interface>
<class>org.iplass.mtp.impl.fileport.CsvUploadService</class>
<!-- CSVアップロードエラー表示件数上限値 (-1は無制限) -->
<property name="showErrorLimitCount" value="100"/>
<!--
CSVアップロードのバージョン管理Entity以外の場合の更新時のデフォルトTargetVersion。
デフォルトはCURRENT_VALID。
-->
<property name="defaultUpdateTargetVersionForNoneVersionedEntity" value="SPECIFIC"/>
<!--
CSVダウンロード時にLimitが指定されている場合にOrderByを必ず指定するか。
SQLServerの場合はtrueを指定すること。
-->
<property name="mustOrderByWithLimit" value="false"/>
</service>
3.20. CubeService
Cubeの定義(メタデータ)を管理するサービスです。
インタフェース名
org.iplass.mtp.impl.aggregation.cube.CubeService
実装クラス名
org.iplass.mtp.impl.aggregation.cube.CubeService
CubeServiceの設定
CubeServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
enablePhysicalResourceLoading |
boolean |
ファイルやJDBCといった物理リソースへのアクセスを許可するか。デフォルト値はfalseです。 |
useDataCompression |
boolean |
メモリ内に展開したデータを圧縮するか。デフォルト値はtrueです。 |
decompressDataReferenceType |
String |
useDataCompression有効時、展開されたデータの保持形式を指定。
|
useFlyweightListOnBitSetColData |
boolean |
BitMap形式でデータ格納する際、Listとして実データを保持するか。trueにした場合、集計速度は速くなりますがメモリ使用量は増えます。デフォルト値はfalseです。 |
useHashIndexOnListColData |
boolean |
ObjectPool形式でデータ格納する際、HashIndexを生成するか。trueにした場合、集計速度は速くなりますがメモリ使用量は増えます。デフォルト値はfalseです。 |
hashIndexSegmentSize |
int |
HashIndex利用時のHashのセグメントサイズ。設定された値は2の累乗に自動的に補正されます。デフォルト値は16です。 |
maxRowsOfDimension |
int |
集計時の最大ディメンジョン数(Clientへの返却可能な行数)。デフォルト値は10000です。 |
maxRowsOfDimensionInternal |
int |
集計時の最大ディメンジョン数(内部処理での)。デフォルト値は100000です。 |
transferredRawDataInMemoryThreshold |
int |
ローデータ取得時に分散環境下において、他Nodeから実データが転送されてきますが、それをメモリ内で扱う閾値。これより大きい場合は、一旦ファイルに落とします。デフォルト値は16384(16K)です。 |
joinBufferSize |
int |
Cubeのjoinを行う際のバッファーサイズ(行数)。大きくするとロード速度は上がりますがメモリ使用量が増えます。デフォルト値は1000です。 |
enableDistinctRows |
boolean |
ローデータ取得時にdistinctRow指定を許可するか。distinct操作には重複チェックのため取得する行数に応じてメモリを消費します。デフォルト値はtrueです。 |
inMemoryRowThresholdOfDistinctRows |
int |
ローデータ取得時のdistinct処理において、メモリ内で処理する最大行数。これ以上の行を処理する場合はファイルにスワップします(速度は低下します)。-1はすべてをメモリ内で処理します。0はすべてをファイルで処理します。デフォルト値は10000です。 |
loadStrategy |
メモリへのデータロード取得時の処理方式。 |
|
useForkJoin |
boolean |
fork-join frameworkベースのコードで処理するか。複数Nodeでの分散実行の際にtrue設定すると高速化が望めます。デフォルト値はfalseです。 |
gapFillLimit |
int |
ディメンジョンのギャップを埋める場合のカテゴリ数の最大値。これ以上のカテゴリとなる場合はギャップ埋めしません。デフォルト値は100です。 |
queryTimeoutOfWaitLoading |
long |
クエリ実行から読み込みを待機するタイムアウト期間(ms)。デフォルト値は3000です。 |
maxRowsOfDerivedCube |
int |
DerivedCube利用時のローデータの最大行数。メモリ内で処理するため行数を制限する。 |
innerCubeLoadTimeoutSec |
long |
Cubeの結合、DerivedCube時に、参照先のCubeがLOADINGであった場合の待機の最大時間(秒)。 |
innerCubeLoadIntervalSec |
int |
Cubeの結合、DerivedCube時に、参照先のCubeがLOADINGであった場合のロードが完了したかをチェックする間隔(秒)。 |
rawDataDimensionResolverBufferSize |
int |
ReferenceやSelectValueをラベル表示する際のバッファーサイズ。デフォルト値は100。 |
listaggDefaultSeparator |
String |
LISTAGG集約関数利用時のデフォルトのセパレータです。デフォルト値は |
classはorg.iplass.mtp.impl.aggregation.cube.engine.inmemory.fact.load.LoadStrategyの実装クラスを指定します。
標準で、以下のLoadStrategyを提供します。
classはorg.iplass.mtp.impl.aggregation.cube.engine.inmemory.fact.load.AllPartitionDirectLoadStrategyを指定します。
直接ダイレクトにメモリに読み込む方式です。設定変更可能な項目はありません。
メモリを大量消費しますが高速です。
classはorg.iplass.mtp.impl.aggregation.cube.engine.inmemory.fact.load.PerPartitionLoadStrategyを指定します。
パーティション単位でデータを読み込む方式です。設定変更可能な項目はありません。
パーティションタイプがMOD,LISTの場合、またはCubeの読み込み元がCSVの場合で、あらかじめパーティション単位でデータが分けられている場合、これを指定するとメモリ消費抑えつつ高速ロードが期待できます。
classはorg.iplass.mtp.impl.aggregation.cube.engine.inmemory.fact.load.SaveMemoryLoadStrategyを指定します。
ファイルへデータをスワップしながらなるべくメモリ消費を抑えながらロードする方式です。設定変更可能な項目はありません。
設定例
<service>
<interface>org.iplass.mtp.impl.aggregation.cube.CubeService</interface>
<class>org.iplass.mtp.impl.aggregation.cube.CubeService</class>
<!-- ファイルやJDBCといった物理リソースへのアクセスを許可するかどうか -->
<property name="enablePhysicalResourceLoading" value="false"/>
<!-- メモリ内に展開したデータを圧縮するかどうか(圧縮しない場合は、メモリ使用量は増える。ただ、GC後の初回集計時に集計速度が多少遅くなることはない) -->
<property name="useDataCompression" value="true"/>
<!-- BitMap形式でデータ格納する際、Listとして実データを保持するかどうか。(trueにした場合、集計速度は速くなるが、メモリ使用量は増える) -->
<property name="useFlyweightListOnBitSetColData" value="false"/>
<!-- ObjectPool形式でデータ格納する際、HashIndexを生成するかどうか。(trueにした場合、集計速度は速くなるが、メモリ使用量は増える) -->
<property name="useHashIndexOnListColData" value="false"/>
<!-- HashIndex利用時のHashのセグメントサイズ。(2の累乗に自動的に補正される) -->
<property name="hashIndexSegmentSize" value="16"/>
<!-- 集計時の最大ディメンジョン数(Clientへの返却可能な行数) -->
<property name="maxRowsOfDimension" value="10000"/>
<!-- 集計時の最大ディメンジョン数(内部処理での) -->
<property name="maxRowsOfDimensionInternal" value="100000"/>
<!-- ローデータ取得時に分散環境下において、他Nodeから実データが転送されてくるが、それをメモリ内で扱う閾値。これより大きい場合は、一旦ファイルに落とす。デフォルト16K。 -->
<property name="transferredRawDataInMemoryThreshold" value="16384"/>
<!-- Cubeのjoinを行う際のバッファーサイズ(行数)。大きくするとロード速度は上がるが、メモリ使用量が増える。 -->
<property name="joinBufferSize" value="1000"/>
<!-- ローデータ取得時にdistinctRow指定を許可するかどうか。distinct操作には重複チェックのため、取得する行数に応じて、メモリを消費する。 -->
<property name="enableDistinctRows" value="true"/>
<!-- ローデータ取得時のdistinct処理において、メモリ内で処理する最大行数。これ以上の行を処理する場合はファイルにスワップする(速度は低下する)。-1はすべてをメモリ内で処理。0はすべてをファイルで処理。 -->
<property name="inMemoryRowThresholdOfDistinctRows" value="10000"/>
<!-- メモリへのデータロード取得時の処理方式
SaveMemoryLoadStrategy: ファイルへデータをスワップしながらなるべくメモリ消費を抑えながらロードする方式。
AllPartitionDirectLoadStrategy: 直接ダイレクトにメモリに読み込む方式。メモリを大量消費するが、高速。
PerPartitionLoadStrategy: パーティション単位でデータを読み込む方式。
パーティションタイプがMOD,LISTの場合、またはCubeの読み込み元がCSVの場合で、
あらかじめパーティション単位でデータが分けられている場合、これを指定するとメモリ消費抑えつつ高速ロードが期待できる。
※いずれもパッケージはorg.iplass.mtp.impl.aggregation.cube.engine.inmemory.fact.load
-->
<property name="loadStrategy" class="org.iplass.mtp.impl.aggregation.cube.engine.inmemory.fact.load.SaveMemoryLoadStrategy"/>
<!-- fork-join frameworkベースのコードで処理するか否か。複数Nodeでの分散実行の際にtrue設定すると高速化が望める -->
<property name="useForkJoin" value="false"/>
<!-- ディメンジョンのギャップを埋める場合のカテゴリ数の最大値。これ以上のカテゴリとなる場合は、ギャップ埋めしない -->
<property name="gapFillLimit" value="100"/>
<!-- DerivedCube利用時のローデータの最大行数。メモリ内で処理するため行数を制限する。 -->
<property name="maxRowsOfDerivedCube" value="10000"/>
<!-- Cubeの結合、DerivedCube時に、参照先のCubeがLOADINGであった場合の待機の最大時間(秒)。 -->
<property name="innerCubeLoadTimeoutSec" value="1800"/>
<!-- Cubeの結合、DerivedCube時に、参照先のCubeがLOADINGであった場合のロードが完了したかをチェックする間隔(秒)。 -->
<property name="innerCubeLoadIntervalSec" value="10"/>
</service>
3.21. CubeTemplateService
Cube集計のカスタムメジャーのテンプレートを管理するサービスです。
インタフェース名
org.iplass.mtp.impl.aggregation.unit.cube.CubeTemplateService
実装クラス名
org.iplass.mtp.impl.aggregation.unit.cube.CubeTemplateService
CubeTemplateServiceの設定
CubeTemplateServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
templateSettings |
CubeTemplateSetting、複数指定可 |
カスタムメジャーに利用するテンプレートの設定。 |
classはorg.iplass.mtp.impl.aggregation.unit.cube.CubeTemplateSettingを指定します。
カスタムメジャーに利用するテンプレート設定です。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
displayLabel |
String |
表示ラベル。 |
valueExpressionTemplate |
String |
カスタムメジャー用の式。式中に埋め込まれた${1}はCubeのアイテム名に置換されます。 |
locale |
String |
ロケール。 |
設定例
<service>
<interface>org.iplass.mtp.impl.aggregation.unit.cube.CubeTemplateService</interface>
<class>org.iplass.mtp.impl.aggregation.unit.cube.CubeTemplateService</class>
<property name="templateSettings" class="org.iplass.mtp.impl.aggregation.unit.cube.CubeTemplateSetting">
<property name="displayLabel" value="10刻み" />
<property name="valueExpressionTemplate" value="CASE WHEN ${1} < 10 THEN '0' WHEN ${1} < 20 THEN '10' WHEN ${1} < 30 THEN '20' WHEN ${1} < 40 THEN '30' WHEN ${1} < 50 THEN '40' WHEN ${1} < 60 THEN '50' WHEN ${1} < 70 THEN '60' ELSE '70' END" />
<property name="locale" value="ja" />
</property>
<property name="templateSettings" class="org.iplass.mtp.impl.aggregation.unit.cube.CubeTemplateSetting">
<property name="displayLabel" value="10 increments" />
<property name="valueExpressionTemplate" value="CASE WHEN ${1} < 10 THEN '0' WHEN ${1} < 20 THEN '10' WHEN ${1} < 30 THEN '20' WHEN ${1} < 40 THEN '30' WHEN ${1} < 50 THEN '40' WHEN ${1} < 60 THEN '50' WHEN ${1} < 70 THEN '60' ELSE '70' END" />
<property name="locale" value="en" />
</property>
<!--
<property name="templateSettings" class="org.iplass.mtp.impl.aggregation.unit.cube.CubeTemplateSetting">
<property name="displayLabel" value="" />
<property name="valueExpressionTemplate" value="" />
<property name="locale" value="ja" />
</property>
<property name="templateSettings" class="org.iplass.mtp.impl.aggregation.unit.cube.CubeTemplateSetting">
<property name="displayLabel" value="" />
<property name="valueExpressionTemplate" value="" />
<property name="locale" value="en" />
</property>
-->
</service>
3.22. DefaultQueueBaseAsyncTaskService
RDBによるキューを利用した標準の非同期実行のサービスです。
非同期実行するためのAsyncTaskServiceの定義です。
インタフェース名
org.iplass.mtp.impl.async.AsyncTaskService
実装クラス名
org.iplass.mtp.impl.async.rdb.RdbAsyncTaskService
RdbAsyncTaskServiceの設定
RdbAsyncTaskServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
defaultGetResultTimeoutMillis |
long |
標準の結果取得のタイムアウト時間(ミリ秒)。デフォルト値は60000(1分)です。 |
initialGetResultIntervalMillis |
long |
初期の結果取得のインターバル時間(ミリ秒)。デフォルト値は100です。 |
設定例
<service name="DefaultQueueBaseAsyncTaskService">
<interface>org.iplass.mtp.impl.async.AsyncTaskService</interface>
<class>org.iplass.mtp.impl.async.rdb.RdbAsyncTaskService</class>
<property name="defaultGetResultTimeoutMillis" value="60000" />
<property name="initialGetResultIntervalMillis" value="100" />
</service>
3.23. EntityService
エンティティを管理するサービスです。
インタフェース名
org.iplass.mtp.impl.entity.EntityService
実装クラス名
org.iplass.mtp.impl.entity.EntityService
EntityServiceの設定
エンティティハンドラを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
limitOfReferences |
int |
エンティティの参照数の制限値。デフォルト値は1000です。 |
oidValidationPattern |
String |
oidに設定可能な文字列を制限するための正規表現。デフォルト値は |
purgeTargetDate |
int |
ごみ箱データのクリーナー対象日数。クリーナー対象日数よりも前にごみ箱へ削除されたデータが物理削除されます。 |
interceptor |
EntityInterceptor、複数指定可 |
エンティティに対する操作の前に挿む処理。 |
additionalStoreMaintainer |
データ削除、デフラグ実行時に、併せてストア内をメンテナンスする処理。 |
classはorg.iplass.mtp.entity.interceptor.EntityInterceptorの実装クラスを指定します。
classはorg.iplass.mtp.impl.entity.AdditionalStoreMaintainerの実装クラスを指定します。
設定例
<service>
<interface>org.iplass.mtp.impl.entity.EntityService</interface>
<property name="limitOfReferences" value="1000" />
<property name="oidValidationPattern" value="^[0-9a-zA-Z_\-]+$" />
<!--
ごみ箱データのクリーナー用日付です。日数を指定して下さい。
下記の場合、実行時より30日前の日付がクリーナー対象日となります。
クリーナー対象日よりも前にごみ箱へ削除されたデータが物理削除されます。
<property name="purgeTargetDate" value="30" />
-->
<property name="interceptor" class="org.iplass.mtp.impl.entity.contentcache.ContentCacheInterceptor" />
<property name="interceptor" class="org.iplass.mtp.impl.entity.auth.EntityAuthInterceptor" />
<property name="interceptor" class="org.iplass.mtp.impl.entity.available.EntityReadOnlyInterceptor" />
<property name="interceptor" class="org.iplass.mtp.impl.entity.auditlog.AuditLogInterceptor" />
<property name="interceptor" class="org.iplass.mtp.impl.entity.listener.EntityEventListenerInterceptor" />
<property name="interceptor" class="org.iplass.mtp.impl.entity.l10n.EntityLocalizationInterceptor" />
<property name="interceptor" class="org.iplass.mtp.impl.entity.cache.EntityCacheInterceptor" />
<property name="interceptor" class="org.iplass.mtp.impl.entity.fulltextsearch.FulltextSearchInterceptor" />
<property name="additionalStoreMaintainer" class="org.iplass.mtp.impl.entity.auditlog.AuditLogStoreMaintainer" />
<property name="additionalStoreMaintainer" class="org.iplass.mtp.impl.entity.fulltextsearch.FulltextSearchStoreMaintainer" />
<property name="additionalStoreMaintainer" class="org.iplass.mtp.impl.lob.LobStoreMaintainer" />
<property name="extendPropertyAdapterFactory" class="org.iplass.mtp.impl.entity.EnterpriseExtendPropertyAdapterFactory" />
</service>
3.24. EntityCsvImportService
EntityのCSVインポートに関するサービスです。
インタフェース名
org.iplass.mtp.impl.fileport.EntityCsvImportService
実装クラス名
org.iplass.mtp.impl.fileport.EntityCsvImportService
EntityCsvImportServiceの設定
EntityCsvImportServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
canCreateUserWithSpecificPassword |
boolean |
UserエンティティのInsert時にパスワード指定を許可するか。デフォルト値は |
設定例
<service>
<interface>org.iplass.mtp.impl.fileport.EntityCsvImportService</interface>
<property name="canCreateUserWithSpecificPassword" value="true" />
</service>
3.25. EntityFileUploadService
Entityに対して、ExcelまたはCSVファイルのアップロード処理を管理するサービスです。
インタフェース名
org.iplass.mtp.impl.fileport.EntityFileUploadService
実装クラス名
org.iplass.mtp.impl.fileport.EntityFileUploadService
EntityFileUploadServiceの設定
EntityFileUploadServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
showErrorLimitCount |
int |
ファイルアップロード時のエラー表示件数上限値。 |
defaultUpdateTargetVersionForNoneVersionedEntity |
TargetVersion |
アップロード対象がバージョン管理Entity以外の場合の更新時のデフォルトTargetVersion。デフォルト値は |
mustOrderByWithLimit |
boolean |
アップロード形式でのダウンロード時に、件数上限が指定されている場合にOrderByを必ず指定するかを設定する。デフォルト値は SQLServerを利用している場合は、
|
defaultIgnoreNotExistsProperty |
boolean |
アップロードでEntity定義に存在しないプロパティを無視するかのデフォルト値。デフォルト値は |
設定例
<service>
<interface>org.iplass.mtp.impl.fileport.EntityFileUploadService</interface>
<class>org.iplass.mtp.impl.fileport.EntityFileUploadService</class>
<!-- アップロードエラー表示件数上限値 (-1は無制限) -->
<property name="showErrorLimitCount" value="100"/>
<!--
アップロードのバージョン管理Entity以外の場合の更新時のデフォルトTargetVersion。
デフォルトはCURRENT_VALID。
-->
<property name="defaultUpdateTargetVersionForNoneVersionedEntity" value="SPECIFIC"/>
<!--
ダウンロード時にLimitが指定されている場合にOrderByを必ず指定するか。
SQLServerの場合はtrueを指定すること。
-->
<property name="mustOrderByWithLimit" value="false"/>
<!--
アップロードでEntity定義に存在しないプロパティを無視するかのデフォルト値。
-->
<property name="defaultIgnoreNotExistsProperty" value="false"/>
</service>
3.26. EntityPortingService
Entityデータのツールに関するサービスです。
インタフェース名
org.iplass.mtp.impl.tools.entityport.EntityPortingService
実装クラス名
org.iplass.mtp.impl.tools.entityport.EntityPortingService
EntityPortingServiceの設定
EntityPortingServiceを設定します。
設定項目
| 項目 | 値 | 説明 | ||
|---|---|---|---|---|
uploadableCsvDownloadLoadSize |
int |
Entityのプロパティに多重度複数の参照を含む場合の一括ロード件数。デフォルト値は |
||
canCreateUserWithSpecificPassword |
boolean |
UserエンティティのInsert時にパスワード指定を許可するか。デフォルト値は
|
設定例
<service>
<interface>org.iplass.mtp.impl.tools.entityport.EntityPortingService</interface>
<property name="uploadableCsvDownloadLoadSize" value="100" />
</service>
3.27. EntityListingService
EntityListingの定義(メタデータ)を管理するサービスです。
インタフェース名
org.iplass.mtp.impl.view.entitylisting.EntityListingService
実装クラス名
org.iplass.mtp.impl.view.entitylisting.EntityListingService
EntityListingServiceの設定
EntityListingServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
searchResultCacheLimit |
int |
User名取得のための検索内部キャッシュサイズ(件数)。デフォルト値は300です。 |
useSubQueryIfPossible |
boolean |
フィルター条件に保存リストを利用する場合に、可能な限りサブクエリを利用するか。デフォルト値はfalseです。 |
設定例
<service>
<interface>org.iplass.mtp.impl.view.entitylisting.EntityListingService</interface>
<class>org.iplass.mtp.impl.view.entitylisting.EntityListingService</class>
<!-- User名取得のための検索内部キャッシュサイズ -->
<property name="searchResultCacheLimit" value="300" />
<!-- フィルター条件に保存リストを利用する場合に、可能な限りサブクエリを利用するか否か -->
<property name="useSubQueryIfPossible" value="false" />
</service>
3.28. EntityWebApiService
EntityWebApiを管理するサービスです。
インタフェース名
org.iplass.mtp.impl.webapi.EntityWebApiService
実装クラス名
org.iplass.mtp.impl.webapi.EntityWebApiService
EntityWebApiServiceの設定
EntityWebApiServiceを設定します。
設定項目
| 項目 | 値 | 説明 | ||
|---|---|---|---|---|
maxLimit |
int |
EntityWebApiの取得件数の上限。
|
||
throwSearchResultLimitExceededException |
boolean |
取得件数がmaxLimitを超えた際、例外をスローする場合はtrueを指定します。デフォルト値はfalseです。 |
||
csvDateTimeFormat |
String |
EntityWebApiのQuery検索でCSV形式の結果を返す場合のDateTime型の出力形式。未指定の場合は、実行時のLocaleFormatを利用します。 |
||
csvDateFormat |
String |
EntityWebApiのQuery検索でCSV形式の結果を返す場合のDate型の出力形式。未指定の場合は、実行時のLocaleFormatを利用します。 |
||
csvTimeFormat |
String |
EntityWebApiのQuery検索でCSV形式の結果を返す場合のTime型の出力形式。未指定の場合は、実行時のLocaleFormatを利用します。 |
||
csvDownloadFooter |
String |
Entity CRUD APIのCSVダウンロードのフッター文言。 |
||
loadWithMappedByReference |
boolean |
EntityWebApiのLoad処理で被参照プロパティを取得するか否かのデフォルト値です。デフォルト値はfalseです。 |
||
listWithMappedByReference |
boolean |
EntityWebApiのQuery検索で被参照プロパティを取得するか否かのデフォルト値です。デフォルト値はfalseです。 |
||
csvListWithMappedByReference |
boolean |
EntityWebApiのQuery検索のCSV形式の場合、被参照プロパティを取得するか否かのデフォルト値です。 未設定時はlistWithMappedByReferenceの設定値が適用されます。
|
||
enableNativeHint |
boolean |
EntityWebApiの呼び出し時にNative Hintの指定を可能とするか否かを設定。デフォルト値はfalseです。 |
||
permitRolesToSpecifyOptions |
String、複数指定可 |
EntityWebApiの呼び出し時に制御オプションの指定を可能とするロールを設定。Adminユーザーの場合はロールが設定されていなくても制御オプションは利用できます。 |
設定例
<service>
<interface>org.iplass.mtp.impl.webapi.EntityWebApiService</interface>
<property name="maxLimit" value="1000" />
<property name="csvDateTimeFormat" value="yyyy/MM/dd HH:mm:ss" />
<property name="csvDateFormat" value="yyyy/MM/dd" />
<property name="csvTimeFormat" value="HH:mm:ss" />
<property name="csvDownloadFooter" value=""/>
<property name="loadWithMappedByReference" value="true" />
<property name="permitRolesToSpecifyOptions" value="RoleA" />
<property name="permitRolesToSpecifyOptions" value="RoleB" />
</service>
3.29. FulltextSearchService
全文検索のサービスです。 全文検索の実装として、Luceneを利用した全文検索、Elasticsearchを利用した全文検索、OpenSearchを利用した全文検索を標準提供します。
インタフェース名
org.iplass.mtp.impl.fulltextsearch.FulltextSearchService
実装クラス名
org.iplass.mtp.impl.fulltextsearch.lucene.LuceneFulltextSearchService
org.iplass.mtp.impl.fulltextsearch.elasticsearch.ElasticsearchFulltextSearchService
org.iplass.mtp.impl.aws.fulltextsearch.opensearch.OpenSearchFulltextSearchService
org.iplass.mtp.impl.fulltextsearch.opensearch.OpenSearchFulltextSearchService
FulltextSearchServiceの設定
全文検索の共通項目を設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
useFulltextSearch |
boolean |
全文検索を利用するか。デフォルト値はfalseです。 |
maxRows |
int |
全文検索の結果件数の上限。デフォルト値は1000です。 |
throwExceptionWhenOverLimit |
boolean |
maxRows以上の件数がヒットした場合の挙動。 trueの場合、件数以上取得できたことのメッセージを表示し、検索結果は出しません。 falseの場合、件数以上取得できたことのメッセージを表示し、検索結果も出します。デフォルト値はtrueです。 |
redundantTimeMinutes |
long |
|
binaryParser |
BinaryReferenceParser、複数指定可 |
BinaryReference解析用のParser。 |
binaryParseLimitLength |
int |
BinaryReferenceのParse可能な最大文字数。 |
scorePropertyName |
String |
検索結果のEntityにスコア値を格納する際のプロパティ名を設定。デフォルト値は |
includeMappedByReferenceIfNoPropertySpecified |
boolean |
検索結果のEntityに被参照の値も取得するかどうかを設定。デフォルト値は |
Apache Tikaを利用してBinaryReferenceの内容を解析します。
classはorg.iplass.mtp.impl.fulltextsearch.parser.BinaryReferenceParserの実装クラスを指定します。
標準で以下のBinaryReferenceParserを提供します。
標準で提供しているBinaryReferenceParserの共通設定項目は次の通りです(BinaryNameTypeParserを除く)。
| 項目 | 値 | 説明 |
|---|---|---|
continuableExceptions |
String、複数指定可 |
バイナリ情報をパースする際に、例外が発生しても処理継続したい例外クラス名を設定する。 |
TikaのAutoDetectParserを利用して全てのタイプを対象に解析します。 ただし解析に必要となる依存ライブラリが存在しない場合はスキップします。
classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryAutoDetectParserを指定します。 設定変更可能な項目は、共通設定項目のみです。
HTML用Parser。 TikaのHtmlParserを利用して解析します。
classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryHtmlParserを指定します。 設定変更可能な項目は、共通設定項目のみです。
OfficeDocument(2003以前の形式)用Parser。 TikaのOfficeParserを利用して解析します。
classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryOfficeParserを指定します。 設定変更可能な項目は、共通設定項目のみです。
OfficeDocument(OOXML形式)用Parser。 TikaのOOXMLParserを利用して解析します。
classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryOOXMLParserを指定します。 設定変更可能な項目は、共通設定項目のみです。
PDF用Parser。 TikaのPDFParserを利用して解析します。
classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryPDFParserを指定します。 設定変更可能な項目は、共通設定項目のみです。
PlainText用Parser。 TikaのTXTParserを利用して解析します。
classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryTextParserを指定します。 設定変更可能な項目は、共通設定項目のみです。
XML用Parser。 TikaのXMLParserを利用して解析します。
classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryXMLParserを指定します。 設定変更可能な項目は、共通設定項目のみです。
全てのバイナリファイルを対象に、nameとtypeを返します。
classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryNameTypeParserを指定します。 設定変更可能な項目はありません。
LuceneFulltextSearchServiceの設定
Luceneを利用した全文検索の項目を設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
indexWriterSetting |
IndexWriterSetting、省略可能 |
IndexWriterの設定です。 |
directory |
String |
Indexファイルを保存するルートディレクトリを指定。 ルートディレクトリ配下にテナント、Entity単位にIndexファイルが作成されます。 |
luceneFSDirectory |
|
ファイルシステムにINDEXファイルを保存するLucene Directoryの実装クラス。 |
luceneFSDirectoryMaxChunkSizeMB |
long |
|
analyzerSetting |
AnalyzerSetting、省略可能 |
analyzerを初期化する設定クラスです。設定が省略された場合はJapaneseAnalyzerSettingが適用されます。 |
defaultOperator |
Operator |
演算子。設定可能な演算子は |
searcherAutoRefreshTimeMinutes |
int |
iPLAssが保持しているLuceneのIndexSearcher( ≒ IndexReader)が自動的に更新される時間間隔(分)です。 |
classはorg.iplass.mtp.impl.fulltextsearch.lucene.IndexWriterSettingを指定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
ramBufferSizeMB |
double |
Index作成時のメモリのキャッシュサイズ。デフォルト値は64.0です。 |
commitLimit |
int |
Index作成時のコミット単位。未指定の場合は、全件一括でコミットします。 |
mergePolicy |
org.apache.lucene.index.MergePolicy |
org.apache.lucene.index.MergePolicyのインスタンスを指定します。 |
infoStream |
org.apache.lucene.util.InfoStream |
org.apache.lucene.util.InfoStreamのインスタンスを指定します。
DEBUGログに出力する |
indexDeletionPolicy |
org.apache.lucene.index.IndexDeletionPolicy |
org.apache.lucene.index.IndexDeletionPolicyのインスタンスを指定します。 |
analyzerを初期化する設定クラスです。
classはorg.iplass.mtp.impl.fulltextsearch.lucene.AnalyzerSettingの実装クラスを指定します。
標準で以下のAnalyzerSettingを提供します。
Analyzerクラス名を指定可能なシンプルなAnalyzerSettingです。
org.iplass.mtp.impl.fulltextsearch.lucene.SimpleAnalyzerSetting を指定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
className |
String |
org.apache.lucene.analysis.Analyzerの実装クラス名を指定。 |
JapaneseAnalyzerを初期化するAnalyzerSettingです。
org.iplass.mtp.impl.fulltextsearch.lucene.JapaneseAnalyzerSetting を指定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
className |
String |
org.apache.lucene.analysis.Analyzerの実装クラス名を指定。
デフォルト値は |
mode |
org.apache.lucene.analysis.ja.JapaneseTokenizer.Mode |
トークナイゼーションモード。JapaneseTokenizer.Modeのenum値を指定します。デフォルト値は |
userDictionary |
String |
ユーザー定義辞書。クラスパス上に配置する必要があります。 |
stopwords |
String |
ストップワード定義ファイル。クラスパス上に配置する必要があります。 |
stoptags |
String |
ストップタグ定義ファイル。クラスパス上に配置する必要があります。 |
Entity定義単位に異なったAnalyzerを利用するためのAnalyzerSettingです。
org.iplass.mtp.impl.fulltextsearch.lucene.PerEntityAnalyzerSetting を指定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
settingsPerEntity |
AnalyzerSetting、Map形式 |
keyとしてEntity定義名を指定し、valueとしてAnalyzerSettingのインスタンスを設定します。 |
defaultSetting |
デフォルトで適用されるAnalyzerを指定。settingsPerEntityで指定されていないEntity定義に適用されます。 |
ElasticsearchFulltextSearchServiceの設定
Elasticsearchを利用した全文検索の項目を設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
restClientFactory |
RestClientFactoryの設定です。 |
|
analysisFactory |
AnalysisFactoryの設定です。 |
|
defaultAnalyzerProperty |
AnalyzerPropertyの設定です。 |
|
analyzerPropertyPerEntity |
AnalyzerProperty、Map形式 |
keyとしてEntity定義名を指定し、valueとしてAnalyzerPropertyのインスタンスを設定します。 |
defaultOperator |
Operator |
演算子。設定可能な演算子は |
classはorg.iplass.mtp.impl.fulltextsearch.elasticsearch.RestClientFactoryの実装クラスを指定します。
標準で以下のRestClientFactoryを提供します。
classはorg.iplass.mtp.impl.fulltextsearch.elasticsearch.DefaultRestClientFactoryを指定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
elasticsearchUrl |
String、複数指定可 |
ElasticsearchサーバのURL |
headers |
String、Map形式 |
リクエスト時に設定できるHeader。Map形式で指定可能です。 |
connectionTimeout |
int |
http通信確立時のConnectionTimeout値(ミリ秒)。デフォルト値は-1です。 |
soTimeout |
int |
http通信確立時のSoTimeout値(ミリ秒)。デフォルト値は-1です。 |
proxyHost |
String |
http通信する際のproxyHost。 |
proxyPort |
int |
http通信する際のproxyPort。 |
userName |
String |
BASIC認証で利用するユーザー名 |
password |
String |
BASIC認証で利用するパスワード |
カスタムでAnalyzer等を定義したい場合に利用するクラスです。
classはorg.iplass.mtp.impl.fulltextsearch.elasticsearch.analysis.AnalysisFactoryの実装クラスを指定します。
標準で以下のAnalysisFactoryを提供します。
classはorg.iplass.mtp.impl.fulltextsearch.elasticsearch.analysis.DefaultAnalysisFactoryを指定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
analyzer |
AnalyzerFactory、Map形式 |
keyとして定義名を指定し、valueとしてAnalyzerFactoryのインスタンスを設定します。 |
charFilter |
CharFilterFactory、Map形式 |
keyとして定義名を指定し、valueとしてCharFilterFactoryのインスタンスを設定します。 |
filter |
TokenFilterFactory、Map形式 |
keyとして定義名を指定し、valueとしてTokenFilterFactoryのインスタンスを設定します。 |
tokenizer |
TokenizerFactory、Map形式 |
keyとして定義名を指定し、valueとしてTokenizerFactoryのインスタンスを設定します。 |
カスタムでAnalyzerを定義したい場合に利用するFactoryクラスです。 classはorg.iplass.mtp.impl.fulltextsearch.elasticsearch.analysis.AnalyzerFactoryの実装クラスを指定します。
標準で以下のAnalysisFactoryを提供します。
charFilter、tokenizer、filterを組み合わせてAnalyzerを定義することができます。 classはorg.iplass.mtp.impl.fulltextsearch.elasticsearch.analysis.analyzer.CustomAnalyzerFactoryを指定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
charFilter |
String、複数指定可 |
charFilterの定義名 |
filter |
String、複数指定可 |
filterの定義名 |
tokenizer |
String、必須 |
tokenizerの定義名 |
カスタマイズされたKuromojiAnalyzerを定義することができます。 classはorg.iplass.mtp.impl.fulltextsearch.elasticsearch.analysis.analyzer.KuromojiAnalyzerFactoryを指定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
mode |
co.elastic.clients.elasticsearch._types.analysis.KuromojiTokenizationMode |
tokenizationモードの設定 |
userDictionary |
String |
ユーザー辞書 |
カスタムでCharFilterを定義したい場合に利用するFactoryクラスです。 classはorg.iplass.mtp.impl.fulltextsearch.elasticsearch.analysis.AnalyzerFactoryの実装クラスを指定します。
カスタムでTokenFilterを定義したい場合に利用するFactoryクラスです。 classはorg.iplass.mtp.impl.fulltextsearch.elasticsearch.analysis.filter.TokenFilterFactoryの実装クラスを指定します。
カスタムでTokenizerを定義したい場合に利用するFactoryクラスです。 classはorg.iplass.mtp.impl.fulltextsearch.elasticsearch.analysis.tokenizer.TokenizerFactoryの実装クラスを指定します。
Analyzerを指定する際に利用します。
classはorg.iplass.mtp.impl.fulltextsearch.elasticsearch.mappings.AnalyzerPropertyを指定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
analyzer |
String |
デフォルトで利用するAnalyzer名 |
searchAnalyzer |
String |
検索で利用するAnalyzer名 |
searchQuoteAnalyzer |
String |
フレーズを利用した検索で利用するAnalyzer名 |
(非推奨)OpenSearchFulltextSearchServiceの設定
OpenSearchを利用した全文検索の項目を設定します。
本機能を利用する場合は、ライブラリ iplass-ee-aws を追加してください。
|
AWS SDK for Java 1.x はメンテナンスモードになっており、2025年12月 にサポートを終了する予定です。 |
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
restClientFactory |
RestClientFactoryの設定です。 |
|
analysisFactory |
AnalysisFactoryの設定です。 |
|
defaultAnalyzerProperty |
AnalyzerPropertyの設定です。 |
|
analyzerPropertyPerEntity |
AnalyzerProperty、Map形式 |
keyとしてEntity定義名を指定し、valueとしてAnalyzerPropertyのインスタンスを設定します。 |
defaultOperator |
Operator |
演算子。設定可能な演算子は |
classはorg.iplass.mtp.impl.aws.fulltextsearch.opensearch.RestClientFactoryの実装クラスを指定します。
標準で以下のRestClientFactoryを提供します。
classはorg.iplass.mtp.impl.aws.fulltextsearch.opensearch.DefaultRestClientFactoryを指定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
openSearchUrl |
String、複数指定可 |
OpenSearchサーバのURL |
headers |
String、Map形式 |
リクエスト時に設定できるHeader。Map形式で指定可能です。 |
connectionTimeout |
int |
http通信確立時のConnectionTimeout値(ミリ秒)。デフォルト値は-1です。 |
soTimeout |
int |
http通信確立時のSoTimeout値(ミリ秒)。デフォルト値は-1です。 |
proxyHost |
String |
http通信する際のproxyHost。 |
proxyPort |
int |
http通信する際のproxyPort。 |
userName |
String |
BASIC認証で利用するユーザー名 |
password |
String |
BASIC認証で利用するパスワード |
httpRequestInterceptorFactory |
HttpRequestInterceptorFactoryの設定です。userNameとpasswordの値が設定されていない場合に適用されます。 |
org.apache.http.HttpRequestInterceptor を生成するFactoryクラスです。
classはorg.iplass.mtp.impl.aws.HttpRequestInterceptorの実装クラスを指定します。
標準で以下のHttpRequestInterceptorFactoryを提供します。
com.amazonaws.http.AWSRequestSigningApacheInterceptor を生成するFactoryクラスです。BASIC認証ではなく、IAM認証情報を使用してリクエストを署名したい場合に利用します。
AWSRequestSigningApacheInterceptorで利用するAWSCredentialsProviderについて、AWSSettingのaccessKeyIdとsecretKeyが設定されている場合はAWSStaticCredentialsProviderが適用され、未設定の場合はDefaultAWSCredentialsProviderChainが適用されます。
classはorg.iplass.mtp.impl.aws.AWSRequestSigningApacheInterceptorFactoryを指定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
serviceName |
String |
サービス名 |
region |
String |
リージョン名 |
カスタムでAnalyzer等を定義したい場合に利用するクラスです。
classはorg.iplass.mtp.impl.aws.fulltextsearch.opensearch.analysis.AnalysisFactoryの実装クラスを指定します。
標準で以下のAnalysisFactoryを提供します。
classはorg.iplass.mtp.impl.aws.fulltextsearch.opensearch.analysis.DefaultAnalysisFactoryを指定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
analyzer |
AnalyzerFactory、Map形式 |
keyとして定義名を指定し、valueとしてAnalyzerFactoryのインスタンスを設定します。 |
charFilter |
CharFilterFactory、Map形式 |
keyとして定義名を指定し、valueとしてCharFilterFactoryのインスタンスを設定します。 |
filter |
TokenFilterFactory、Map形式 |
keyとして定義名を指定し、valueとしてTokenFilterFactoryのインスタンスを設定します。 |
tokenizer |
TokenizerFactory、Map形式 |
keyとして定義名を指定し、valueとしてTokenizerFactoryのインスタンスを設定します。 |
カスタムでAnalyzerを定義したい場合に利用するクラスです。 classはorg.iplass.mtp.impl.aws.fulltextsearch.opensearch.analysis.AnalyzerFactoryの実装クラスを指定します。
標準で以下のAnalysisFactoryを提供します。
charFilter、tokenizer、filterを組み合わせてAnalyzerを定義することができます。 classはorg.iplass.mtp.impl.aws.fulltextsearch.opensearch.analysis.analyzer.CustomAnalyzerFactoryを指定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
charFilter |
String、複数指定可 |
charFilterの定義名 |
filter |
String、複数指定可 |
filterの定義名 |
tokenizer |
String、必須 |
tokenizerの定義名 |
カスタマイズされたKuromojiAnalyzerを定義することができます。 classはorg.iplass.mtp.impl.aws.fulltextsearch.opensearch.analysis.analyzer.KuromojiAnalyzerFactoryを指定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
mode |
org.opensearch.client.opensearch._types.analysis.KuromojiTokenizationMode |
tokenizationモードの設定 |
userDictionary |
String |
ユーザー辞書 |
カスタムでCharFilterを定義したい場合に利用するFactoryクラスです。 classはorg.iplass.mtp.impl.aws.fulltextsearch.opensearch.analysis.AnalyzerFactoryの実装クラスを指定します。
カスタムでTokenFilterを定義したい場合に利用するFactoryクラスです。 classはorg.iplass.mtp.impl.aws.fulltextsearch.opensearch.analysis.filter.TokenFilterFactoryの実装クラスを指定します。
カスタムでTokenizerを定義したい場合に利用するFactoryクラスです。 classはorg.iplass.mtp.impl.aws.fulltextsearch.opensearch.analysis.tokenizer.TokenizerFactoryの実装クラスを指定します。
Analyzerを指定する際に利用します。
classはorg.iplass.mtp.impl.aws.fulltextsearch.opensearch.mappings.AnalyzerPropertyを指定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
analyzer |
String |
デフォルトで利用するAnalyzer名 |
searchAnalyzer |
String |
検索で利用するAnalyzer名 |
searchQuoteAnalyzer |
String |
フレーズを利用した検索で利用するAnalyzer名 |
OpenSearchFulltextSearchServiceの設定
OpenSearchを利用した全文検索の項目を設定します。
本機能を利用する場合は、ライブラリ iplass-ee-opensearch を追加してください。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
restClientFactory |
RestClientFactoryの設定です。 |
|
transportFactory |
OpenSearchTransport インスタンスを生成するクラスを設定する。restClientFactory と同時に設定された場合、restClientFactory の設定値が優先される。 |
|
analysisFactory |
AnalysisFactoryの設定です。 |
|
defaultAnalyzerProperty |
AnalyzerPropertyの設定です。 |
|
analyzerPropertyPerEntity |
AnalyzerProperty、Map形式 |
keyとしてEntity定義名を指定し、valueとしてAnalyzerPropertyのインスタンスを設定します。 |
defaultOperator |
Operator |
演算子。設定可能な演算子は |
classはorg.iplass.mtp.impl.fulltextsearch.opensearch.RestClientFactoryの実装クラスを指定します。
標準で以下のRestClientFactoryを提供します。
classはorg.iplass.mtp.impl.fulltextsearch.opensearch.DefaultRestClientFactoryを指定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
openSearchUrl |
String、複数指定可 |
OpenSearchサーバのURL |
headers |
String、Map形式 |
リクエスト時に設定できるHeader。Map形式で指定可能です。 |
connectionTimeout |
int |
http通信確立時のConnectionTimeout値(ミリ秒)。デフォルト値は-1です。 |
soTimeout |
int |
http通信確立時のSoTimeout値(ミリ秒)。デフォルト値は-1です。 |
proxyHost |
String |
http通信する際のproxyHost。 |
proxyPort |
int |
http通信する際のproxyPort。 |
userName |
String |
BASIC認証で利用するユーザー名 |
password |
String |
BASIC認証で利用するパスワード |
httpRequestInterceptorFactory |
HttpRequestInterceptorFactoryの設定です。userNameとpasswordの値が設定されていない場合に適用されます。 |
classはorg.iplass.mtp.impl.fulltextsearch.opensearch.HttpRequestInterceptorFactoryの実装クラスを指定します。
Apache HttpComponents4 の org.apache.http.HttpRequestInterceptor を生成するFactoryクラスです。
標準提供する機能はありません。
classはorg.iplass.mtp.impl.fulltextsearch.opensearch.OpenSearchTransportFactoryの実装クラスを指定します。
OpenSearch Client の org.opensearch.client.transport.OpenSearchTransport を生成する Factory クラスです。
標準で以下の OpenSearchTransportFactory を提供します。
class は org.iplass.mtp.impl.fulltextsearch.opensearch.awsv2.AwsSdk2OpenSearchTransportFactory を指定します。
AWS IAM 認証情報でリクエストに署名する場合に利用します。 認証情報は AWSSetting の設定を利用します。
以下の項目を設定可能です。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
host |
String |
サービスのホスト名を設定します。スキーム( https:// )を除いた値を設定してください。 |
serviceName |
String |
サービス名。利用するサービスで設定値を決定します。
詳細は Connecting to Amazon OpenSearch Service | Serverless を確認ください。 |
region |
String |
サービスを構築したリージョンを指定します。 |
カスタムでAnalyzer等を定義したい場合に利用するクラスです。
classはorg.iplass.mtp.impl.fulltextsearch.opensearch.analysis.AnalysisFactoryの実装クラスを指定します。
標準で以下のAnalysisFactoryを提供します。
classはorg.iplass.mtp.impl.fulltextsearch.opensearch.analysis.DefaultAnalysisFactoryを指定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
analyzer |
AnalyzerFactory、Map形式 |
keyとして定義名を指定し、valueとしてAnalyzerFactoryのインスタンスを設定します。 |
charFilter |
CharFilterFactory、Map形式 |
keyとして定義名を指定し、valueとしてCharFilterFactoryのインスタンスを設定します。 |
filter |
TokenFilterFactory、Map形式 |
keyとして定義名を指定し、valueとしてTokenFilterFactoryのインスタンスを設定します。 |
tokenizer |
TokenizerFactory、Map形式 |
keyとして定義名を指定し、valueとしてTokenizerFactoryのインスタンスを設定します。 |
カスタムでAnalyzerを定義したい場合に利用するクラスです。 classはorg.iplass.mtp.impl.fulltextsearch.opensearch.analysis.AnalyzerFactoryの実装クラスを指定します。
標準で以下のAnalysisFactoryを提供します。
charFilter、tokenizer、filterを組み合わせてAnalyzerを定義することができます。 classはorg.iplass.mtp.impl.fulltextsearch.opensearch.analysis.analyzer.CustomAnalyzerFactoryを指定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
charFilter |
String、複数指定可 |
charFilterの定義名 |
filter |
String、複数指定可 |
filterの定義名 |
tokenizer |
String、必須 |
tokenizerの定義名 |
カスタマイズされたKuromojiAnalyzerを定義することができます。 classはorg.iplass.mtp.impl.fulltextsearch.opensearch.analysis.analyzer.KuromojiAnalyzerFactoryを指定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
mode |
org.opensearch.client.opensearch._types.analysis.KuromojiTokenizationMode |
tokenizationモードの設定 |
userDictionary |
String |
ユーザー辞書 |
カスタムでCharFilterを定義したい場合に利用するFactoryクラスです。 classはorg.iplass.mtp.impl.fulltextsearch.opensearch.analysis.AnalyzerFactoryの実装クラスを指定します。
カスタムでTokenFilterを定義したい場合に利用するFactoryクラスです。 classはorg.iplass.mtp.impl.fulltextsearch.opensearch.analysis.filter.TokenFilterFactoryの実装クラスを指定します。
カスタムでTokenizerを定義したい場合に利用するFactoryクラスです。 classはorg.iplass.mtp.impl.fulltextsearch.opensearch.analysis.tokenizer.TokenizerFactoryの実装クラスを指定します。
Analyzerを指定する際に利用します。
classはorg.iplass.mtp.impl.fulltextsearch.opensearch.mappings.AnalyzerPropertyを指定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
analyzer |
String |
デフォルトで利用するAnalyzer名 |
searchAnalyzer |
String |
検索で利用するAnalyzer名 |
searchQuoteAnalyzer |
String |
フレーズを利用した検索で利用するAnalyzer名 |
設定例(LuceneFulltextSearchService利用の場合)
<service>
<interface>org.iplass.mtp.impl.fulltextsearch.FulltextSearchService</interface>
<class>org.iplass.mtp.impl.fulltextsearch.lucene.LuceneFulltextSearchService</class>
<property name="useFulltextSearch" value="true" />
<property name="maxRows" value="1000" />
<property name="throwExceptionWhenOverLimit" value="true"/>
<property name="directory" value="/lucene" />
<property name="indexWriterSetting">
<property name="ramBufferSizeMB" value="64.0"/>
<property name="commitLimit" value="1000"/>
<property name="infoStream" class="org.iplass.mtp.impl.fulltextsearch.lucene.LoggingInfoStream"/>
</property>
<property name="redundantTimeMinutes" value="10"/>
<!--
some.SampleEntity、some.AnotherSampleEntityの場合CJKAnalyzerを利用し、
それ以外の場合はJapaneseAnalyzerを利用する設定例
-->
<property name="analyzerSetting" class="org.iplass.mtp.impl.fulltextsearch.lucene.PerEntityAnalyzerSetting">
<property name="defaultSetting" class="org.iplass.mtp.impl.fulltextsearch.lucene.JapaneseAnalyzerSetting">
<property name="mode" value="SEARCH" />
<property name="userDictionary" value="/lucene/userdict.txt" />
<property name="stopwords" value="/lucene/stopwords.txt" />
<property name="stoptags" value="/lucene/stoptags.txt" />
</property>
<property name="settingsPerEntity">
<property name="some.SampleEntity" class="org.iplass.mtp.impl.fulltextsearch.lucene.SimpleAnalyzerSetting">
<property name="className" value="org.apache.lucene.analysis.cjk.CJKAnalyzer"/>
</property>
<property name="some.AnotherSampleEntity" class="org.iplass.mtp.impl.fulltextsearch.lucene.SimpleAnalyzerSetting">
<property name="className" value="org.apache.lucene.analysis.cjk.CJKAnalyzer"/>
</property>
</property>
</property>
<property name="defaultOperator" value="AND" />
<property name="indexWriterCommitLimit" value="-1"/>
<property name="binaryParseLimitLength" value="100000"/>
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryPDFParser" />
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryOOXMLParser" />
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryOfficeParser">
<property name="continuableExceptions" value="org.apache.poi.poifs.filesystem.NotOLE2FileException" />
</property>
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryHtmlParser" />
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryTextParser" />
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryXMLParser" />
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryNameTypeParser" />
</service>
設定例(ElasticsearchFulltextSearchService利用の場合)
<service>
<interface>org.iplass.mtp.impl.fulltextsearch.FulltextSearchService</interface>
<class>org.iplass.mtp.impl.fulltextsearch.elasticsearch.ElasticsearchFulltextSearchService</class>
<property name="useFulltextSearch" value="true" />
<property name="maxRows" value="1000" />
<property name="throwExceptionWhenOverLimit" value="true"/>
<property name="restClientFactory" class="org.iplass.mtp.impl.fulltextsearch.elasticsearch.DefaultRestClientFactory">
<property name="elasticsearchUrl" value="{SCHEME}://{ADDRESS}:{PORT}"/>
</property>
<property name="analysisFactory" class="org.iplass.mtp.impl.fulltextsearch.elasticsearch.analysis.DefaultAnalysisFactory">
<property name="analyzer" >
<property name="my_kuromoji" class="org.iplass.mtp.impl.fulltextsearch.elasticsearch.analysis.analyzer.KuromojiAnalyzerFactory">
<property name="mode" value="Search"/>
<property name="method" value="Nfc"/>
</property>
</property>
</property>
<!--
testEntityの場合、my_kuromojiを利用し、それ以外の場合はkuromojiを利用する設定例
-->
<property name="defaultAnalyzerProperty" >
<property name="analyzer" value="kuromoji"/>
</property>
<property name="analyzerPropertyPerEntity" >
<property name="testEntity" class="org.iplass.mtp.impl.fulltextsearch.elasticsearch.mappings.AnalyzerProperty">
<property name="analyzer" value="my_kuromoji"/>
</property>
</property>
<property name="redundantTimeMinutes" value="10"/>
<property name="defaultOperator" value="AND" />
<property name="binaryParseLimitLength" value="100000"/>
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryPDFParser" />
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryOOXMLParser" />
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryOfficeParser">
<property name="continuableExceptions" value="org.apache.poi.poifs.filesystem.NotOLE2FileException" />
</property>
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryHtmlParser" />
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryTextParser" />
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryXMLParser" />
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryNameTypeParser" />
</service>
設定例(非推奨)(OpenSearchFulltextSearchService利用の場合)
<!-- iplass-ee-aws プロジェクトのクラスを利用したOpenSearch構成。本構成は非推奨です。 -->
<service>
<interface>org.iplass.mtp.impl.fulltextsearch.FulltextSearchService</interface>
<class>org.iplass.mtp.impl.aws.fulltextsearch.opensearch.OpenSearchFulltextSearchService</class>
<property name="useFulltextSearch" value="true" />
<property name="maxRows" value="1000" />
<property name="throwExceptionWhenOverLimit" value="true"/>
<property name="restClientFactory" class="org.iplass.mtp.impl.aws.fulltextsearch.opensearch.DefaultRestClientFactory" >
<property name="openSearchUrl" value="{SCHEME}://{ADDRESS}:{PORT}"/>
<property name="httpRequestInterceptorFactory" class="org.iplass.mtp.impl.aws.AWSRequestSigningApacheInterceptorFactory" >
<property name="serviceName" value="es"/>
<property name="region" value="ap-northeast-1"/>
</property>
</property>
<property name="analysisFactory" class="org.iplass.mtp.impl.aws.fulltextsearch.opensearch.analysis.DefaultAnalysisFactory">
<property name="analyzer" >
<property name="my_kuromoji" class="org.iplass.mtp.impl.aws.fulltextsearch.opensearch.analysis.analyzer.KuromojiAnalyzerFactory">
<property name="mode" value="Search"/>
<property name="method" value="Nfc"/>
</property>
</property>
</property>
<!--
testEntityの場合、my_kuromojiを利用し、それ以外の場合はkuromojiを利用する設定例
-->
<property name="defaultAnalyzerProperty" >
<property name="analyzer" value="kuromoji"/>
</property>
<property name="analyzerPropertyPerEntity" >
<property name="testEntity" class="org.iplass.mtp.impl.aws.fulltextsearch.opensearch.mappings.AnalyzerProperty">
<property name="analyzer" value="my_kuromoji"/>
</property>
</property>
<property name="defaultOperator" value="AND" />
<property name="binaryParseLimitLength" value="100000"/>
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryPDFParser" />
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryOOXMLParser" />
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryOfficeParser">
<property name="continuableExceptions" value="org.apache.poi.poifs.filesystem.NotOLE2FileException" />
</property>
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryHtmlParser" />
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryTextParser" />
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryXMLParser" />
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryNameTypeParser" />
</service>
設定例(OpenSearchFulltextSearchService利用の場合)
<!-- iplass-ee-opensearch プロジェクトのクラスを利用したOpenSearch構成。 -->
<service>
<interface>org.iplass.mtp.impl.fulltextsearch.FulltextSearchService</interface>
<class>org.iplass.mtp.impl.fulltextsearch.opensearch.OpenSearchFulltextSearchService</class>
<property name="useFulltextSearch" value="true" />
<property name="maxRows" value="1000" />
<property name="throwExceptionWhenOverLimit" value="true"/>
<property name="restClientFactory" class="org.iplass.mtp.impl.fulltextsearch.opensearch.DefaultRestClientFactory" >
<property name="openSearchUrl" value="{SCHEME}://{ADDRESS}:{PORT}"/>
<property name="userName" value="openSearchUserName" />
<property name="password" value="openSearchPassword" />
</property>
<!-- AWS 認証を利用する場合は、restClientFactory をコメントアウトし、以下の設定を有効化する。AWSSetting の設定も必要。 -->
<!--
<property name="transportFactory" class="org.iplass.mtp.impl.fulltextsearch.opensearch.awsv2.AwsSdk2OpenSearchTransportFactory">
<property name="host" value="{ADDRESS}:{PORT}" />
<property name="serviceName" value="es or aoss" />
<property name="region" value="ap-northeast-1" />
</property>
-->
<property name="analysisFactory" class="org.iplass.mtp.impl.fulltextsearch.opensearch.analysis.DefaultAnalysisFactory">
<property name="analyzer" >
<property name="my_kuromoji" class="org.iplass.mtp.impl.fulltextsearch.opensearch.analysis.analyzer.KuromojiAnalyzerFactory">
<property name="mode" value="Search"/>
<property name="method" value="Nfc"/>
</property>
</property>
</property>
<!--
testEntityの場合、my_kuromojiを利用し、それ以外の場合はkuromojiを利用する設定例
-->
<property name="defaultAnalyzerProperty" >
<property name="analyzer" value="kuromoji"/>
</property>
<property name="analyzerPropertyPerEntity" >
<property name="testEntity" class="org.iplass.mtp.impl.fulltextsearch.opensearch.mappings.AnalyzerProperty">
<property name="analyzer" value="my_kuromoji"/>
</property>
</property>
<property name="defaultOperator" value="AND" />
<property name="binaryParseLimitLength" value="100000"/>
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryPDFParser" />
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryOOXMLParser" />
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryOfficeParser">
<property name="continuableExceptions" value="org.apache.poi.poifs.filesystem.NotOLE2FileException" />
</property>
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryHtmlParser" />
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryTextParser" />
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryXMLParser" />
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryNameTypeParser" />
</service>
設定例
<!--
■全文検索で利用するService
useFulltextSearch: 全文検索を利用する場合は、trueへ変更してください。
maxRows: 全文検索の結果件数の上限を設定してください。
throwExceptionWhenOverLimit: maxRows以上の件数がヒットした場合の挙動を切り替えます。
true -> 件数以上取得できたことのメッセージを表示し、検索結果は出さない。
false -> 件数以上取得できたことのメッセージを表示し、検索結果も出す。
indexWriterRAMBufferSizeMB: Index作成時のメモリのキャッシュサイズを設定します。
redundantTimeMinutes: 「前回Index更新日時-redundantTimeMinutes」より後のデータに対してIndexの処理を行います。
□ lunece利用の場合
directory:
Index情報(検索対象値)の保存先を指定してください。
analyzer:
利用するanalyzerを指定してください。
□ Elasticsearch利用の場合
elasticsearchUrl:
用意したElasticsearchサーバのURLを指定してください。
defaultAnalyzerProperty:
利用するanalyzerを指定してください。
□ (非推奨)OpenSearch利用の場合
openSearchUrl:
用意したOpenSearchサーバのURLを指定してください。
defaultAnalyzerProperty:
利用するanalyzerを指定してください。
□ OpenSearch利用の場合
restClientFactory に DefaultRestClientFactory を設定する場合
openSearchUrl:
用意したOpenSearchサーバのURLを指定してください。
transportFactory に AwsSdk2OpenSearchTransportFactory を設定する場合
host:
用意したOpenSearchサーバの scheme を除いたホスト名を指定してください。
defaultAnalyzerProperty:
利用するanalyzerを指定してください。
■use to fulltext search service
useFulltextSearch: If use fulltext search, change to true.
maxRows: Setting max rows of fulltext search result.
throwExceptionWhenOverLimit: If maxRows or more of the search result is hit, set one of the operations.
true -> Display a message that was able to get maxRows or more, and not display search result.
false -> Display a message that was able to get maxRows or more, and display search result.
indexWriterRAMBufferSizeMB: Setting the memory cache size when creating a index.
redundantTimeMinutes: do the processing of the Index for the data after the "previous Index update date -redundantTimeMinutes".
□ use to lunece
directory:
Set save directory of the index information.
analyzer:
Set the analyzer to use
□ use to Elasticsearch
elasticsearchUrl:
Set url of Elasticsearch server.
defaultAnalyzerProperty:
Set the analyzer to use
□ (Deprecated) use to OpenSearch
openSearchUrl:
Set url of OpenSearch server.
defaultAnalyzerProperty:
Set the analyzer to use
□ use to OpenSearch
When setting DefaultRestClientFactory to restClientFactory
openSearchUrl:
Set url of OpenSearch server.
When setting AwsSdk2OpenSearchTransportFactory to transportFactory
host:
Set url of OpenSearch server without scheme.
defaultAnalyzerProperty:
Set the analyzer to use
-->
<service>
<interface>org.iplass.mtp.impl.fulltextsearch.FulltextSearchService</interface>
<property name="useFulltextSearch" value="false" />
<property name="maxRows" value="1000" />
<property name="highlightPreTag" value="<b style="background:aquamarine">" />
<property name="highlightPostTag" value="</b>" />
<property name="throwExceptionWhenOverLimit" value="true"/>
<!-- BinaryReferenceのParse可能な最大文字数 -->
<property name="binaryParseLimitLength" value="100000"/>
<!--
BinaryReference用Parser設定。
org.iplass.mtp.impl.fulltextsearch.parser.BinaryReferenceParser
を実装したParserを設定可能。
BinaryReferenceのタイプに対して対応されているParserを上から順にチェックする。
-->
<!-- PDF用Parser。TikaのPDFParserを利用して解析する -->
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryPDFParser" />
<!-- OfficeDocument(OOXML形式)用Parser。TikaのOOXMLParserを利用して解析する -->
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryOOXMLParser" />
<!-- OfficeDocument(2003以前の形式)用Parser。TikaのOfficeParserを利用して解析する -->
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryOfficeParser">
<!-- RTFファイルの解析例外は処理継続する -->
<property name="continuableExceptions" value="org.apache.poi.poifs.filesystem.NotOLE2FileException" />
</property>
<!-- HTML用Parser。TikaのHtmlParserを利用して解析する -->
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryHtmlParser" />
<!-- PlainText用Parser。TikaのTXTParserを利用して解析する -->
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryTextParser" />
<!-- XML用Parser。TikaのXMLParserを利用して解析する -->
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryXMLParser" />
<!-- TikaのAutoDetectParserを利用して全てのタイプを対象に解析する。
ただし解析に必要となる依存ライブラリが存在しない場合はスキップされる -->
<!--
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryAutoDetectParser" />
-->
<!-- 全てのバイナリファイルを対象に、nameとtypeのみ返す -->
<property name="binaryParser" class="org.iplass.mtp.impl.fulltextsearch.parser.BinaryNameTypeParser" />
<!-- lucene利用 -->
<class>org.iplass.mtp.impl.fulltextsearch.lucene.LuceneFulltextSearchService</class>
<property name="directory" value="D:\tmp\lucene" />
<property name="defaultOperator" value="AND" />
<property name="analyzer" value="org.apache.lucene.analysis.ja.JapaneseAnalyzer" />
<!-- JapaneseAnalyzerを初期化する設定。
<property name="analyzerSetting" class="org.iplass.mtp.impl.fulltextsearch.JapaneseAnalyzerSetting">
<property name="userDictionary" value="/lucene/userdict.txt" />
<property name="mode" value="SEARCH" />
<property name="stopwords" value="/lucene/stopwords.txt" />
<property name="stoptags" value="/lucene/stoptags.txt" />
</property>
-->
<property name="indexWriterRAMBufferSizeMB" value="64.0"/>
<property name="redundantTimeMinutes" value="10"/>
<property name="indexWriterCommitLimit" value="-1"/>
<!-- Elasticsearch利用 -->
<!--
<class>org.iplass.mtp.impl.fulltextsearch.elasticsearch.ElasticsearchFulltextSearchService</class>
<property name="useFulltextSearch" value="true" />
<property name="restClientFactory" class="org.iplass.mtp.impl.fulltextsearch.elasticsearch.DefaultRestClientFactory">
<property name="elasticsearchUrl" value="{SCHEME}://{ADDRESS}:{PORT}"/>
</property>
<property name="analysisFactory" class="org.iplass.mtp.impl.fulltextsearch.elasticsearch.analysis.DefaultAnalysisFactory">
<property name="analyzer" >
<property name="my_kuromoji" class="org.iplass.mtp.impl.fulltextsearch.elasticsearch.analysis.analyzer.KuromojiAnalyzerFactory">
<property name="mode" value="Search"/>
<property name="method" value="Nfc"/>
</property>
</property>
</property>
<property name="defaultAnalyzerProperty" >
<property name="analyzer" value="kuromoji"/>
</property>
<property name="analyzerPropertyPerEntity" >
<property name="testEntity" class="org.iplass.mtp.impl.fulltextsearch.elasticsearch.mappings.AnalyzerProperty">
<property name="analyzer" value="my_kuromoji"/>
</property>
</property>
-->
<!-- (非推奨)OpenSearch利用 -->
<!--
<class>org.iplass.mtp.impl.aws.fulltextsearch.opensearch.OpenSearchFulltextSearchService</class>
<property name="restClientFactory" class="org.iplass.mtp.impl.aws.fulltextsearch.opensearch.DefaultRestClientFactory" >
<property name="openSearchUrl" value="{SCHEME}://{ADDRESS}:{PORT}"/>
<property name="httpRequestInterceptorFactory" class="org.iplass.mtp.impl.aws.AWSRequestSigningApacheInterceptorFactory" >
<property name="serviceName" value="es"/>
<property name="region" value="ap-northeast-1"/>
</property>
</property>
<property name="analysisFactory" class="org.iplass.mtp.impl.aws.fulltextsearch.opensearch.analysis.DefaultAnalysisFactory">
<property name="analyzer" >
<property name="my_kuromoji" class="org.iplass.mtp.impl.aws.fulltextsearch.opensearch.analysis.analyzer.KuromojiAnalyzerFactory">
<property name="mode" value="Search"/>
<property name="method" value="Nfc"/>
</property>
</property>
</property>
<property name="defaultAnalyzerProperty" >
<property name="analyzer" value="kuromoji"/>
</property>
<property name="analyzerPropertyPerEntity" >
<property name="testEntity" class="org.iplass.mtp.impl.aws.fulltextsearch.opensearch.mappings.AnalyzerProperty">
<property name="analyzer" value="my_kuromoji"/>
</property>
</property>
-->
<!-- OpenSearch利用 -->
<!--
<class>org.iplass.mtp.impl.fulltextsearch.opensearch.OpenSearchFulltextSearchService</class>
<depend>org.iplass.mtp.impl.awsv2.AWSSetting</depend>
<property name="transportFactory" class="org.iplass.mtp.impl.fulltextsearch.opensearch.awsv2.AwsSdk2OpenSearchTransportFactory">
<property name="host" value="{ADDRESS}:{PORT}" />
<property name="serviceName" value="es or aoss" />
<property name="region" value="ap-northeast-1" />
</property>
<property name="analysisFactory" class="org.iplass.mtp.impl.fulltextsearch.opensearch.analysis.DefaultAnalysisFactory">
<property name="analyzer" >
<property name="my_kuromoji" class="org.iplass.mtp.impl.fulltextsearch.opensearch.analysis.analyzer.KuromojiAnalyzerFactory">
<property name="mode" value="Search"/>
<property name="method" value="Nfc"/>
</property>
</property>
</property>
<property name="defaultAnalyzerProperty" >
<property name="analyzer" value="kuromoji"/>
</property>
<property name="analyzerPropertyPerEntity" >
<property name="testEntity" class="org.iplass.mtp.impl.fulltextsearch.opensearch.mappings.AnalyzerProperty">
<property name="analyzer" value="my_kuromoji"/>
</property>
</property>
-->
</service>
3.30. GemConfigService
汎用画面全般の動作の設定を行うサービスです。
インタフェース名
org.iplass.gem.GemConfigService
実装クラス名
org.iplass.gem.GemConfigService
org.iplass.gem.EnterpriseGemConfigService
GemConfigServiceの設定
コミュニティエディション用の動作を設定します。
設定項目
| 項目 | 値 | 説明 | ||
|---|---|---|---|---|
mustLoadWithReference |
boolean |
更新時に参照先データが含まれる場合、参照プロパティデータをLoadするか。falseの場合、保持するプロパティ値は
|
||
loadWithReference |
boolean |
mustLoadWithReference がtrueの場合に、参照データをロードする際、参照先の参照プロパティも合わせてロードするか。デフォルト値はfalseです。 |
||
formatNumberWithComma |
boolean |
詳細画面で数値プロパティの値をカンマでフォーマットするか。デフォルト値はtrueです。 |
||
fileSupportType |
FileSupportType |
ダウンロードやアップロードで利用するファイル形式。 |
||
csvDownloadMaxCount |
int |
ダウンロード件数の上限値。デフォルト値は65535です。 |
||
uploadableCsvDownloadLoadSize |
int |
Upload形式のダウンロード時に多重度複数の参照を含むEntityの一括ロード件数。デフォルト値は1です。 |
||
csvDownloadCharacterCode |
String、複数指定可 |
CSVダウンロードの文字コード。デフォルト値は |
||
csvDownloadQuoteAll |
boolean |
CSVダウンロードで常時ダブルクォートの出力を行うか。デフォルト値はtrueです。 |
||
csvDownloadReferenceVersion |
boolean |
ダウンロードで参照項目のバージョンを出力するか。デフォルト値はtrueです。 |
||
uploadableCsvDownloadWithMappedByReference |
boolean |
Upload形式のダウンロード時に被参照プロパティも出力するか。デフォルト値はfalseです。 |
||
csvUploadCommitCount |
int |
アップロードのコミット単位。デフォルト値は1000です。 |
||
csvUploadAsync |
boolean |
アップロードを非同期で行うか。デフォルト値はfalseです。 |
||
csvUploadStatusPollingInterval |
int |
アップロードのステータスポーリングのインターバル。デフォルト値は10000(10秒)です。 |
||
searchResultCacheLimit |
int |
ダウンロード時User名取得のための検索内部キャッシュサイズ。デフォルト値は300です。 |
||
confirmEditSave |
boolean |
編集画面、一括更新画面で保存時に確認ダイアログを表示するか。デフォルト値はfalseです。 BulkLayoutを利用しない一括更新の場合は無条件で確認ダイアログが表示されます。 |
||
confirmEditCancel |
boolean |
編集画面でキャンセル時に確認ダイアログを表示するか。デフォルト値はtrueです。 |
||
topViewEditCancelBackToTop |
boolean |
詳細画面から編集画面に遷移した際にキャンセル時にTopViewに戻るか。デフォルト値はfalse(詳細画面に戻る)です。
|
||
showSeachCondResetButton |
boolean |
検索画面でリセットボタンを表示するか。デフォルト値はtrueです。 |
||
searchResultDispRowCount |
int |
検索画面で表示する検索結果の件数。デフォルト値は10です。 個別のEntityView定義の検索結果の設定で上書きすることが可能です。 |
||
maxOfDetailSearchItems |
int |
詳細検索画面における検索項目の上限数。デフォルト値は100です。 |
||
searchInterval |
int |
検索処理のインターバル。0を設定した場合は無期限となります。デフォルト値は60000(1分)です。 |
||
csvDownloadInterval |
int |
ダウンロードのインターバル。0を設定した場合は無期限となります。デフォルト値は60000(1分)です。 |
||
csvDownloadWithFooter |
boolean |
汎用検索のCSVダウンロードでフッターを出力するか。デフォルト値はfalseです。 |
||
csvDownloadFooter |
String |
汎用検索のCSVダウンロードのフッター文言。 |
||
useDisplayLabelItemInSearch |
boolean |
検索処理で表示ラベルとして扱うプロパティを検索条件に利用するか。trueの場合、ReferencePropertyEditorで「表示ラベルとして扱うプロパティ」として設定された項目を通常検索のテキスト入力による条件指定時、または詳細検索の条件項目として設定します。
|
||
useDisplayLabelItemInCsvDownload |
boolean |
ダウンロード処理で表示ラベルとして扱うプロパティを出力するか。trueの場合、ReferencePropertyEditorで「表示ラベルとして扱うプロパティ」として設定された項目をファイル項目として出力します。
|
||
showPulldownPleaseSelectLabel |
boolean |
プルダウンの未選択時のラベル「選択してください」を表示するか。デフォルト値はtrueです。 |
||
binaryUploadAsync |
boolean |
binaryファイルアップロードを非同期処理で行うか。デフォルト値はtrueです。 |
||
datePickerDefaultOption |
String |
Datepickerのデフォルトオプション。デフォルト値は以下です。 |
||
recycleBinMaxCount |
int |
ゴミ箱の表示件数上限値。未指定の場合のデフォルト値は100です。-1を指定した場合は無制限となります。 |
||
deleteAllCommandBatchSize |
int |
一括削除のコミットバッチサイズ件数。未指定の場合のデフォルト値は100です。一括削除コミットタイプがDIVISIONの場合適用されます。 |
||
bulkUpdateAllCommandBatchSize |
int |
一括更新のコミットバッチサイズ件数。未指定の場合のデフォルト値は100です。一括更新コミットタイプがDIVISIONの場合適用されます。 |
||
binaryDownloadLoggingTargetProperty |
バイナリダウンロード用ログの出力対象のプロパティ。 |
|||
binaryUploadAcceptMimeTypesPattern |
String |
エンティティのバイナリプロパティでアップロード可能なファイルのMIME Typeパターンを指定します。設定値は正規表現パターンを指定します。 設定例
検証対象となる MIME Type の決定方法については、WebFrontendService uploadFileTypeDetector, FileTypeDetector を参照してください。 |
||
selectFilterSearchPageSizeDefault |
int |
参照型選択フィルターの毎回検索件数。未指定の場合のデフォルト値は40です。 |
||
richTextLibrary |
String |
StringPropertyEditorの |
||
imageColors |
ImageColorSetting、複数指定可 |
検索画面や詳細画面、メニュー等に設定するイメージカラーの設定。 |
||
skins |
Skin、複数指定可 |
スキン。 |
||
themes |
Theme、複数指定可 |
テーマ。 |
||
entityViewHelper |
検索画面や詳細画面を表示する際のヘルパークラス。 |
|||
shallowCopyLobData |
boolean |
エンティティをコピーする際にLobデータをシャッローコピーするか。デフォルト値はfalseです。 |
||
autoGenerateShowSystemProperty |
boolean |
汎用画面の自動生成処理でシステム項目を表示するか。
|
||
autoGenerateSystemProperties |
String |
汎用画面の自動生成処理の「システム情報」に表示するプロパティ。カンマ区切り。以下のプロパティのみ対象。 |
||
autoGenerateSystemPropertyDisplayPosition |
String |
汎用画面の自動生成処理の「システム情報」表示位置。 |
||
autoGenerateExcludeOidWhenCustomOid |
boolean |
汎用画面の自動生成処理の「システム情報」で、EntityのOIDプロパティをカスタマイズしている場合にOIDを表示しないか。デフォルト値は |
||
autoGenerateUseUserPropertyEditor |
boolean |
|
||
permitRolesToGem |
String、複数指定可 |
GemAuthでのGem許可ロール。
デフォルト値は |
||
permitRolesToNoView |
String、複数指定可 |
GemAuthでのEntityViewが未定義の場合の許可ロール。
デフォルト値は |
EnterpriseGemConfigServiceの設定
エンタープライズエディション用の動作を設定します。 コミュニティエディション用の設定と併せて設定してください。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
savedListFileDownloadInterval |
int |
SavedList一覧のファイルダウンロードのインターバル。0を設定した場合は無期限となります。デフォルト値は60000(1分)です。 |
savedListFileSupportType |
SavedListFileSupportType |
SavedList一覧のファイルダウンロードで利用するファイル形式。 |
entitylistingSearchInterval |
int |
EntityListingの検索処理のインターバル。0を設定した場合は無期限となります。デフォルト値は60000(1分)です。 |
entitylistingFileDownloadInterval |
int |
EntityListingのファイルダウンロードのインターバル。0を設定した場合は無期限となります。デフォルト値は60000(1分)です。 |
entityListingFileSupportType |
EntityListingFileSupportType |
EntityListingのファイルダウンロードで利用するファイル形式。 |
aggregationFileDownloadInterval |
int |
Aggregationのファイルダウンロードのインターバル。0を設定した場合は無期限となります。デフォルト値は60000(1分)です。 |
aggregationRawdataFileDownloadInterval |
int |
Aggregationのローデータファイルダウンロードのインターバル。0を設定した場合は無期限となります。デフォルト値は60000(1分)です。 |
aggregationFileSupportType |
AggregationFileSupportType |
Aggregationのファイルダウンロードで利用するファイル形式。 |
aggregationRawdataFileSupportType |
AggregationFileSupportType |
Aggregationのローデータファイルダウンロードで利用するファイル形式。 |
showBothAggregationFileDownloadButton |
boolean |
Aggregationのファイルダウンロードを集計表の上下に表示するか。デフォルト値はfalseです。 |
dividingTableSideAtCrosstabFileDownload |
boolean |
Aggregation(Crosstab)のファイルダウンロードで表側を分割して出力するか。デフォルト値はfalseです。 |
dividingTableHeadAtCrosstabFileDownload |
boolean |
Aggregation(Crosstab)のファイルダウンロードで表頭を分割して出力するか。デフォルト値はfalseです。 |
outputItemLabelCrosstabFileDownload |
boolean |
Aggregation(Crosstab)のファイルダウンロードで表頭/表側のアイテム名を表示するか。デフォルト値はfalseです。 |
entitylistingSearchLimit |
int |
EntityListingの検索Limit。デフォルト値は10です。 |
entitylistingFileDownloadWithFooter |
boolean |
EntityListingのファイルダウンロードでフッターを出力するか。デフォルト値はfalseです。 |
entitylistingFileDownloadFooter |
String |
EntityListingのファイルダウンロードのフッター文言。 |
aggregationFileDownloadWithFooter |
boolean |
集計のファイルダウンロードでフッターを出力するか。デフォルト値はfalseです。 |
aggregationFileDownloadFooter |
String |
集計のファイルダウンロードのフッター文言。 |
aggregationRawdataFileDownloadWithFooter |
boolean |
集計のローデータファイルダウンロードでフッターを出力するか。デフォルト値はfalseです。 |
aggregationRawdataFileDownloadFooter |
String |
集計のローデータのファイルダウンロードのフッター文言。 |
confirmUserTaskSubmit |
boolean |
ワークフローのタスク編集画面でタスク確認ダイアログを表示するか。デフォルト値はfalseです。 |
confirmUserTaskCancel |
boolean |
ワークフローのタスク編集画面でキャンセル確認ダイアログを表示するか。デフォルト値はfalseです。 |
showUserTaskSearchCondResetButton |
boolean |
ワークフローのタスク一覧画面でリセットボタンを表示するか。デフォルト値はtrueです。 |
showUserTaskPulldownPleaseSelectLabel |
boolean |
ワークフローのタスク一覧画面でプルダウンの未選択時のラベル「選択してください」を表示するか。デフォルト値はtrueです。 |
classはorg.iplass.gem.BinaryDownloadLoggingTargetPropertyを指定します。
バイナリダウンロード用ログの出力対象のプロパティです。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
entityName |
String |
エンティティ名。 |
propertyName |
String |
プロパティ名。 |
classはorg.iplass.gem.ImageColorSettingを指定します。
検索画面や詳細画面、メニュー等に設定するイメージカラーと、対応するCSSを設定します。 イメージカラーを追加する場合、対応するCSSを作成してください。
| 項目 | 値 | 説明 |
|---|---|---|
colorName |
String |
イメージカラー名。 |
cssSettings |
CssSetting、複数指定可 |
スキンと対応するCSSファイルのパスの設定。 |
classはorg.iplass.gem.CssSettingを指定します。
スキンと対応するCSSファイルのパスを設定します。
| 項目 | 値 | 説明 |
|---|---|---|
skinName |
String |
スキン名。 |
cssPath |
String |
CSSファイルのパス。 |
classはorg.iplass.mtp.tenant.Skinを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
displayName |
String |
表示名。 |
skinName |
String |
スキン名。 |
pageSkinName |
String |
ページ全体用のスキン名。 |
menuSkinName |
String |
メニュー用のスキン名。 |
classはorg.iplass.mtp.tenant.Themeを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
displayName |
String |
表示名。 |
themeName |
String |
テーマ名。 |
検索画面や詳細画面を表示する際のヘルパークラスを設定します。
classはorg.iplass.gem.EntityViewHelperの実装クラスを指定します。
標準で以下のEntityViewHelperを提供しています。
コミュニティエディション向けのEntityViewHeplerです。
classにorg.iplass.gem.EntityViewHelperImplを指定します。 設定可能な項目はありません。
エンタープライズエディション向けのEntityViewHelperです。
classにorg.iplass.gem.EnterpriseEntityViewHelperImplを指定します。 設定可能な項目はありません。
設定例
<service>
<interface>org.iplass.gem.GemConfigService</interface>
<class>org.iplass.gem.EnterpriseGemConfigService</class>
<!-- Entityデータのサポートファイルタイプ。CSV, EXCEL, SPECIFY -->
<property name="fileSupportType" value="CSV" />
<!-- ダウンロード件数上限値 -->
<property name="csvDownloadMaxCount" value="65535" />
<!-- CSVダウンロード文字コード -->
<!--
gem-service-config.xmlにUTF8が設定されています。
追加したい場合は以下を参考にvalueに任意の文字コードを指定し有効にして下さい。
<property name="csvDownloadCharacterCode" value="windows-31j" additional="true" />
<property name="csvDownloadCharacterCode" value="EUC-JP" additional="true" />
-->
<property name="csvDownloadCharacterCode" value="UTF-8"/>
<!-- CSVダウンロード常時ダブルクォート出力
標準ではtrueに設定されています。ダブルクォートを出力したくない場合はfalseにしてください。
(," 改行が含まれる場合は設定に関係なくダブルクォートを出力します)
-->
<property name="csvDownloadQuoteAll" value="true"/>
<!-- ダウンロード参照項目バージョン出力 -->
<property name="csvDownloadReferenceVersion" value="true"/>
<!-- アップロードコミット単位 -->
<property name="csvUploadCommitCount" value="1000"/>
<!-- ダウンロード時User名取得のための検索内部キャッシュサイズ -->
<property name="searchResultCacheLimit" value="300" />
<!-- 編集画面で保存時に確認ダイアログを表示するか
デフォルトで非表示するに設定されています。表示にしたい場合はtrueを設定してください。
-->
<property name="confirmEditSave" value="false"/>
<!-- 編集画面でキャンセル時に確認ダイアログを表示するか
デフォルトで表示するに設定されています。非表示にしたい場合はfalseを設定してください。
-->
<property name="confirmEditCancel" value="true"/>
<!-- 編集画面でキャンセル時にTopViewに戻るか
デフォルト戻らない(詳細画面に戻る)に設定されています。TopViewに戻りたい場合はtrueを設定してください。
-->
<property name="topViewEditCancelBackToTop" value="false"/>
<!-- 検索画面でリセットボタンを表示するか
デフォルトで表示するに設定されています。非表示にしたい場合はfalseを設定してください。
-->
<property name="showSeachCondResetButton" value="true"/>
<!-- 検索画面で表示する検索結果の件数 -->
<property name="searchResultDispRowCount" value="10"/>
<!-- 詳細検索画面における検索項目の上限数 -->
<property name="maxOfDetailSearchItems" value="100"/>
<!-- 検索処理のインターバル、無期限(0)/指定ミリ秒(1以上) -->
<property name="searchInterval" value="60000"/>
<!-- ダウンロードのインターバル、無期限(0)/指定ミリ秒(1以上) -->
<property name="csvDownloadInterval" value="60000"/>
<!-- SavedListのサポートファイルタイプ。CSV, EXCEL, SPECIFY -->
<property name="savedListFileSupportType" value="CSV" />
<!-- EntityListingの検索処理のインターバル、無期限(0)/指定ミリ秒(1以上) -->
<property name="entitylistingSearchInterval" value="60000"/>
<!-- EntityListingのサポートファイルタイプ。CSV, EXCEL, SPECIFY -->
<property name="entityListingFileSupportType" value="CSV" />
<!-- EntityListingのファイルダウンロードのインターバル、無期限(0)/指定ミリ秒(1以上) -->
<property name="entitylistingFileDownloadInterval" value="60000"/>
<!-- Aggregationのファイルダウンロードのインターバル、無期限(0)/指定ミリ秒(1以上) -->
<property name="aggregationFileDownloadInterval" value="60000"/>
<!-- Aggregationのローデータファイルダウンロードのインターバル、無期限(0)/指定ミリ秒(1以上) -->
<property name="aggregationRawdataFileDownloadInterval" value="60000"/>
<!-- Aggregationのサポートファイルタイプ。CSV, EXCEL, SPECIFY -->
<property name="aggregationFileSupportType" value="CSV" />
<!-- Aggregationのローデータのサポートファイルタイプ。CSV, EXCEL, SPECIFY -->
<property name="aggregationRawdataFileSupportType" value="CSV" />
<!-- Aggregationのファイルダウンロードを集計表の上下に表示するか -->
<property name="showBothAggregationFileDownloadButton" value="false"/>
<!-- Aggregation(Crosstab)のファイルダウンロードで表側を分割して出力するか -->
<property name="dividingTableSideAtCrosstabFileDownload" value="false"/>
<!-- Aggregation(Crosstab)のファイルダウンロードで表頭を分割して出力するか -->
<property name="dividingTableHeadAtCrosstabFileDownload" value="false"/>
<!-- Aggregation(Crosstab)のファイルダウンロードで表頭/表側のアイテム名を表示するか -->
<property name="outputItemLabelCrosstabFileDownload" value="false"/>
<!-- 汎用検索のCSVダウンロードでフッターを出力するか -->
<property name="csvDownloadWithFooter" value="false"/>
<!-- 汎用検索のCSVダウンロードのフッター文言 -->
<property name="csvDownloadFooter" value=""/>
<!-- 検索処理で表示ラベルとして扱うプロパティを検索条件に利用するか -->
<property name="useDisplayLabelItemInSearch" value="true"/>
<!-- ダウンロード処理で表示ラベルとして扱うプロパティを出力するか -->
<property name="useDisplayLabelItemInCsvDownload" value="true"/>
<!-- EntityListingの検索Limit -->
<property name="entitylistingSearchLimit" value="10"/>
<!-- EntityListingのファイルダウンロードでフッターを出力するか -->
<property name="entitylistingFileDownloadWithFooter" value="false"/>
<!-- EntityListingのファイルダウンロードのフッター文言 -->
<property name="entitylistingFileDownloadFooter" value=""/>
<!-- 集計のファイルダウンロードでフッターを出力するか -->
<property name="aggregationFileDownloadWithFooter" value="false"/>
<!-- 集計のファイルダウンロードのフッター文言 -->
<property name="aggregationFileDownloadFooter" value=""/>
<!-- 集計のローデータファイルダウンロードでフッターを出力するか -->
<property name="aggregationRawdataFileDownloadWithFooter" value="false"/>
<!-- 集計のローデータのファイルダウンロードのフッター文言 -->
<property name="aggregationRawdataFileDownloadFooter" value=""/>
<!-- ワークフローのタスク編集画面でタスク確認ダイアログを表示するか
デフォルトで表示するに設定されています。非表示にしたい場合はfalseを設定してください。
-->
<property name="confirmUserTaskSubmit" value="false"/>
<!-- ワークフローのタスク編集画面でキャンセル確認ダイアログを表示するか
デフォルトで表示するに設定されています。非表示にしたい場合はfalseを設定してください。
-->
<property name="confirmUserTaskCancel" value="false"/>
<!-- ワークフローのタスク検索画面でリセットボタンを表示するか -->
<property name="showUserTaskSearchCondResetButton" value="true"/>
<!-- ワークフローのタスク検索画面でプルダウンの「選択してください」を表示するか -->
<property name="showUserTaskPulldownPleaseSelectLabel" value="true" />
<!-- アップロード非同期設定 -->
<!-- true(非同期)を設定する場合は、 RdbQueueServiceのuseQueueプロパティをtrueに設定してください。 -->
<property name="csvUploadAsync" value="false"/>
<!-- アップロードステータスポーリングのインターバル、指定ミリ秒 -->
<property name="csvUploadStatusPollingInterval" value="10000"/>
<!-- プルダウンの「選択してください」を表示するか -->
<property name="showPulldownPleaseSelectLabel" value="true" />
<!-- binaryファイルアップロード非同期設定 -->
<property name="binaryUploadAsync" value="true" />
<property name="binaryDownloadLoggingTargetProperty">
<property name="entityName" value="mtp.maintenance.Package" />
<property name="propertyName" value="archive" />
</property>
<property name="binaryDownloadLoggingTargetProperty">
<property name="entityName" value="mtp.listing.SavedList" />
<property name="propertyName" value="listedData" />
</property>
<!-- バイナリファイルアップロード受け入れ可能な MIME Type パターン。正規表現を指定する。 -->
<!-- 設定例
<property name="binaryUploadAcceptMimeTypesPattern" value="^(image/.*|application/pdf|text/csv)$" />
-->
<!-- 汎用画面、メニュー用のイメージカラー設定 -->
<property name="imageColors">
<property name="colorName" value="blue" />
<property name="cssSettings">
<property name="skinName" value="flat" />
<property name="cssPath" value="/styles/gem/skin/flat/imagecolor/blue.css" />
</property>
<property name="cssSettings">
<property name="skinName" value="horizontal" />
<property name="cssPath" value="/styles/gem/skin/horizontal/imagecolor/blue.css" />
</property>
<property name="cssSettings">
<property name="skinName" value="vertical" />
<property name="cssPath" value="/styles/gem/skin/vertical/imagecolor/blue.css" />
</property>
</property>
<property name="imageColors">
<property name="colorName" value="green" />
<property name="cssSettings">
<property name="skinName" value="flat" />
<property name="cssPath" value="/styles/gem/skin/flat/imagecolor/green.css" />
</property>
<property name="cssSettings">
<property name="skinName" value="horizontal" />
<property name="cssPath" value="/styles/gem/skin/horizontal/imagecolor/green.css" />
</property>
<property name="cssSettings">
<property name="skinName" value="vertical" />
<property name="cssPath" value="/styles/gem/skin/vertical/imagecolor/green.css" />
</property>
</property>
<property name="imageColors">
<property name="colorName" value="red" />
<property name="cssSettings">
<property name="skinName" value="flat" />
<property name="cssPath" value="/styles/gem/skin/flat/imagecolor/red.css" />
</property>
<property name="cssSettings">
<property name="skinName" value="horizontal" />
<property name="cssPath" value="/styles/gem/skin/horizontal/imagecolor/red.css" />
</property>
<property name="cssSettings">
<property name="skinName" value="vertical" />
<property name="cssPath" value="/styles/gem/skin/vertical/imagecolor/red.css" />
</property>
</property>
<property name="imageColors">
<property name="colorName" value="yellow" />
<property name="cssSettings">
<property name="skinName" value="flat" />
<property name="cssPath" value="/styles/gem/skin/flat/imagecolor/yellow.css" />
</property>
<property name="cssSettings">
<property name="skinName" value="horizontal" />
<property name="cssPath" value="/styles/gem/skin/horizontal/imagecolor/yellow.css" />
</property>
<property name="cssSettings">
<property name="skinName" value="vertical" />
<property name="cssPath" value="/styles/gem/skin/vertical/imagecolor/yellow.css" />
</property>
</property>
<!-- スキン定義 -->
<property name="skins" class="org.iplass.gem.Skin">
<property name="skinName" value="flat" />
<property name="displayName" value="フラット" />
<property name="pageSkinName" value="flat" />
<property name="menuSkinName" value="sub-popup" />
</property>
<property name="skins" class="org.iplass.gem.Skin">
<property name="skinName" value="vertical" />
<property name="displayName" value="垂直メニュー" />
<property name="pageSkinName" value="vertical" />
<property name="menuSkinName" value="sub-popup" />
</property>
<property name="skins" class="org.iplass.gem.Skin">
<property name="skinName" value="horizontal" />
<property name="displayName" value="水平メニュー" />
<property name="pageSkinName" value="horizontal" />
<property name="menuSkinName" value="sub-popup" />
</property>
<property name="skins" class="org.iplass.gem.Skin">
<property name="skinName" value="horizontal_droplist" />
<property name="displayName" value="水平メニュー(ドロップリストメニュー)" />
<property name="pageSkinName" value="horizontal" />
<property name="menuSkinName" value="sub-droplist" />
</property>
<!-- テーマ定義 -->
<property name="themes" class="org.iplass.gem.Theme">
<property name="themeName" value="black" />
<property name="displayName" value="黒" />
</property>
<property name="themes" class="org.iplass.gem.Theme">
<property name="themeName" value="red" />
<property name="displayName" value="赤" />
</property>
<property name="themes" class="org.iplass.gem.Theme">
<property name="themeName" value="green" />
<property name="displayName" value="緑" />
</property>
<property name="themes" class="org.iplass.gem.Theme">
<property name="themeName" value="blue" />
<property name="displayName" value="青" />
</property>
<property name="themes" class="org.iplass.gem.Theme">
<property name="themeName" value="lightred" />
<property name="displayName" value="明赤" />
</property>
<property name="themes" class="org.iplass.gem.Theme">
<property name="themeName" value="lightgreen" />
<property name="displayName" value="明緑" />
</property>
<property name="themes" class="org.iplass.gem.Theme">
<property name="themeName" value="lightblue" />
<property name="displayName" value="明青" />
</property>
<property name="themes" class="org.iplass.gem.Theme">
<property name="themeName" value="orange" />
<property name="displayName" value="橙" />
</property>
<property name="entityViewHelper" class="org.iplass.gem.EnterpriseEntityViewHelperImpl" />
</service>
3.31. GoogleCloudSettings
GoogleCloudの設定を管理するサービスです。
インタフェース名
org.iplass.mtp.impl.googlecloud.GoogleCloudSettings
実装クラス名
org.iplass.mtp.impl.googlecloud.GoogleCloudSettings
GoogleCloudSettingsの設定
GoogleCloudSettingsを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
credentialsFactory |
GoogleCredentials を生成するクラスを設定する。 |
インターフェース org.iplass.mtp.impl.googlecloud.GoogleCredentialsFactory を実装したクラスです。
標準機能として、以下の GoogleCredentialsFactory を提供します。
-
org.iplass.mtp.impl.googlecloud.ServiceAccountSecretKeyGoogleCredentialsFactory
-
サービスアカウント用の秘密鍵ファイルを利用した認証情報を生成する機能です。
-
org.iplass.mtp.impl.googlecloud.ServiceAccountSecretKeyGoogleCredentialsFactory を指定します。
Google以外の環境を利用する場合に、サービスアカウント秘密鍵ファイルを利用して認証を行うことを想定しています。
Google環境を利用する場合は、サービスアカウント秘密鍵ファイル以外の方法を検討してください。参考: サービスアカウントキーを管理するためのベストプラクティス
ServiceAccountSecretKeyGoogleCredentialsFactory は以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
serviceAccountSecretKeyFilePath |
String、必須 |
Google Cloud 環境より取得したサービスアカウント秘密鍵ファイルへのパス(物理ファイルパスもしくは、リソースパス)を設定します。 |
scope |
String、複数指定可 |
GoogleCredentials に設定するスコープ。設定可能なスコープは Google API の OAuth 2.0 スコープ を確認してください。 |
proxyHost |
String |
proxyを利用する場合のHost名。 |
proxyPort |
int |
proxyを利用する場合のPort番号。 |
設定例
<!-- GoogleCloudSettings -->
<service>
<interface>org.iplass.mtp.impl.googlecloud.GoogleCloudSettings</interface>
<class>org.iplass.mtp.impl.googlecloud.GoogleCloudSettings</class>
<property name="credentialsFactory" class="org.iplass.mtp.impl.googlecloud.ServiceAccountSecretKeyGoogleCredentialsFactory">
<!-- サービスアカウント用の秘密鍵ファイル(json)を設定する -->
<property name="serviceAccountSecretKeyFilePath" value="/path/to/service-account.json" />
<property name="scope" value="https://www.googleapis.com/auth/datastore" />
<property name="scope" value="https://www.googleapis.com/auth/cloud-platform" />
<property name="scope" value="https://www.googleapis.com/auth/firebase.messaging" />
<!-- proxy利用する場合設定 -->
<property name="proxyHost" value="xxxxxx.dentsusoken.com" />
<property name="proxyPort" value="8080" />
</property>
</service>
3.32. InfinispanService
Infinispanを管理するサービスです。
インタフェース名
org.iplass.mtp.impl.infinispan.InfinispanService
実装クラス名
org.iplass.mtp.impl.infinispan.InfinispanService
InfinispanServiceの設定
InfinispanServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
configurationFile |
String |
Infinispanの設定ファイル (XML)を指定します。設定ファイルはクラスパスリソースパスもしくは、ファイルパスを指定します。設定ファイルの詳細については Infinispan Document の |
infinispan.serialization.allowList.class |
String、複数指定可 |
Infinispan を利用しメッセージ送受信する際、キャッシュ情報を Infinispan クラスターで管理する際に、シリアライズを許可するクラス名を設定します。クラス名は、完全修飾クラス名を設定してください。 |
infinispan.serialization.allowList.regex |
String、複数指定可 |
Infinispan を利用しメッセージ送受信する際、キャッシュ情報を Infinispan クラスターで管理する際に、シリアライズを許可するクラス名の正規表現パターンを設定します。 |
設定例
<service>
<interface>org.iplass.mtp.impl.infinispan.InfinispanService</interface>
<property name="configurationFile" value="infinispan.xml" />
<!-- メッセージ送受信データ、キャッシュ情報に独自クラスを追加する場合はクラスを設定する。class, regex ともに複数指定可能。 -->
<!--
<property name="infinispan.serialization.allowList.class" value="package.path.Class" />
<property name="infinispan.serialization.allowList.regex" value="^(\[L|)package\.path\..*(;|)$" />
-->
</service>
3.33. InterceptorService
コマンド実行時に呼び出されるインターセプターを管理するサービスです。
インタフェース名
org.iplass.mtp.impl.command.InterceptorService
実装クラス名
org.iplass.mtp.impl.command.InterceptorService
InterceptorServiceの設定
コマンドを実行する機能単位で呼び出すインターセプターを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
invoker |
CommandInterceptor、複数指定可 |
CommandInvoker経由の明示的な呼び出し時のインターセプター。 |
web |
CommandInterceptor、複数指定可 |
Actionのインターセプター。 |
webApi |
CommandInterceptor、複数指定可 |
WebApiのインターセプター。 |
soap |
CommandInterceptor、複数指定可 |
SOAP通信のインターセプター。 |
classはorg.iplass.mtp.command.interceptor.CommandInterceptorの実装クラスを指定します。
標準で、以下のCommandInterceptorを提供します。
classはorg.iplass.mtp.impl.webapi.interceptors.InitialInterceptorを指定します。
webApi、soapで利用可能です。
WebApiリクエストの初期処理として言語とプレビュー時刻を設定するインターセプターです。設定変更可能な項目はありません。
classはorg.iplass.mtp.impl.webapi.interceptors.AuthInterceptorを指定します。
webApiで利用可能です。
カスタムヘッダーによる認証処理を行うインターセプターです。設定変更可能な項目はありません。
classはorg.iplass.mtp.impl.webapi.soap.interceptors.AuthInterceptorを指定します。
soapで利用可能です。
カスタムヘッダーによる認証処理を行うインターセプターです。設定変更可能な項目はありません。
classはorg.iplass.mtp.impl.webapi.interceptors.OAuthScopeInterceptorを指定します。
webApiで利用可能です。
OAuth2.0のscopeのチェックを行います。 設定変更可能な項目はありません。
classはorg.iplass.mtp.impl.command.interceptors.LoggingInterceptorを指定します。
invoker、web、soapで利用可能です。
コマンドの実行結果をログ出力するインターセプターです。設定変更可能な項目は有りません。
classはorg.iplass.mtp.impl.webapi.interceptors.LoggingInterceptorを指定します。
webApiで利用可能です。
WebApiの実行結果をログ出力するインターセプターです。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
webapiTrace |
boolean |
WepApiのログを出力するか。デフォルト値はtrueです。 |
logParamName |
String、複数指定可 |
ログ出力するパラメータ名。 |
logAttributeName |
String、複数指定可 |
ログ出力するRequestContextのattribute名。 |
noStackTrace |
String、複数指定可 |
スタックトレースを出力しない例外クラス。 複数指定する場合はプロパティを複数設定するか例外クラスを半角コロン(:)で区切って設定します。 |
warnLogThresholdOfSqlExecutionCount |
int |
警告ログを出力するSQL実行回数の閾値。 |
warnLogThresholdOfExecutionTimeMillis |
long |
警告ログを出力する実行時間の閾値(ミリ秒)。 |
classはorg.iplass.mtp.impl.web.interceptors.TokenInterceptorを指定します。
webで利用可能です。
Actionのリクエスト時にトークンのチェックを行うインターセプターです。設定変更可能な項目はありません。
classはorg.iplass.mtp.impl.web.interceptors.TokenInterceptorを指定します。
webApiで利用可能です。
WebApiのリクエスト時にトークンのチェックを行うインターセプターです。設定変更可能な項目はありません。
webApi、soapで利用可能です。
テナント単位でメンテナンスモードの切り替えを行うインターセプターです。設定変更可能な項目はありません。
classはorg.iplass.mtp.impl.command.interceptors.TransactionInterceptorを指定します。
invoker、web、webApi、soapで利用可能です。
トランザクションの処理を行うインターセプターです。
classはorg.iplass.mtp.impl.micrometer.metrics.web.webapi.WebApiMetricsInterceptorを指定します。
WebAPIのレイテンシ・SQLの発行回数をメトリクスとして記録するインターセプターです。Micrometerモジュールを適用した場合にデフォルトで追加されます。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
provider |
WebApiMetricsTagsProvider |
org.iplass.mtp.impl.micrometer.metrics.web.webapi.WebApiMetricsTagsProviderを実装するクラス。メトリクスに付与するタグをカスタマイズしたい場合に指定可能です。デフォルトでは、org.iplass.mtp.impl.micrometer.metrics.web.webapi.DefaultWebApiMetricsTagsProviderが使用されます。 |
設定例
<service>
<interface>org.iplass.mtp.impl.command.InterceptorService</interface>
<class>org.iplass.mtp.impl.command.InterceptorService</class>
<property name="invoker" class="org.iplass.mtp.impl.command.interceptors.LoggingInterceptor" />
<property name="invoker" class="org.iplass.mtp.impl.command.interceptors.TransactionInterceptor" />
<property name="web" class="org.iplass.mtp.impl.command.interceptors.LoggingInterceptor" />
<property name="web" class="org.iplass.mtp.impl.command.interceptors.TransactionInterceptor" />
<property name="web" class="org.iplass.mtp.impl.web.interceptors.TokenInterceptor" />
<property name="webApi" class="org.iplass.mtp.impl.webapi.interceptors.InitialInterceptor" />
<property name="webApi" class="org.iplass.mtp.impl.webapi.interceptors.AuthInterceptor" />
<property name="webApi" class="org.iplass.mtp.impl.webapi.interceptors.UnavailableInterceptor" />
<property name="webApi" class="org.iplass.mtp.impl.webapi.interceptors.OAuthScopeInterceptor" />
<property name="webApi" class="org.iplass.mtp.impl.webapi.interceptors.LoggingInterceptor" />
<property name="webApi" class="org.iplass.mtp.impl.command.interceptors.TransactionInterceptor" />
<property name="webApi" class="org.iplass.mtp.impl.webapi.interceptors.TokenInterceptor" />
<property name="soap" class="org.iplass.mtp.impl.webapi.interceptors.InitialInterceptor" />
<property name="soap" class="org.iplass.mtp.impl.webapi.soap.interceptors.AuthInterceptor" />
<property name="soap" class="org.iplass.mtp.impl.webapi.interceptors.UnavailableInterceptor" />
<property name="soap" class="org.iplass.mtp.impl.command.interceptors.LoggingInterceptor" />
<property name="soap" class="org.iplass.mtp.impl.command.interceptors.TransactionInterceptor" />
</service>
3.34. IPAddressHistoryStoreService
過去にアクセスされたIPアドレスの保持を行うためのサービスです。
インタフェース名
org.iplass.mtp.impl.auth.authenticate.ipaddress.IPAddressHistoryStoreService
実装クラス名
org.iplass.mtp.impl.auth.authenticate.ipaddress.UserEntityIPAddressHistoryStoreService
UserEntityIPAddressHistoryStoreServiceの設定
過去にアクセスされたIPアドレスのUserEntityへの保持について設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
storePropertyName |
String |
IPアドレスの保持に利用するUserEntityのプロパティ名。デフォルト値は |
設定例
<service>
<interface>org.iplass.mtp.impl.auth.authenticate.ipaddress.IPAddressHistoryStoreService</interface>
<class>org.iplass.mtp.impl.auth.authenticate.ipaddress.UserEntityIPAddressHistoryStoreService</class>
<property name="storePropertyName" value="ipAddressHistory" />
</service>
3.35. I18nService
国際化の設定を管理するサービスです。
インタフェース名
org.iplass.mtp.impl.i18n.I18nService
実装クラス名
org.iplass.mtp.impl.i18n.I18nService
I18nServiceの設定
I18nServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
enableLanguages |
EnableLanguages、複数指定可 |
利用可能言語の設定。 |
defaultLocaleFormat |
標準のロケール書式の設定。 |
|
localeFormat |
LocaleFormat、複数指定可 |
各ロケールの書式の設定。 |
languageFonts |
LanguageFonts、複数指定可 |
各言語のフォントの設定。 |
genericFontFamilyList |
String、複数指定可 |
総称フォントファミリーとして解釈する文字列リスト。languageFontsの各fontsに、本設定と一致する文字列が存在した場合、そのフォントは総称フォントファミリーとして解釈する。 |
classはorg.iplass.mtp.impl.i18n.EnableLanguagesを指定します。
設定可能言語です。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
languageKey |
String |
言語キー。 |
languageName |
String |
言語名。 |
otherLanguageKey |
String、複数指定可 |
その他の言語キー。 |
classはorg.iplass.mtp.impl.i18n.LocaleFormatを指定します。
ロケール書式です。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
locale |
String、複数指定可 |
ロケール。 |
serverDateFormat |
String |
サーバ上でのDate型形式。 |
serverTimeFormat |
String |
サーバ上でのTime型形式。 |
browserInputDateFormat |
String |
ブラウザ上でのDate型入力形式。 |
browserInputTimeSecFormat |
String |
ブラウザ上でのTime型入力形式(秒)。 |
browserInputTimeMinFormat |
String |
ブラウザ上でのTime型入力形式(分)。 |
browserInputTimeHourFormat |
String |
ブラウザ上でのTime型入力形式(時)。 |
outputDateFormat |
String |
Entity検索結果、CSV出力結果などのDate型出力形式。 |
outputDateWeekdayFormat |
String |
Entity検索結果、CSV出力結果などのDate型出力形式(曜日付)。 |
excelDateFormat |
String |
ExcelでのDate型形式。 |
excelTimeFormat |
String |
ExcelでのTime型形式。 |
outputTimeSecFormat |
String |
Entity検索結果、CSV出力結果などのDate型出力形式(秒)。 |
outputTimeMinFormat |
String |
Entity検索結果、CSV出力結果などのDate型出力形式(分)。 |
outputTimeHourFormat |
String |
Entity検索結果、CSV出力結果などのDate型出力形式(時)。 |
lastNameIsFirst |
boolean |
苗字を先頭にするか。 |
classはorg.iplass.mtp.impl.i18n.LanguageFontsを指定します。
言語のフォントです。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
language |
String |
言語。 |
fonts |
String、複数指定可 |
フォント。 |
設定例
<service>
<interface>org.iplass.mtp.impl.i18n.I18nService</interface>
<class>org.iplass.mtp.impl.i18n.I18nService</class>
<!-- 設定可能言語 -->
<property name="enableLanguages" class="org.iplass.mtp.impl.i18n.EnableLanguages">
<property name="languageKey" value="ja" />
<property name="languageName" value="日本語" />
</property>
<property name="enableLanguages" class="org.iplass.mtp.impl.i18n.EnableLanguages">
<property name="languageKey" value="en" />
<property name="otherLanguageKey" value="en-US" />
<property name="languageName" value="English" />
</property>
<property name="enableLanguages" class="org.iplass.mtp.impl.i18n.EnableLanguages">
<property name="languageKey" value="zh-CN" />
<property name="otherLanguageKey" value="zh" />
<property name="otherLanguageKey" value="zh-SG" />
<property name="languageName" value="简体中文" />
</property>
<property name="enableLanguages" class="org.iplass.mtp.impl.i18n.EnableLanguages">
<property name="languageKey" value="zh-TW" />
<property name="otherLanguageKey" value="zh-HK" />
<property name="languageName" value="繁體中文" />
</property>
<property name="enableLanguages" class="org.iplass.mtp.impl.i18n.EnableLanguages">
<property name="languageKey" value="th" />
<property name="otherLanguageKey" value="th-TH" />
<property name="languageName" value="ภาษาไทย" />
</property>
<!-- locale format -->
<property name="defaultLocaleFormat" class="org.iplass.mtp.impl.i18n.LocaleFormat">
<property name="locale" value="ja" />
<property name="locale" value="ja_JP" />
<property name="locale" value="zh" />
<property name="locale" value="zh_CN" />
<property name="locale" value="zh_TW" />
<property name="locale" value="zh_HK" />
<!--
Formatに指定可能な書式
yyyy : full year (four digit)
MM : day of year (two digit)
dd : day of month (two digit)
MMM : month name short (ex. Jan)
MMMM : month name long (ex. January)
HH : hour (two digit)
mm : minute (two digit)
ss : second (two digit)
SSS : millisecond (three digit)
※MMM、MMMMはoutputXXXでのみ利用可能。browserInputDateFormatでは利用不可。
またロケールがen、en_XXの場合のみ正常に動作します。
※Server系のフォーマットは内部制御があるため変更しないでください。
※Time系の入力フォーマットはRange制御があるため変更しないでください。
-->
<!-- Server側でDateの入力値として受け取る形式(変更不可) -->
<property name="serverDateFormat" value="yyyyMMdd" />
<!-- Server側でTimeの入力値として受け取る形式(変更不可) -->
<property name="serverTimeFormat" value="HHmmssSSS" />
<!-- ブラウザ上でのDateの入力形式(テナントで個別指定可能) -->
<property name="browserInputDateFormat" value="yyyyMMdd" />
<!-- ブラウザ上でのTimeの入力形式(TimeはRange制御があるので変更不可) -->
<property name="browserInputTimeSecFormat" value="HH:mm:ss" />
<property name="browserInputTimeMinFormat" value="HH:mm" />
<property name="browserInputTimeHourFormat" value="HH" />
<!-- Date型の出力形式(検索結果やCSVなど。テナントで個別指定可能) -->
<property name="outputDateFormat" value="yyyy/MM/dd" />
<property name="outputDateWeekdayFormat" value="yyyy/MM/dd EEEE" />
<!-- Excelでの日付出力形式 -->
<property name="excelDateFormat" value="yyyy/M/d" />
<property name="excelTimeFormat" value="H:mm" />
<!-- Time型の出力形式(検索結果やCSVなど。現状テナントで個別指定不可) -->
<property name="outputTimeSecFormat" value="HH:mm:ss" />
<property name="outputTimeMinFormat" value="HH:mm" />
<property name="outputTimeHourFormat" value="HH" />
<property name="lastNameIsFirst" value="true" />
</property>
<property name="localeFormat" class="org.iplass.mtp.impl.i18n.LocaleFormat">
<property name="locale" value="en_US" />
<property name="locale" value="en" />
<property name="serverDateFormat" value="yyyyMMdd" />
<property name="serverTimeFormat" value="HHmmssSSS" />
<property name="browserInputDateFormat" value="MM/dd/yyyy" />
<property name="browserInputTimeSecFormat" value="HH:mm:ss" />
<property name="browserInputTimeMinFormat" value="HH:mm" />
<property name="browserInputTimeHourFormat" value="HH" />
<property name="outputDateFormat" value="MM/dd/yyyy" />
<property name="outputDateWeekdayFormat" value="EEEE, MM/dd/yyyy" />
<property name="excelDateFormat" value="M/d/yyyy" />
<property name="excelTimeFormat" value="H:mm" />
<property name="outputTimeSecFormat" value="HH:mm:ss" />
<property name="outputTimeMinFormat" value="HH:mm" />
<property name="outputTimeHourFormat" value="HH" />
<property name="lastNameIsFirst" value="false" />
</property>
<property name="localeFormat" class="org.iplass.mtp.impl.i18n.LocaleFormat">
<property name="locale" value="en_SG" />
<property name="locale" value="th" />
<property name="locale" value="th_TH" />
<property name="serverDateFormat" value="yyyyMMdd" />
<property name="serverTimeFormat" value="HHmmssSSS" />
<property name="browserInputDateFormat" value="dd/MM/yyyy" />
<property name="browserInputTimeSecFormat" value="HH:mm:ss" />
<property name="browserInputTimeMinFormat" value="HH:mm" />
<property name="browserInputTimeHourFormat" value="HH" />
<property name="outputDateFormat" value="dd/MM/yyyy" />
<property name="outputDateWeekdayFormat" value="EEEE dd/MM/yyyy" />
<property name="excelDateFormat" value="d/M/yyyy" />
<property name="excelTimeFormat" value="H:mm" />
<property name="outputTimeSecFormat" value="HH:mm:ss" />
<property name="outputTimeMinFormat" value="HH:mm" />
<property name="outputTimeHourFormat" value="HH" />
<property name="lastNameIsFirst" value="false" />
</property>
<property name="genericFontFamilyList" value="serif" />
<property name="genericFontFamilyList" value="sans-serif" />
<property name="genericFontFamilyList" value="monospace" />
<property name="genericFontFamilyList" value="cursive" />
<property name="genericFontFamilyList" value="fantasy" />
<property name="genericFontFamilyList" value="system-ui" />
<property name="genericFontFamilyList" value="ui-serif" />
<property name="genericFontFamilyList" value="ui-sans-serif" >
<property name="genericFontFamilyList" value="ui-monospace" >
<property name="genericFontFamilyList" value="ui-rounded" />
<property name="genericFontFamilyList" value="math" />
<property name="genericFontFamilyList" value="emoji" />
<property name="genericFontFamilyList" value="fangsong" />
<property name="languageFonts" class="org.iplass.mtp.impl.i18n.LanguageFonts">
<property name="language" value="ja" />
<property name="fonts" value="Meiryo" />
<property name="fonts" value="MS PGothic" />
<property name="fonts" value="Hiragino Kaku Gothic Pro" />
<property name="fonts" value="ヒラギノ角ゴ Pro W3" />
<property name="fonts" value="sans-serif" />
</property>
<property name="languageFonts" class="org.iplass.mtp.impl.i18n.LanguageFonts">
<property name="language" value="en" />
<property name="fonts" value="Segoe UI" />
<property name="fonts" value="Helvetica Neue" />
<property name="fonts" value="Arial" />
<property name="fonts" value="Helvetica" />
<property name="fonts" value="sans-serif" />
</property>
<property name="languageFonts" class="org.iplass.mtp.impl.i18n.LanguageFonts">
<property name="language" value="zh-CN" />
<property name="fonts" value="Microsoft Yahei" />
<property name="fonts" value="PingHei" />
<property name="fonts" value="sans-serif" />
</property>
<property name="languageFonts" class="org.iplass.mtp.impl.i18n.LanguageFonts">
<property name="language" value="zh-TW" />
<property name="fonts" value="Microsoft Yahei" />
<property name="fonts" value="PingHei" />
<property name="fonts" value="sans-serif" />
</property>
<property name="languageFonts" class="org.iplass.mtp.impl.i18n.LanguageFonts">
<property name="language" value="th" />
<property name="fonts" value="Leelawadee" />
<property name="fonts" value="Tahoma" />
<property name="fonts" value="sans-serif" />
</property>
</service>
3.36. ListingService
保存リストの実行を管理するサービスです。
インタフェース名
org.iplass.mtp.impl.listing.ListingService
実装クラス名
org.iplass.mtp.impl.listing.ListingService
ListingServiceの設定
ListingServiceを設定します。
設定項目
| 項目 | 値 | 説明 | ||
|---|---|---|---|---|
automaticConversionToRootFolderMode |
boolean |
3.0.15未満からの移行用。Rootフォルダを利用するモードに自動的に変換する場合にtrueを設定。
デフォルト値は
|
||
serializedClassResolver |
保存リストをデシリアライズする際のクラスのリゾルバです。復元処理をカスタマイズしたい場合に利用可能です。 |
classはorg.iplass.mtp.impl.listing.SerializedClassResolverの実装クラスを指定します。
SerializedClassResolverを実装するクラスでは、 Class<?> resolveClass(String serializedClassName) メソッドを実装し、クラス名から解決されるClassインスタンスを返却するようにします。
設定例
<service>
<interface>org.iplass.mtp.impl.listing.ListingService</interface>
<!-- 3.0.15未満からの移行用。RootFolderを利用するモードに自動的に変換する場合にtrue -->
<property name="automaticConversionToRootFolderMode" value="false"/>
</service>
3.37. LobStoreService
LOBデータの永続化を行うサービスです。
インタフェース名
org.iplass.mtp.impl.lob.LobStoreService
実装クラス名
org.iplass.mtp.impl.lob.LobStoreService
LobStoreServiceの設定
LobStoreServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
binaryStore |
バイナリデータのLobStore。 |
|
longTextStore |
LongTextのLobStore。 |
|
defaultLobStoreName |
String |
デフォルトとするLobストアの名前。デフォルト値は |
manageLobSizeOnRdb |
boolean |
LobサイズをRdb(lob_store)で管理するか。デフォルト値は |
temporaryKeepDay |
int |
テンポラリデータの保存日数。クリーナによりここで指定された日数よりも前のデータが削除されます。デフォルト値は |
invalidKeepDay |
int |
無効(非参照)データの保存日数。クリーナによりここで指定された日数よりも前のデータが削除されます。デフォルト値は |
cleanCommitLimit |
int |
クリーナの削除処理のコミット単位。デフォルト値は |
detectAbandonedStream |
boolean |
バイナリデータの入出力に利用するInputStream/OutputStreamのクローズ漏れを検知してクローズ処理を行うか否かを設定。デフォルト値は |
logAbandoned |
boolean |
detectAbandonedStreamが |
classはorg.iplass.mtp.impl.lob.lobstore.LobStoreの実装クラスを指定します。
標準で以下のLobStoreを提供します。
classはorg.iplass.mtp.impl.lob.lobstore.rdb.RdbLobStoreを指定します。
RDBに保存するLobStoreです。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
lobValidator |
Lobに対するチェック処理。 |
classはorg.iplass.mtp.impl.lob.lobstore.file.FileLobStoreを指定します。
ファイルに保存するLobStoreです。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
rootDir |
String |
保存先のルートディレクトリ。 |
overwriteFile |
boolean |
ファイルの上書きを行うか。デフォルト値はfalse(上書きしない)です。 |
lobValidator |
Lobに対するチェック処理。 |
classはorg.iplass.mtp.impl.aws.lobstore.s3.S3LobStoreを指定します。
|
AWS SDK for Java 1.x はメンテナンスモードになっており、2025年12月 にサポートを終了する予定です。 |
S3に保存するLobStoreです。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
region |
String |
S3のリージョン |
endpoint |
String |
S3のendpoint |
bucketName |
String |
S3のバケット名 |
encryption |
S3オブジェクトを暗号化する場合に指定 |
|
overwriteFile |
boolean |
既にS3オブジェクトが存在した場合に上書きを行うか否か。 |
useTransferManager |
boolean |
TransferManagerを利用するか否か。デフォルト値はfalseです。 |
transferManagerConfiguration |
TransferManagerの設定 |
|
transferManagerThreadPoolSize |
int |
TransferManagerで利用するスレッドプールのサイズ。 |
lobValidator |
Lobに対するチェック処理。 |
|
requiredTagMap |
String、Map形式 |
S3オブジェクトにおいて、必要なタグの値をチェックする場合にMap形式で指定します。keyとしてタグ名、valueとしてタグ値を設定します。 |
retryTagCheckIntervalMillis |
long |
タグチェックのリトライ間隔(ミリ秒)。 |
retryTagCheckCount |
int |
タグチェックのリトライ回数。 |
classはcom.amazonaws.services.s3.transfer.TransferManagerConfigurationです。TransferManager関連の設定が可能です。
classはorg.iplass.mtp.impl.aws.lobstore.s3.S3Encryptionの実装クラスを指定します。
標準で、以下のS3Encryptionを提供しています。
classはorg.iplass.mtp.impl.aws.lobstore.s3.SseS3Encryptionを設定します。
SSE-S3方式で暗号化します。設定変更可能な項目は有りません。
classはorg.iplass.mtp.impl.aws.lobstore.s3.SseKmsEncryptionを設定します。
SSE-KMS方式で暗号化します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
awsKmsKeyId |
String |
AWS Key Management Service (KMS)S3のKey Id |
classはorg.iplass.mtp.impl.lob.lobstore.s3.awsv2.S3LobStoreを指定します。
S3に保存するLobStoreです。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
bucketName |
String、必須 |
S3のバケット名 |
s3controller |
S3 操作を行う機能。未設定の場合のデフォルト値は、S3AsyncClientController です。 |
|
clientConfig |
S3 クライアントの設定を管理します。AWSリージョンや通信設定を設定します。S3Controller、 S3ClientFactory の初期化に利用します。 |
|
overwriteFile |
boolean |
既にS3オブジェクトが存在した場合に上書きを行うか否か。 |
keyPrefix |
String |
S3 オブジェクトキーに、プレフィックスを設定します。 オブジェクトキーが"object/key/file.dat"の場合、プレフィックス有無の結果例
オブジェクトキーの命名のガイドラインに従ってプレフィックスを設定してください。 |
lobValidator |
Lobに対するチェック処理。 |
|
requiredTagMap |
String、Map形式 |
S3オブジェクトにおいて、必要なタグの値をチェックする場合にMap形式で指定します。keyとしてタグ名、valueとしてタグ値を設定します。 |
retryTagCheckIntervalMillis |
long |
タグチェックのリトライ間隔(ミリ秒)。 |
retryTagCheckCount |
int |
タグチェックのリトライ回数。 |
class は org.iplass.mtp.impl.lob.lobstore.s3.awsv2.S3Controller の実装クラスを設定します。
標準で以下の S3Controller を提供しています。
class は org.iplass.mtp.impl.lob.lobstore.s3.awsv2.S3SyncClientController を指定します。
S3Client を利用した S3 操作機能です。AWSSetting で管理されている認証情報、クライアント設定を利用します。以下の項目が設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
s3ClientFactory |
S3 同期クライアント生成機能を指定します。未設定の場合のデフォルト値は、S3SyncClientFactory です。 |
|
requestConfigureList |
S3RequestConfigure、複数指定可 |
S3リクエスト実行時に追加の設定を行います。 |
class は org.iplass.mtp.impl.lob.lobstore.s3.awsv2.S3AsyncClientController を指定します。
S3AsyncClient を利用した S3 操作機能です。AWSSetting で管理されている認証情報、クライアント設定を利用します。以下の項目が設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
s3ClientFactory |
S3 非同期クライアント生成機能を指定します。未設定の場合のデフォルト値は、S3AsyncClientFactory です。 |
|
requestConfigureList |
S3RequestConfigure、複数指定可 |
S3リクエスト実行時に追加の設定を行います。 |
class は org.iplass.mtp.impl.lob.lobstore.s3.awsv2.S3ClientFactory の実装クラスを設定します。
標準で以下の S3ClientFactory を提供しています。
-
同期クライアントを生成するクラス
-
非同期クライアントを生成するクラス
|
S3 オブジェクトパートの最大サイズは 5GB です。透過的なマルチパートをサポートしていないクライアントの最大オブジェクトサイズとなります。 S3 Client の選定については、AWS SDK for Java 2.x の S3 クライアント を参考にしてください。 |
class は org.iplass.mtp.impl.lob.lobstore.s3.awsv2.S3SyncClientFactory を指定します。
透過的なマルチパート操作はサポートしていません。
同期クライアントの S3Client を生成します。設定項目はありません。
class は org.iplass.mtp.impl.lob.lobstore.s3.awsv2.S3AsyncClientFactory を指定します。
透過的なマルチパート操作は設定によって有効にすることができます。
非同期クライアントの S3AsyncClient を生成します。以下の項目が設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
multipartEnabled |
Boolean |
true が設定された場合、マルチパートを有効にします。未設定の場合のデフォルト値は、false です。 |
class は org.iplass.mtp.impl.lob.lobstore.s3.awsv2.S3AsyncCrtClientFactory を指定します。
透過的なマルチパート操作をサポートしています。
非同期クライアントの S3AsyncClient を生成します。本機能で生成されるクライアントは AWS CRT ベースの S3 クライアントです。設定項目はありません。
S3操作のパフォーマンスを重視する場合は、CRT ベースのクライアントの利用を推奨します。
CRT ベースのクライアントは native ライブラリを利用しています。その為、システムが利用するプラットフォーム上で動作することを確認してください。
機能を利用する際には、ライブラリ software.amazon.awssdk.crt:aws-crt の追加が必要です。
詳細は AWS CRTベースの S3 クライアントを使用するための依存関係を追加する を参照してください。
class は org.iplass.mtp.impl.lob.lobstore.s3.awsv2.S3RequestConfigure の実装クラスを設定します。
GetObjectRequest, PutObjectRequest, DeleteObjectRequest, HeadObjectRequest, GetObjectTaggingRequest に追加の設定を加えたい場合に指定します。
標準で以下の S3RequestConfigure を提供します。
class は org.iplass.mtp.impl.lob.lobstore.s3.awsv2.S3PutRequestEncryptionSseKmsConfigure を設定します。
S3 PutObjectRequest を実行時に SSE-KMS 暗号化を設定します。以下の項目を設定します。
| 項目 | 値 | 説明 |
|---|---|---|
awsKmsKeyId |
String |
KMS キー ID を設定します。設定することで指定したキーを利用した暗号化が設定されます。 |
class は org.iplass.mtp.impl.lob.lobstore.s3.awsv2.S3PutRequestEncryptionSseS3Configure を設定します。
S3 PutObjectRequest を実行時に SSE-S3 暗号化を設定します。設定項目はありません。
class は org.iplass.mtp.impl.lob.lobstore.s3.awsv2.S3RequestMetricPublisherConfigure を設定します。
S3 リクエスト実行時に Micrometer によるメトリクス収集の設定を追加します。
|
CRT ベースの S3Client (S3AsyncCrtClientFactory) を利用している場合は、Micrometer によるメトリクス収集は利用できません。 |
classはorg.iplass.mtp.impl.micrometer.metrics.aws.lobstore.s3.MetricsS3LobStoreを指定します。
Micrometerによるメトリクス収集機能を追加したS3LobStoreです。 S3LobStoreと同じ項目を設定可能です。
|
AWS SDK for Java 1.x はメンテナンスモードになっており、2025年12月 にサポートを終了する予定です。 |
classはorg.iplass.mtp.impl.lob.lobstore.multi.AddableMultiLobStoreを指定します。
複数のLobStoreを合わせて単一のLobStoreと設定することが可能なLobStoreです。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
lobStore |
LobStore、複数指定可 |
LobStoreの設定。 |
lobValidator |
Lobに対するチェック処理。 |
classにorg.iplass.mtp.impl.lob.lobstore.LobValidatorの実装クラスを設定します。
標準で、以下のLobValidatorを提供しています。
classはorg.iplass.mtp.impl.lob.lobstore.LogLobValidatorを設定します。
単純にログを出力のみを行います。設定変更可能な項目は有りません。
classはorg.iplass.mtp.impl.lob.lobstore.ProcessLobValidatorを設定します。
外部プロセスを起動します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
command |
String、複数指定可 |
外部プロセスとパラメータを指定します。 |
checksumAlgorithm |
String |
checksumのアルゴリズムを指定します。 Adler-32/CRC-32/MD5/SHA-1/SHA-256のいずれかを指定してください。 |
設定例
<service>
<interface>org.iplass.mtp.impl.lob.LobStoreService</interface>
<property name="lobDao" class="org.iplass.mtp.impl.lob.EncryptLobDao" />
<property name="defaultLobStoreName" value="defaultStore" />
<property name="defaultStore" class="org.iplass.mtp.impl.lob.lobstore.rdb.RdbLobStore">
</property>
<!--
<property name="binaryStore" class="org.iplass.mtp.impl.lob.lobstore.file.FileLobStore">
<property name="rootDir" value="D:\tmp\fileLobStore" />
<property name="overwriteFile" value="false" />
</property>
<property name="longTextStore" class="org.iplass.mtp.impl.lob.lobstore.rdb.RdbLobStore">
</property>
-->
<!--
複数のLobStoreを合わせて単一のLobStoreと設定することが可能。
新規追加は先頭に定義されているlobStoreに対して行われる。
参照はすべてのlobStoreにから検索する。
削除もすべてのlobStoreに対して実行される。
-->
<!--
<property name="binaryStore" class="org.iplass.mtp.impl.lob.lobstore.multi.AddableMultiLobStore">
<property name="lobStore" class="org.iplass.mtp.impl.lob.lobstore.file.FileLobStore">
<property name="rootDir" value="D:\tmp\fls2" />
</property>
<property name="lobStore" class="org.iplass.mtp.impl.lob.lobstore.file.FileLobStore">
<property name="rootDir" value="D:\tmp\fls1" />
</property>
<property name="lobStore" class="org.iplass.mtp.impl.lob.lobstore.rdb.RdbLobStore" />
</property>
-->
<!--
LobサイズをRdb(lob_store)で管理するかを指定する。
ver1.5.2でサイズ管理制御のためにlob_storeテーブルのレイアウトを変更。
既存システムでlob_storeテーブルが変更できない場合は、falseを指定することで回避可能。 -->
<property name="manageLobSizeOnRdb" value="false" />
</service>
3.38. LoggingService
ログ全般に関する設定を行うサービスです。
インタフェース名
org.iplass.mtp.impl.logging.LoggingService
実装クラス名
org.iplass.mtp.impl.logging.logback.LogbackLoggingService
LoggingServiceの設定
ログ出力に関する設定項目の設定をします。
当サービスの機能により、テナント毎にログ出力の条件を動的に切り替えることが可能となります。
この機能を有効化するためには合わせてLogbackの設定(logback.xml)にて、 org.iplass.mtp.impl.logging.logback.LogConditionTurboFilter を有効化する必要があります。
当該機能が有効化された場合、AdminConsole等を介してログ出力条件を動的に切り替えることが可能となります。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
maxAgeSecondsOfLogCondition |
long |
ログ出力条件の有効期限に設定可能な最大の生存期間(秒)。 デフォルト値は-1(無期限)です。 |
設定例
<service>
<interface>org.iplass.mtp.impl.logging.LoggingService</interface>
<class>org.iplass.mtp.impl.logging.logback.LogbackLoggingService</class>
<property name="maxAgeSecondsOfLogCondition" value="86400" />
</service>
3.39. MailService
メールテンプレートの定義(メタデータ)の管理と、メール送信を行うためのサービスです。
インタフェース名
org.iplass.mtp.impl.mail.MailService
実装クラス名
org.iplass.mtp.impl.mail.MailServiceImpl
org.iplass.mtp.impl.aws.AWSMailService
org.iplass.mtp.impl.mail.ses.awsv2.SesMailService
org.iplass.mtp.impl.sendgrid.SendGridMailServiceImpl
org.iplass.mtp.impl.sendgridv3.SendGridV3MailService
MailServiceImplの設定
標準のメール送信(JavaMail)を利用する場合、MailServiceImplを設定します。
JavaMailで定義される標準のプロパティ、各プロバイダ実装のプロパティ、およびiPLAssで拡張したプロパティを設定可能です。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
mail.smtp.host |
String、必須 |
SMTPサーバのホスト名。 |
mail.smtp.port |
int |
SMTPサーバのポート番号。デフォルト値は25です。 |
mail.smtp.connectiontimeout |
int |
SMTPコネクションを確立する際のタイムアウト(ミリ秒)。 デフォルト値は60000(1分)です。 |
mail.smtp.timeout |
int |
SMTP通信時のタイムアウト(ミリ秒)。 デフォルト値は60000(1分)です。 |
mail.pop3.connectiontimeout |
int |
POP3コネクションを確立する際のタイムアウト(ミリ秒)。 デフォルト値は60000(1分)です。 |
mail.pop3.timeout |
int |
POP3通信時のタイムアウト(ミリ秒)。 デフォルト値は60000(1分)です。 |
mail.* |
- |
その他JavaMailで定義される標準のプロパティ、各プロバイダ実装のプロパティを設定可能です。
|
mail.smtp.popbeforesmtp |
boolean |
POP before SMTPにより認証する場合trueを設定します。デフォルト値はfalseです。 |
mail.pop3.auth.id |
String |
POP before SMTP認証する際のユーザーのIDです。 |
mail.pop3.auth.password |
String |
POP before SMTP認証する際のユーザーのパスワードです。 |
mail.smtp.auth.id |
String |
SMTP認証する際のユーザーIDです。 |
mail.smtp.auth.password |
String |
SMTP認証する際のパスワードです。 |
mail.charset |
String |
メールのデフォルトのcharsetです。 |
mail.encoding |
String |
メールのデフォルトのencodingです。 |
mail.customHeaderMap |
String、Map形式 |
メールヘッダーにセットする値をMap形式で指定します。Map形式で指定する場合は、ネストした |
debug |
boolean |
デバッグを有効にした場合、標準出力にトレースを出力します。 |
listener |
SendMailListener、複数指定可 |
メール送信時のListener。 |
retryIntervalMillis |
long |
メール送信失敗時のリトライ間隔(ミリ秒)。 |
retryCount |
int |
メール送信失敗時のリトライ回数。 |
smimeHandler |
S/MIME利用時のハンドラです。 |
classはorg.iplass.mtp.mail.SendMailListenerの実装クラスを指定します。
標準で以下のSendMailListenerを提供します。
classはorg.iplass.mtp.mail.listeners.LoggingSendMailListenerを指定します。
送信メールのログ出力を行うSendMailListenerです。 設定変更可能な項目はありません。
classはorg.iplass.mtp.impl.micrometer.metrics.mail.MetricsSendMailListenerを指定します。
Micrometerによるメトリクス収集機能を追加したSendMailListenerです。 設定変更可能な項目はありません。
MailServiceImplを利用する場合、標準でS/MIMEによる電子署名と暗号化を行うorg.iplass.mtp.impl.mail.smime.SmimeHandlerを提供します。 以下の設定項目が可能です。
項目 |
値 |
説明 |
cmsAlgorithmName |
String |
CMS(暗号メッセージ構文)での暗号アルゴリズム名です。デフォルト値は |
signatureAlgorithmMap |
電子署名アルゴリズムのマッピング。 |
|
certStore |
S/MIMEで利用する証明書と秘密鍵を格納しているストアクラスです。 |
電子署名アルゴリズムのマッピングを設定します。 以下の項目が設定できます。
| 項目 | 値 | 説明 |
|---|---|---|
name |
String |
電子署名アルゴリズムのキー。 |
value |
String |
電子署名アルゴリズム。 |
デフォルトの設定値
name |
value |
RSA |
SHA256withRSA |
DSA |
SHA256withDSA |
EC |
SHA256withECDSA |
classはorg.iplass.mtp.impl.mail.smime.SmimeCertStoreの実装クラスを指定します。
標準でjava.security.KeyStoreベースのシンプルな実装クラスorg.iplass.mtp.impl.mail.smime.SimpleSmimeCertStoreを提供します。 KeyStoreに格納されている証明書はクライアントの証明書も含めて、信頼されたものとして扱います。 実行時には有効期間のチェックのみ行い、証明書チェーンの検証は行いません。
項目 |
値 |
説明 |
keyStoreType |
String |
KeyStoreのタイプ。デフォルト値は |
keyStoreProvider |
String |
KeyStoreのプロバイダ名。未設定の場合、最優先のProviderから順に、登録済みのセキュリティプロバイダのリストから、指定されたKeyStoreのタイプをサポートする最初のプロバイダを利用します。 |
keyStoreFilePath |
String |
署名作成および暗号化の為のエントリが格納されるKeyStoreのファイルパス。 |
keyStorePassword |
String |
KeyStoreのパスワード。 |
keyPasswordMap |
エントリに関連した秘密鍵を復元する為のパスワードマッピング。 |
|
keyStoreReloadIntervalMinutes |
String |
KeyStoreのリロード間隔(分)。デフォルト値は |
エントリに関連した鍵を復元する為のパスワードマッピングを設定します。 以下の項目が設定できます。
| 項目 | 値 | 説明 |
|---|---|---|
name |
String |
エントリの別名。(送信者または受信者のメールアドレス) |
value |
String |
エントリに関連した秘密鍵を復元する為のパスワード。 |
設定例
<service>
<interface>org.iplass.mtp.impl.mail.MailService</interface>
<class>org.iplass.mtp.impl.mail.MailServiceImpl</class>
<!-- SMTP設定 -->
<!-- SMTPサーバホスト -->
<property name="mail.smtp.host" value="XXXXXXXX"/>
<!-- SMTPサーバポート 通常:25 / サブミッションポート:587 / SSL:465 -->
<property name="mail.smtp.port" value="25"/>
<!-- タイムアウト設定 -->
<property name="mail.smtp.connectiontimeout" value="60000"/>
<property name="mail.smtp.timeout" value="60000"/>
<!--
mail.smtp.hostプロパティはmail.hostプロパティに優先して認識されるため、2つの値が同一ならば、
mail.smtp.hostプロパティを設定するだけでもメール送信は可能です。
しかし、mail.hostプロパティは内部的にMessage-ID ヘッダを生成するのに利用されます。
mail.hostプロパティを明示的に指定していない場合、Message-IDヘッダが正しく生成できない可能性があります。
-->
<property name="mail.host" value="XXXXXXXX"/>
<!-- デフォルトCharset -->
<property name="mail.charset" value="utf-8"/>
<property name="mail.encoding" value="base64"/>
<!-- カスタムヘッダー -->
<property name="mail.customHeaderMap">
<property name="headerName1" value="headerValue1"/>
<property name="headerName2" value="headerValue2"/>
<property name="headerName3" value="headerValue3"/>
</property>
<!-- S/MIME設定 -->
<!-- S/MIMEによる署名および暗号化を利用します。 -->
<property name="smimeHandler" class="org.iplass.mtp.impl.mail.smime.SmimeHandler">
<property name="cmsAlgorithmName" value="AES128_CBC" />
<property name="signatureAlgorithmMap">
<property name="RSA" value="SHA256withRSA" />
<property name="DSA" value="SHA256withDSA" />
<property name="EC" value="SHA256withECDSA" />
</property>
<property name="certStore" class="org.iplass.mtp.impl.mail.smime.SimpleSmimeCertStore" >
<property name="keyStoreType" value="yourOwnKeyStoreType" />
<property name="keyStoreProvider" value="yourOwnKeyStoreProvider" />
<property name="keyStoreFilePath" value="yourOwnKeyStoreFilePath" />
<property name="keyStorePassword" value="yourOwnKeyStorePassword" />
<property name="keyPasswordMap">
<property name="test1@contract.dentsusoken.com" value="yourOwnKeyPassword1" />
<property name="test2@contract.dentsusoken.com" value="yourOwnKeyPassword2" />
</property>
<property name="keyStoreReloadIntervalMinutes" value="60" />
</property>
</property>
<!-- ■ for develop only (additional="true) ■ -->
<!-- 送信メールをデバッグ出力する場合、以下を有効にしてください。 -->
<!--
<property name="listener" class="org.iplass.mtp.mail.listeners.LoggingSendMailListener" additional="true"/>
-->
</service>
(非推奨)AWSMailServiceの設定
Amazon SESを利用する場合、AWSMailServiceを設定します。
AWSMailServiceを利用する場合、AWSSettingにてAWSの認証設定が行われている必要があります。ただし、注意点としてAWSSettingのclientConfigurationは適用できません。
|
AWS SDK for Java 1.x はメンテナンスモードになっており、2025年12月 にサポートを終了する予定です。 |
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
mail.charset |
String |
メールのデフォルトのcharsetです。 |
mail.encoding |
String |
メールのデフォルトのencodingです。 |
mail.aws.host |
String |
SESのendpointを指定可能です。 |
debug |
boolean |
デバッグを有効にした場合、標準出力にトレースを出力します。 |
listener |
SendMailListener、複数指定可 |
メール送信時のListener。 |
retryIntervalMillis |
long |
メール送信失敗時のリトライ間隔(ミリ秒)。 |
retryCount |
int |
メール送信失敗時のリトライ回数。 |
MailServiceImplのSendMailListenerと同様です。
設定例
MailServiceImplと同様です。
SesMailServiceの設定
Amazon SESを利用する場合、SesMailService を設定します。
AWSSetting で管理されている認証情報、クライアント設定を利用します。以下の項目が設定可能です。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
mail.charset |
String |
メールのデフォルトのcharsetです。 |
mail.encoding |
String |
メールのデフォルトのencodingです。 |
listener |
SendMailListener、複数指定可 |
メール送信時のListener。 |
smimeHandler |
S/MIME利用時のハンドラです。 |
|
retryIntervalMillis |
long |
メール送信失敗時のリトライ間隔(ミリ秒)。 |
retryCount |
int |
メール送信失敗時のリトライ回数。 |
clientConfig |
SES クライアントの設定を管理します。AWSリージョンや通信設定を設定します。 |
設定例
<service>
<interface>org.iplass.mtp.impl.mail.MailService</interface>
<class>org.iplass.mtp.impl.mail.ses.awsv2.SesMailService</class>
<depend>org.iplass.mtp.impl.awsv2.AWSSetting</depend>
<property name="mail.charset" value="utf-8"/>
<property name="mail.encoding" value="base64"/>
<property name="retryIntervalMillis" value="0" />
<property name="retryCount" value="0" />
<property name="clientConfig" class="org.iplass.mtp.impl.awsv2.AWSClientConfig">
<property name="region" value="[setYourSesRegion]" />
</property>
</service>
SendGridMailServiceImplの設定
| SendGridMailServiceImplは将来削除される予定です。SendGridV3MailServiceを利用することを推奨します。 |
SendGrid Web API v2を利用する場合、SendGridMailServiceImplを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
checkBounce |
boolean |
送信前にバウンスリスト、ブロックリストチェックを行うか。デフォルト値はfalseです。 |
checkBouncePattern |
String |
バウンスリスト、ブロックリストチェックを行う対象とするメールアドレス。正規表現の形式で指定します。 |
httpClientConfig |
HTTPクライアントの設定。 |
|
httpTransport |
WebApiへのHTTPリクエストの設定。 |
|
mailApiClient |
メールクライアントの設定。 |
|
deleteBouncePattern |
String |
SendGridのバウンス、ブロックリストにアドレスが載った際にリストから削除対象とするメールアドレス。正規表現の形式で指定します。 |
bounce |
バウンスクライアント。 |
|
block |
ブロッククライアント。 |
|
listener |
SendMailListener、複数指定可 |
メール送信時のListener。 |
retryIntervalMillis |
long |
送信失敗時のリトライ間隔(ミリ秒)。 |
retryCount |
int |
送信失敗時のリトライ回数。 |
classはorg.iplass.mtp.impl.sendgrid.apiclient.HttpTransportImplを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
apiUser |
String、必須 |
SendGridのユーザーID、もしくは |
apiKey |
String、必須 |
SendGridのパスワード、もしくはAPI Key。 |
webApiRoot |
String、必須 |
SendGridのAPIのURL。 |
classはorg.iplass.mtp.impl.sendgrid.apiclient.MailClientImplを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
charset |
String |
メールの文字コード。 |
classはorg.iplass.mtp.impl.sendgrid.apiclient.BounceClientImplを指定します。
BounceClientImplは設定変更可能な項目はありません。
classはorg.iplass.mtp.impl.sendgrid.apiclient.BlockClientImplを指定します。
BlockClientImplは設定変更可能な項目はありません。
MailServiceImplのSendMailListenerと同様です。
設定例
<service>
<interface>org.iplass.mtp.impl.mail.MailService</interface>
<class>org.iplass.mtp.impl.sendgrid.SendGridMailServiceImpl</class>
<!-- 送信前にバウンスリスト、ブロックリストチェックを行わない場合、checkBounceをfalseに設定 -->
<!--
<property name="checkBounce" value="false" />
-->
<!-- バウンスリスト、ブロックリストのチェック対象とするメールアドレス。正規表現で指定。 -->
<property name="checkBouncePattern" value=".*@ldap.dentsusoken.com|.*@contract.dentsusoken.com" />
<property name="httpClientConfig" class="org.iplass.mtp.impl.http.HttpClientConfig">
<property name="connectionTimeout" value="30000" />
<property name="soTimeout" value="30000" />
<!-- ■ for develop only ■ -->
<!--
<property name="proxyHost" value="proxyhost.dentsusoken.com" />
<property name="proxyPort" value="8080" />
-->
</property>
<property name="httpTransport" class="org.iplass.mtp.impl.sendgrid.apiclient.HttpTransportImpl">
<!-- SendGridの認証用キー -->
<property name="apiUser" value="yourOwnApiUser" />
<property name="apiKey" value="yourOwnApiKey" />
<!-- SendGridエンドポイント -->
<property name="webApiRoot" value="https://api.sendgrid.com/api" />
</property>
<property name="mailApiClient" class="org.iplass.mtp.impl.sendgrid.apiclient.MailClientImpl">
<!-- メールの文字コード -->
<property name="charset" value="UTF-8" />
</property>
<!-- SendGridのバウンス、ブロックリストにアドレスが載った際、リストから削除対象とするメールアドレス。正規表現で指定。 -->
<property name="deleteBouncePattern" value=".*@ldap.dentsusoken.com|.*@contract.dentsusoken.com" />
<property name="bounce" class="org.iplass.mtp.impl.sendgrid.apiclient.BounceClientImpl" />
<property name="block" class="org.iplass.mtp.impl.sendgrid.apiclient.BlockClientImpl" />
<!-- ■ for develop only (additional="true") ■ -->
<!--
<property name="listener" class="org.iplass.mtp.mail.listeners.LoggingSendMailListener" additional="true"/>
-->
</service>
SendGridV3MailServiceの設定
SendGrid Web API v3を利用する場合、SendGridV3MailServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
apiKey |
String、必須 |
SendGridのAPI Key。 |
charset |
String |
メールの文字コード。 |
httpClientConfig |
HTTPクライアントの設定。 |
|
listener |
SendMailListener、複数指定可 |
メール送信時のListener。 |
retryIntervalMillis |
long |
送信失敗時のリトライ間隔(ミリ秒)。 |
retryCount |
int |
送信失敗時のリトライ回数。 |
canOverwriteBodyParameter |
boolean |
SendGrid Web API v3のリクエストで、メール設定から生成される競合するボディパラメータ(例: SendGridV3MailService のプロパティ canOverwriteBodyParameter 設定による動作の変化も参照してください。 |
classはorg.iplass.mtp.impl.http.HttpClientConfigを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
connectionTimeout |
int |
HTTPコネクションを確立する際のタイムアウト(ミリ秒)。デフォルト値は30000(30秒)です。 |
soTimeout |
int |
HTTP通信時のsocket timeout (SO_TIMEOUT)(ミリ秒)。デフォルト値は30000(30秒)です。 |
poolingMaxTotal |
int |
httpコネクションのプールの最大数。デフォルト値は20です。 |
poolingDefaultMaxPerRoute |
int |
ドメイン単位のhttpコネクションの最大数。デフォルト値は2です。 |
poolingTimeToLive |
int |
プールされているhttpコネクションの生存期間(ミリ秒)。デフォルトは無制限です。 |
proxyHost |
String |
プロキシサーバのホスト。 |
proxyPort |
int |
プロキシサーバのポート番号。 |
httpClientBuilderFactory |
カスタムのHttpClientBuilderを生成したい場合に指定します。 |
classはorg.iplass.mtp.impl.http.HttpClientBuilderFactoryを実装するクラスを指定します。
標準で以下のHttpClientBuilderFactoryを提供します。
MailServiceImplのSendMailListenerと同様です。
設定例
<service>
<interface>org.iplass.mtp.impl.mail.MailService</interface>
<class>org.iplass.mtp.impl.sendgridv3.SendGridV3MailService</class>
<!-- HttpClientの設定 -->
<property name="httpClientConfig" class="org.iplass.mtp.impl.http.HttpClientConfig">
<property name="connectionTimeout" value="30000" />
<property name="soTimeout" value="30000" />
<!-- ■ for develop only ■ -->
<!--
<property name="proxyHost" value="proxyhost.dentsusoken.com" />
<property name="proxyPort" value="8080" />
-->
</property>
<!-- SendGridの認証用キー -->
<property name="apiKey" value="yourOwnApiKey" />
<!-- メールの文字コード -->
<property name="charset" value="UTF-8" />
<!-- ボディパラメータを上書き可能とする -->
<property name="canOverwriteBodyParameter" value="false" />
<!-- ■ for develop only (additional="true") ■ -->
<!--
<property name="listener" class="org.iplass.mtp.mail.listeners.LoggingSendMailListener" additional="true"/>
-->
</service>
3.40. MdcConfigService
MDC版汎用画面全般の動作の設定を行うサービスです。
インタフェース名
org.iplass.mtp.mdc.MdcConfigService
実装クラス名
org.iplass.mtp.mdc.MdcConfigService
MdcConfigServiceの設定
設定項目
| 項目 | 値 | 説明 | ||
|---|---|---|---|---|
formatNumberWithComma |
boolean |
詳細表示画面で数値プロパティの値をカンマでフォーマットするか。デフォルト値はtrueです。 |
||
searchResultType |
MdcSearchResultType |
検索結果の表示形式 |
||
searchResultDetailViewType |
MdcDetailViewTypeInSearchResult |
検索結果画面での詳細画面の表示タイプ。 |
||
searchResultDispRowCount |
int |
検索結果画面で表示する検索結果の件数。デフォルト値は10です。 |
||
searchInterval |
int |
検索処理のインターバル。0を設定した場合は無期限となります。デフォルト値は60000(1分)です。 |
||
useDisplayLabelItemInFileDownload |
boolean |
ダウンロード処理で表示ラベルとして扱うプロパティを出力するか。trueの場合、ReferencePropertyEditorで「表示ラベルとして扱うプロパティ」として設定された項目をファイル項目として出力します。
|
||
fileSupportType |
FileSupportType |
ダウンロードで利用するファイル形式。 |
||
fileSupportTypeForUpload |
FileSupportTypeForUpload |
アップロードで利用するファイル形式。 |
||
fileDownloadMaxCount |
int |
ダウンロード件数の上限値。デフォルト値は65535です。 |
||
uploadableFileDownloadLoadSize |
int |
Upload形式のダウンロード時に多重度複数の参照を含むEntityの一括ロード件数。デフォルト値は1です。 |
||
searchUserResultCacheLimitForFileDownload |
int |
ダウンロード時User名取得のための検索内部キャッシュサイズ。デフォルト値は300です。 |
||
fileDownloadReferenceVersion |
boolean |
ダウンロードで参照項目のバージョンを出力するか。デフォルト値はtrueです。 |
||
showDownloadButtonInSearchConditionDialog |
boolean |
SearchConditionDialog内でダウンロードボタンを表示するか。デフォルト値はfalseです。 |
||
csvDownloadCharacterCode |
String、複数指定可 |
CSVダウンロードの文字コード。デフォルト値は |
||
csvDownloadQuoteAll |
boolean |
CSVダウンロードで常時ダブルクォートの出力を行うか。デフォルト値はtrueです。 |
||
csvDownloadWithFooter |
boolean |
汎用検索のCSVダウンロードでフッターを出力するか。デフォルト値はfalseです。 |
||
csvDownloadFooter |
String |
汎用検索のCSVダウンロードのフッター文言。 |
||
fileUploadCommitCount |
int |
ファイルアップロードコミット単位。デフォルト値は1000です。 |
||
fileUploadAsync |
boolean |
アップロードを非同期で行うか。デフォルト値はfalseです。 |
||
fileUploadStatusPollingInterval |
int |
画面からアップロードの非同期実行結果をリクエストする際のインターバル。デフォルト値は10000(10秒)です。 |
||
recycleBinMaxCount |
int |
ゴミ箱の表示件数上限値。未指定の場合のデフォルト値は100です。-1を指定した場合は無制限となります。 |
||
deleteAllCommandBatchSize |
int |
一括削除のコミットバッチサイズ件数。未指定の場合のデフォルト値は100です。一括削除コミットタイプがDIVISIONの場合適用されます。 |
||
shallowCopyLobData |
boolean |
Lobデータをシャローコピーするか。
|
||
selectFilterSearchPageSize |
int |
参照型選択フィルターの毎回検索件数。未指定の場合のデフォルト値は40です。 |
||
displayBreakpoint |
ディスプレイブレイクポイント。各デバイスサイズの幅を設定します。 |
|||
permitRolesToMdc |
String、複数指定可 |
MdcAuthでのMdc許可ロール。
デフォルト値は |
||
permitRolesToNoView |
String、複数指定可 |
MdcAuthでのEntityViewが未定義の場合の許可ロール。
デフォルト値は |
||
binaryDownloadLoggingTargetProperty |
バイナリダウンロード用ログの出力対象のプロパティ。 |
|||
binaryUploadAcceptMimeTypesPattern |
String |
エンティティのバイナリプロパティでアップロード可能なファイルのMIME Typeパターンを指定します。設定値は正規表現パターンを指定します。 設定例
検証対象となる MIME Type の決定方法については、WebFrontendService uploadFileTypeDetector, FileTypeDetector を参照してください。 |
||
aggregationFileSupportType |
AggregationFileSupportType |
集計ファイルサポート種別。 |
||
rawDataAggregationFileSupportType |
AggregationFileSupportType |
ローデータ集計ファイルサポート種別。 |
||
aggregationFileDownloadWithFooter |
boolean |
集計ファイルダウンロードでフッターを出力するか。デフォルト値はfalseです。 |
||
aggregationFileDownloadFooter |
String |
集計ファイルダウンロードのフッター文言。 |
||
aggregationRawDataFileDownloadWithFooter |
boolean |
ローデータファイルダウンロードでフッターを出力するか。デフォルト値はfalseです。 |
||
aggregationRawDataFileDownloadFooter |
String |
ローデータファイルダウンロードのフッター文言。 |
||
dividingTableSideAtCrosstabFileDownload |
boolean |
クロス集計ファイルダウンロードで表側を分割するか。デフォルト値はfalseです。 |
||
dividingTableHeadAtCrosstabFileDownload |
boolean |
クロス集計ファイルダウンロードで表頭を分割するか。デフォルト値はfalseです。 |
||
outputItemLabelCrosstabFileDownload |
boolean |
クロス集計ファイルダウンロードでアイテム名を表示するか。デフォルト値はfalseです。 |
||
entityListingSearchLimit |
int |
EntityListingの検索結果のページ表示件数。1ページあたりに表示するデータ件数を指定します。デフォルト値は10です。 |
||
entityListingFileSupportType |
FileSupportType |
EntityListingのデフォルトのファイル形式。EntityListingメタデータの |
||
entityListingFileDownloadWithFooter |
boolean |
EntityListingのファイルダウンロードでフッターを出力するか。デフォルト値はfalseです。 |
||
entityListingFileDownloadFooter |
String |
EntityListingのファイルダウンロードのフッター文言。 |
classはorg.iplass.mtp.mdc.DisplayBreakpointを指定します。以下の項目を設定可能です。
WebAPI呼び出し時、ディスプレイブレイクポイントを特定するためのリクエストヘッダー(X-Mdc-Display-Breakpoint)を送信します。表示判定スクリプトなどで利用可能です。
| 項目 | 値 | 説明 |
|---|---|---|
mobileBreakpoint |
String |
モバイルブレイクポイント。モバイルと判断する閾値の項目名を設定します。 |
thresholds |
閾値。 |
classはorg.iplass.mtp.mdc.BreakpointThresholdsを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
xs |
int |
xsの閾値(px)。 |
sm |
int |
smの閾値(px)。 |
md |
int |
mdの閾値(px)。 |
lg |
int |
lgの閾値(px)。 |
xl |
int |
xlの閾値(px)。 |
classはorg.iplass.mtp.mdc.BinaryDownloadLoggingTargetPropertyを指定します。
バイナリダウンロード用ログの出力対象のプロパティです。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
entityName |
String |
エンティティ名。 |
propertyName |
String |
プロパティ名。 |
設定例
<service>
<interface>org.iplass.mtp.mdc.MdcConfigService</interface>
<!-- 詳細画面で数値プロパティの値をカンマでフォーマットするか -->
<property name="formatNumberWithComma" value="true" />
<!-- 検索結果の表示形式 CARD, TABLE, SWITCH -->
<property name="searchResultType" value="CARD" />
<!-- 検索結果での詳細画面の表示形式 DIALOG or TWO_PANE -->
<property name="searchResultDetailViewType" value="DIALOG" />
<!-- 検索画面で表示する検索結果の件数 -->
<property name="searchResultDispRowCount" value="10"/>
<!-- 検索処理のインターバル、無期限(0)/指定ミリ秒(1以上) -->
<property name="searchInterval" value="60000"/>
<!-- ファイルダウンロード処理で表示ラベルとして扱うプロパティを出力するか -->
<property name="useDisplayLabelItemInFileDownload" value="false"/>
<!-- Entityデータのサポートファイルタイプ。CSV, EXCEL, SPECIFY -->
<property name="fileSupportType" value="CSV" />
<!-- ファイルアップロード時のサポートファイルタイプ 。CSV, EXCEL, SPECIFY -->
<property name="fileSupportTypeForUpload" value="CSV" />
<!-- ファイルダウンロード件数上限値 -->
<property name="fileDownloadMaxCount" value="65535" />
<!-- Upload形式のCSVダウンロード時に多重度複数の参照を含む場合の一括ロード件数 -->
<property name="uploadableFileDownloadLoadSize" value="1" />
<!-- ファイルダウンロード時User名取得のための検索内部キャッシュサイズ -->
<property name="searchUserResultCacheLimitForFileDownload" value="300" />
<!-- ファイルダウンロード参照項目バージョン出力 -->
<property name="fileDownloadReferenceVersion" value="true"/>
<!-- SearchConditionDialog内でダウンロードボタンを表示するか -->
<property name="showDownloadButtonInSearchConditionDialog" value="false"/>
<!-- CSVダウンロード文字コード -->
<property name="csvDownloadCharacterCode" value="UTF-8" additional="true" />
<!-- CSVダウンロード常時ダブルクォート出力 -->
<property name="csvDownloadQuoteAll" value="true"/>
<!-- 汎用検索のCSVダウンロードでフッターを出力するか -->
<property name="csvDownloadWithFooter" value="false"/>
<!-- 汎用検索のCSVダウンロードのフッター文言 -->
<property name="csvDownloadFooter" value=""/>
<!-- ファイルアップロードコミット単位 -->
<property name="fileUploadCommitCount" value="1000"/>
<!-- ファイルアップロード非同期設定 -->
<!-- true(非同期)を設定する場合は、 RdbQueueServiceのuseQueueプロパティをtrueに設定してください。 -->
<property name="fileUploadAsync" value="false"/>
<!-- 画面からアップロードの非同期実行結果をリクエストする際のインターバル、指定ミリ秒 -->
<property name="fileUploadStatusPollingInterval" value="10000"/>
<!-- ゴミ箱の表示件数上限値 (-1は無制限) -->
<property name="recycleBinMaxCount" value="100" />
<!-- 一括削除のコミット件数 -->
<property name="deleteAllCommandBatchSize" value="100" />
<!-- 詳細画面のエンティティデータをコピーする際にLobデータをシャローコピーするか -->
<property name="shallowCopyLobData" value="false" />
<!-- 参照型選択フィルターの検索件数 -->
<property name="selectFilterSearchPageSize" value="40" />
<!-- ディスプレイ設定 -->
<property name="displayBreakpoint" class="org.iplass.mtp.mdc.DisplayBreakpoint">
<property name="mobileBreakpoint" value="md" />
<property name="thresholds" class="org.iplass.mtp.mdc.BreakpointThresholds" >
<property name="xs" value="0" />
<property name="sm" value="600" />
<property name="md" value="960" />
<property name="lg" value="1264" />
<property name="xl" value="1904" />
</property>
</property>
<!-- MdcAuth Mdc許可ロール -->
<property name="permitRolesToMdc" value="MdcUser" />
<property name="permitRolesToMdc" value="AppAdmin" />
<!-- MdcAuth EntityViewが未定義の場合の許可ロール -->
<property name="permitRolesToNoView" value="AppAdmin" />
<!-- Binaryダウンロード時のログ出力設定 -->
<property name="binaryDownloadLoggingTargetProperty">
<property name="entityName" value="mtp.maintenance.Package" />
<property name="propertyName" value="archive" />
</property>
<!-- バイナリファイルアップロード受け入れ可能な MIME Type パターン。正規表現を指定する。 -->
<!-- 設定例
<property name="binaryUploadAcceptMimeTypesPattern" value="^(image/.*|application/pdf|text/csv)$" />
-->
<!-- 集計ファイルサポート種別。CSV, EXCEL, SPECIFY -->
<property name="aggregationFileSupportType" value="CSV" />
<!-- ローデータ集計ファイルサポート種別。CSV, EXCEL, SPECIFY -->
<property name="rawDataAggregationFileSupportType" value="CSV" />
<!-- 集計ファイルダウンロードでフッターを出力するか -->
<property name="aggregationFileDownloadWithFooter" value="false"/>
<!-- 集計ファイルダウンロードのフッター文言 -->
<property name="aggregationFileDownloadFooter" value=""/>
<!-- ローデータファイルダウンロードでフッターを出力するか -->
<property name="aggregationRawDataFileDownloadWithFooter" value="false"/>
<!-- ローデータファイルダウンロードのフッター文言 -->
<property name="aggregationRawDataFileDownloadFooter" value=""/>
<!-- クロス集計ファイルダウンロードで表側を分割するか -->
<property name="dividingTableSideAtCrosstabFileDownload" value="false"/>
<!-- クロス集計ファイルダウンロードで表頭を分割するか -->
<property name="dividingTableHeadAtCrosstabFileDownload" value="false"/>
<!-- クロス集計ファイルダウンロードでアイテム名を表示するか -->
<property name="outputItemLabelCrosstabFileDownload" value="false"/>
<!-- EntityListingの検索結果のページ表示件数 -->
<property name="entityListingSearchLimit" value="10" />
<!-- EntityListingのデフォルトのファイル形式。CSV, EXCEL, SPECIFY -->
<property name="entityListingFileSupportType" value="CSV" />
<!-- EntityListingのファイルダウンロードでフッターを出力するか -->
<property name="entityListingFileDownloadWithFooter" value="false"/>
<!-- EntityListingのファイルダウンロードのフッター文言 -->
<property name="entityListingFileDownloadFooter" value="" />
</service>
3.41. MdcRelativeRangeService
MDC版の相対範囲を独自に追加するためのサービスです。
インタフェース名
org.iplass.mtp.impl.mdc.relativeRange.MdcRelativeRangeService
実装クラス名
org.iplass.mtp.impl.mdc.relativeRange.MdcRelativeRangeService
MdcRelativeRangeServiceの設定
MdcRelativeRangeServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
relativeRanges |
MdcRelativeRange、複数指定可 |
カスタム相対範囲の設定。 |
classはorg.iplass.mtp.impl.mdc.relativeRange.MdcRelativeRangeを指定します。
カスタム相対範囲です。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
relativeRangeName |
String |
カスタム相対範囲名。 |
displayLabel |
String |
表示ラベル。 |
localizedDisplayLabel |
言語毎の表示ラベルの設定。 |
|
converter |
String |
変換ロジッククラス。 |
classはorg.iplass.mtp.impl.mdc.relativeRange.MdcRelativeRangeLocalizedLabelを指定します。
言語毎の表示ラベルです。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
locale |
String |
ロケール。 |
displayLabel |
String |
表示ラベル。 |
設定例
<service>
<interface>org.iplass.mtp.impl.mdc.relativeRange.MdcRelativeRangeService</interface>
<class>org.iplass.mtp.impl.mdc.relativeRange.MdcRelativeRangeService</class>
<!-- カスタム相対範囲 -->
<property name="relativeRanges" class="org.iplass.mtp.impl.mdc.relativeRange.MdcRelativeRange">
<property name="relativeRangeName" value="firstHalfOfThisFiscalYear" />
<property name="displayLabel" value="今年度上期" />
<property name="localizedDisplayLabel" class="org.iplass.mtp.impl.mdc.relativeRange.MdcRelativeRangeLocalizedLabel">
<property name="locale" value="ja" />
<property name="displayLabel" value="今年度上期" />
</property>
<property name="localizedDisplayLabel" class="org.iplass.mtp.impl.mdc.relativeRange.MdcRelativeRangeLocalizedLabel">
<property name="locale" value="en" />
<property name="displayLabel" value="First half of this fiscal year" />
</property>
<property name="converter" class="sample.FirstHalfRelativeRangeConverter" />
</property>
<property name="relativeRanges" class="org.iplass.mtp.impl.mdc.relativeRange.MdcRelativeRange">
<property name="relativeRangeName" value="secondHalfOfThisFiscalYear" />
<property name="displayLabel" value="今年度下期" />
<property name="localizedDisplayLabel" class="org.iplass.mtp.impl.mdc.relativeRange.MdcRelativeRangeLocalizedLabel">
<property name="locale" value="ja" />
<property name="displayLabel" value="今年度下期" />
</property>
<property name="localizedDisplayLabel" class="org.iplass.mtp.impl.mdc.relativeRange.MdcRelativeRangeLocalizedLabel">
<property name="locale" value="en" />
<property name="displayLabel" value="2nd half of this fiscal year" />
</property>
<property name="converter" class="sample.SecondHalfRelativeRangeConverter" />
</property>
</service>
3.42. MdcDetailViewService
MDC版の詳細画面の設定を行うサービスです。
インタフェース名
org.iplass.mtp.impl.mdc.view.entityview.detail.MdcDetailViewService
実装クラス名
org.iplass.mtp.impl.mdc.view.entityview.detail.MdcDetailViewService
MdcDetailViewServiceの設定
MdcDetailViewServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
autoGenerateConfig |
詳細画面の画面定義の自動生成設定。 |
classはorg.iplass.mtp.mdc.view.entityview.detail.definition.AutoGenerateDetailViewConfigを指定します。
以下の項目を指定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
showSystemSection |
boolean |
自動生成時にシステムSectionを出力する。 |
systemSectionProperties |
SectionProperty、複数指定可 |
システムSectionプロパティ。 基本項目であるnameとdescriptionとバージョン管理項目(startDate、endDate)は対象外。 |
systemSectionDisplayPosition |
SectionDisplayPosition |
システムSectionの表示位置。 SectionDisplayPositionのenum値を指定。 次のいずれかを指定します。
デフォルト値は |
excludeOidWhenCustomOid |
boolean |
OIDをカスタマイズしている場合にOIDを非表示。 |
useUserPropertyEditor |
boolean |
createBy、updateBy、lockedByにUserPropertyEditorを利用。 UserPropertyEditorを利用する場合、OIDではなくUserのnameが表示されます。 |
システムプロパティ毎の表示可否に関する設定です。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
propertyName |
String |
プロパティ名 |
displayView |
boolean |
詳細画面で表示するか |
displayCreate |
boolean |
新規、コピー画面で表示するか |
displayUpdate |
boolean |
編集画面で表示するか |
設定例
<service>
<interface>org.iplass.mtp.impl.mdc.view.entityview.detail.MdcDetailViewService</interface>
<!-- Auto Generate Config -->
<property name="autoGenerateConfig" class="org.iplass.mtp.mdc.view.entityview.detail.definition.AutoGenerateDetailViewConfig">
<!-- システムSectionを出力 -->
<property name="showSystemSection" value="false" />
<!-- システムSectionに出力するプロパティ -->
<property name="systemSectionProperties" class="org.iplass.mtp.mdc.view.entityview.detail.definition.SectionProperty">
<property name="propertyName" value="oid" />
<property name="displayView" value="false" />
<property name="displayCreate" value="false" />
<property name="displayUpdate" value="false" />
</property>
<property name="systemSectionProperties" class="org.iplass.mtp.mdc.view.entityview.detail.definition.SectionProperty">
<property name="propertyName" value="state" />
<property name="displayView" value="false" />
<property name="displayCreate" value="false" />
<property name="displayUpdate" value="false" />
</property>
<property name="systemSectionProperties" class="org.iplass.mtp.mdc.view.entityview.detail.definition.SectionProperty">
<property name="propertyName" value="createDate" />
<property name="displayView" value="false" />
<property name="displayCreate" value="false" />
<property name="displayUpdate" value="false" />
</property>
<property name="systemSectionProperties" class="org.iplass.mtp.mdc.view.entityview.detail.definition.SectionProperty">
<property name="propertyName" value="createBy" />
<property name="displayView" value="false" />
<property name="displayCreate" value="false" />
<property name="displayUpdate" value="false" />
</property>
<property name="systemSectionProperties" class="org.iplass.mtp.mdc.view.entityview.detail.definition.SectionProperty">
<property name="propertyName" value="updateDate" />
<property name="displayView" value="false" />
<property name="displayCreate" value="false" />
<property name="displayUpdate" value="false" />
</property>
<property name="systemSectionProperties" class="org.iplass.mtp.mdc.view.entityview.detail.definition.SectionProperty">
<property name="propertyName" value="updateBy" />
<property name="displayView" value="false" />
<property name="displayCreate" value="false" />
<property name="displayUpdate" value="false" />
</property>
<property name="systemSectionProperties" class="org.iplass.mtp.mdc.view.entityview.detail.definition.SectionProperty">
<property name="propertyName" value="lockedBy" />
<property name="displayView" value="false" />
<property name="displayCreate" value="false" />
<property name="displayUpdate" value="false" />
</property>
<!-- システムSectionの表示位置 TOP or BOTTOM -->
<property name="systemSectionDisplayPosition" value="BOTTOM" />
<!-- OIDをカスタマイズしている場合にOIDを非表示 -->
<property name="excludeOidWhenCustomOid" value="true" />
<!-- createBy、updateBy、lockedByにUserPropertyEditorを利用 -->
<property name="useUserPropertyEditor" value="true" />
</property>
</service>
3.43. MdcSearchViewService
MDC版の検索画面の設定を行うサービスです。
インタフェース名
org.iplass.mtp.impl.mdc.view.entityview.search.MdcSearchViewService
実装クラス名
org.iplass.mtp.impl.mdc.view.entityview.search.MdcSearchViewService
MdcSearchViewServiceの設定
MdcSearchViewServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
autoGenerateConfig |
検索画面の画面定義の自動生成設定。 |
classはorg.iplass.mtp.mdc.view.entityview.search.definition.AutoGenerateSearchViewConfigを指定します。 以下の項目を指定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
showSystemProperty |
boolean |
システムプロパティを出力。 |
systemProperties |
SectionProperty, 複数指定可能 |
システムプロパティ。 基本項目であるnameとバージョン管理項目(startDate、endDate)は対象外。 |
systemPropertyDisplayPosition |
SystemPropertyDisplayPosition |
システムプロパティの表示位置。 SystemPropertyDisplayPositionのenum値を指定。 次のいずれかを指定します。
デフォルト値は |
excludeOidWhenCustomOid |
boolean |
OIDをカスタマイズしている場合にOIDを非表示。 |
useUserPropertyEditor |
boolean |
createBy、updateBy、lockedByにUserPropertyEditorを利用。 UserPropertyEditorを利用する場合、OIDではなくUserのnameが表示されます。 |
システムプロパティ毎の表示可否に関する設定です。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
propertyName |
String |
プロパティ名。 |
displayCondition |
boolean |
検索条件で表示するか。 |
displayResult |
boolean |
検索結果で表示するか。 |
設定例
<service>
<interface>org.iplass.mtp.impl.mdc.view.entityview.search.MdcSearchViewService</interface>
<!-- Auto Generate Config -->
<property name="autoGenerateConfig" class="org.iplass.mtp.mdc.view.entityview.search.definition.AutoGenerateSearchViewConfig">
<!-- システムプロパティを出力 -->
<property name="showSystemProperty" value="false" />
<!-- 出力するシステムプロパティ -->
<property name="systemProperties" class="org.iplass.mtp.mdc.view.entityview.search.definition.SectionProperty">
<property name="propertyName" value="oid" />
<property name="displayCondition" value="false" />
<property name="displayResult" value="false" />
</property>
<property name="systemProperties" class="org.iplass.mtp.mdc.view.entityview.search.definition.SectionProperty">
<property name="propertyName" value="state" />
<property name="displayCondition" value="false" />
<property name="displayResult" value="false" />
</property>
<property name="systemProperties" class="org.iplass.mtp.mdc.view.entityview.search.definition.SectionProperty">
<property name="propertyName" value="createDate" />
<property name="displayCondition" value="false" />
<property name="displayResult" value="false" />
</property>
<property name="systemProperties" class="org.iplass.mtp.mdc.view.entityview.search.definition.SectionProperty">
<property name="propertyName" value="createBy" />
<property name="displayCondition" value="false" />
<property name="displayResult" value="false" />
</property>
<property name="systemProperties" class="org.iplass.mtp.mdc.view.entityview.search.definition.SectionProperty">
<property name="propertyName" value="updateDate" />
<property name="displayCondition" value="false" />
<property name="displayResult" value="false" />
</property>
<property name="systemProperties" class="org.iplass.mtp.mdc.view.entityview.search.definition.SectionProperty">
<property name="propertyName" value="updateBy" />
<property name="displayCondition" value="false" />
<property name="displayResult" value="false" />
</property>
<property name="systemProperties" class="org.iplass.mtp.mdc.view.entityview.search.definition.SectionProperty">
<property name="propertyName" value="lockedBy" />
<property name="displayCondition" value="false" />
<property name="displayResult" value="false" />
</property>
<!-- システムプロパティの表示位置 TOP or BOTTOM -->
<property name="systemPropertyDisplayPosition" value="BOTTOM" />
<!-- OIDをカスタマイズしている場合にOIDを非表示 -->
<property name="excludeOidWhenCustomOid" value="true" />
<!-- createBy、updateBy、lockedByにUserPropertyEditorを利用 -->
<property name="useUserPropertyEditor" value="true" />
</property>
</service>
3.44. MessageService
リソースバンドルを管理するためのサービスです。
インタフェース名
org.iplass.mtp.impl.message.MessageService
実装クラス名
org.iplass.mtp.impl.message.MessageService
MessageServiceの設定
MessageServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
resourceBundle |
ResourceBundleConfig、複数指定可 |
ResourceBundleConfigの設定。 |
classはorg.iplass.mtp.impl.message.ResourceBundleConfigを指定します。
標準でorg.iplass.mtp.impl.query.QuerySyntaxRegisterを提供しています。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
baseBundleNamePattern |
String |
バンドル名のパターン。 |
formats |
String、複数指定可 |
ファイルのフォーマット。 |
fallbackToSystemLocale |
boolean |
リソースバンドルを検索する際にシステムロケールをフォールバックするか。 |
設定例
<service>
<interface>org.iplass.mtp.impl.message.MessageService</interface>
<class>org.iplass.mtp.impl.message.MessageService</class>
<property name="resourceBundle">
<property name="baseBundleNamePattern" value="^org/iplass/.*$" />
<property name="formats" value="java.class" />
<property name="formats" value="java.properties" />
<property name="fallbackToSystemLocale" value="false" />
</property>
<property name="resourceBundle">
<property name="formats" value="mtp.message" />
<property name="formats" value="java.class" />
<property name="formats" value="java.properties" />
<property name="fallbackToSystemLocale" value="false" />
</property>
</service>
3.45. MetaDataRepository
メタデータの管理を行うためのサービスです。
インタフェース名
org.iplass.mtp.impl.metadata.MetaDataRepository
実装クラス名
org.iplass.mtp.impl.metadata.MetaDataRepository
MetaDataRepositoryの設定
メタデータの管理方法を設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
resourcePath |
String、複数指定可 |
メタデータをXMLで定義したリソースファイルのパス。 |
filePath |
String、複数指定可 |
メタデータをXMLで定義したファイルのパス。 |
annotatedClass |
String、複数指定可 |
メタデータをアノテーションで定義したJavaクラス。 MetaDataSeeAlso、CommandClass、AsyncCommand、AsyncCommands、ActionMapping、ActionMappings、Template、Templates、WebApi、WebApisの各アノテーションが対象です。 |
tenantLocalStore |
テナントのローカルメタデータを管理するためのMetaDataStore。 |
|
sharedStore |
複数のテナントで共有するメタデータを管理するためのMetaDataStore。 |
各種メタデータを管理するための仕組みを提供します。
classはorg.iplass.mtp.impl.metadata.MetaDataStoreの実装クラスを指定します。
標準で以下のMetaDataStoreを提供します。
MetaDataRepositoryのannotatedClassで指定されたJavaクラスのアノテーションからメタデータを読み込みます。
JavaクラスのアノテーションがMetaDataSeeAlsoの場合、MetaDataSeeAlsoに指定されたJavaクラスのアノテーションを読み込みます。 その他のアノテーション場合、annotatableMetaDataFactoryに指定されたクラスからアノテーションに対応するメタデータを作成します。
読み込み専用で、メタデータの登録/更新/削除は出来ません。
classにorg.iplass.mtp.impl.metadata.annotation.AnnotationMetaDataStoreを指定します。
| 項目 | 値 | 説明 |
|---|---|---|
annotatableMetaDataFactory |
アノテーションを読み込むためのクラス。 |
MetaDataRepositoryのresourcePathで指定されたクラスパス内に存在するXMLファイルからメタデータを読み込みます。 同様にfilePathで指定されたXMLファイルからXMLファイル絡めたデータを読み込みます。
読み込み専用で、メタデータの登録/更新/削除は出来ません。
classにorg.iplass.mtp.impl.metadata.xmlresource.XmlResourceMetaDataStoreを指定します。 設定変更可能な項目はありません。
データベースを利用してメタデータを管理します。 MetaDataRepositoryのtenantLocalStoreでデフォルト設定になっており、各テナントで追加/編集したメタデータはデータベースで管理されます。
classにorg.iplass.mtp.impl.metadata.rdb.RdbMetaDataStoreを指定します。 設定変更可能な項目はありません。
メタデータを種類毎にMetaDataStoreを切り替えて管理します。
ブランクプロジェクトのservice-configにコメント化された状態で定義されています。 メタデータのバージョン管理をソース管理サーバで行う場合はコメント化を解除してください。 一部のメタデータを除いて、ローカルファイルとして管理できるようになります。
classにorg.iplass.mtp.impl.metadata.composite.CompositeMetaDataStoreを指定します。
| 項目 | 値 | 説明 |
|---|---|---|
defaultStoreClass |
String |
デフォルトのMetaDataStoreクラスのクラス名。 pathMappingで指定されたメタデータ以外のメタデータを管理するstoreになります。 |
pathMapping |
MetaDataStorePathMapping、複数指定可 |
defaultStoreClassとは別のMetaDataStoreで管理するメタデータ。 |
store |
MetaDataStore、複数指定可 |
defaultStoreClass及びpathMappingのstoreに指定しているクラス。 |
XMLファイルベースでメタデータを管理します。XMLファイルの修正は同一ファイルに上書きされます。
開発時にメタデータの修正差分を git 等で管理することを想定しています。
開発時のみ利用可能で、本番環境での利用は推奨されません。
相対パスを指定する場合、EclipseのTomcat起動構成の引数タブで、作業ディレクトリをプロジェクトのルートディレクトリにしてください。
${workspace_loc:mtp-blank}
classにorg.iplass.mtp.impl.metadata.xmlfile.XmlFileMetaDataStoreを指定します。
| 項目 | 値 | 説明 |
|---|---|---|
rootPath |
String |
メタデータの保存先のルートパス。 |
fileStorePath |
String |
テナントメタデータの保存先。 |
groovySourceStorePath |
String |
UtilityClassのGroovyソースファイルの保存先。 未指定の場合はfileStorePathに保存されます。 |
localTenantId |
int |
管理対象のテナントID。 |
suffix |
String |
メタデータファイルの拡張子。デフォルト値は「.xml」です。 |
XMLファイルベースでメタデータを管理します。メタデータはバージョンを付与し、世代管理を行います。
RdbMetaDataStore のファイルベース管理の完全なる代替機能です。
単一のサーバーの場合のみ本番環境で利用可能です。複数台のサーバーの場合は RdbMetaDataStore の利用を推奨します。
classにorg.iplass.mtp.impl.metadata.xmlfile.VersioningXmlFileMetaDataStoreを指定します。
| 項目 | 値 | 説明 |
|---|---|---|
fileStorePath |
String |
テナントメタデータの保存先。 |
versionFormat |
String |
メタデータファイル名に付与されるバージョンのフォーマット。
未指定の場合 |
suffix |
String |
メタデータファイルの拡張子。デフォルト値は「.xml」です。 |
古いモジュールなどで提供されていたメタデータを現在のモジュールに変換し、利用できるようにするための機構です。
classにorg.iplass.mtp.impl.metadata.typeconversion.TypeConversionMetaDataStoreを指定します。
| 項目 | 値 | 説明 |
|---|---|---|
store |
変換対象のメタデータを管理しているMetaDataStore。 |
|
converters |
TypeConverter 、複数指定可 |
メタデータの型変換を行うコンバータ。 |
アノテーションからメタデータを作成します。
classにorg.iplass.mtp.impl.metadata.annotation.AnnotatableMetaDataFactoryの実装クラスを指定します。
標準で以下のAnnotatableMetaDataFactoryを提供します。
CommandからCommandClassアノテーションを読み込みます。
classにorg.iplass.mtp.impl.command.MetaCommandClassFactoryを指定します。 設定変更可能な項目はありません。
CommandからAsyncCommandアノテーションを読み込みます。
classにorg.iplass.mtp.impl.command.async.MetaAsyncCommandFactoryを指定します。 設定変更可能な項目はありません。
CommandからAsyncCommandsアノテーションを読み込みます。
classにorg.iplass.mtp.impl.command.async.MetaAsyncCommandsFactoryを指定します。 設定変更可能な項目はありません。
CommandからActionMappingアノテーションを読み込みます。
classにorg.iplass.mtp.impl.web.actionmapping.MetaActionMappingFactoryを指定します。 設定変更可能な項目はありません。
CommandからActionMappingsアノテーションを読み込みます。
classにorg.iplass.mtp.impl.web.actionmapping.MetaActionMappingsFactoryを指定します。 設定変更可能な項目はありません。
CommandからTemplateアノテーションを読み込みます。
org.iplass.mtp.impl.web.template.MetaTemplateFactoryを指定します。 設定変更可能な項目はありません。
CommandからTemplatesアノテーションを読み込みます。
org.iplass.mtp.impl.web.template.MetaTemplatesFactoryを指定します。 設定変更可能な項目はありません。
CommandからWebApiアノテーションを読み込みます。
classにorg.iplass.mtp.impl.webapi.MetaWebApiFactoryを指定します。 設定変更可能な項目はありません。
CommandからWebApisアノテーションを読み込みます。
classにorg.iplass.mtp.impl.webapi.MetaWebApisFactoryを指定します。 設定変更可能な項目はありません。
CompositeMetaDataStoreでdefaultStoreClass以外のMetaDataStoreを利用する場合に利用します。 pathPrefixで指定したメタデータとstoreで指定したMetaDataStoreをマッピングします。
classにorg.iplass.mtp.impl.metadata.composite.MetaDataStorePathMappingを指定します。
| 項目 | 値 | 説明 |
|---|---|---|
pathPrefix |
String |
メタデータのパスのプレフィックス。 |
store |
String |
pathPrefixで指定したメタデータを管理するstoreのクラス名。 |
新旧メタデータの変換処理を実装するためのインターフェースです。
classにorg.iplass.mtp.impl.metadata.typeconversion.TypeConverterの実装クラスを指定してください。
設定例
<service>
<interface>org.iplass.mtp.impl.metadata.MetaDataRepository</interface>
<!-- ■ your app metadata xml file name (additional="true) ■ -->
<!--
<property name="resourcePath" value="/xxx-metadata.xml" additional="true" />
-->
<!-- ■ your app command list class (additional="true) ■ -->
<!--
<property name="annotatedClass" value="xxx.command.CommandList" additional="true" />
-->
<!-- ■ your tenantLocalStore ■ -->
<!--
テナントメタデータの保存先を指定します。 UtilityClassのGroovyソースファイルは別の保存先を指定できます。
相対パスを指定する場合、EclipseのTomcat起動構成で作業ディレクトリをプロジェクトのルートディレクトリにしてください。
(例: ${workspace_loc:mtp-blank})
-->
<!--
<property name="tenantLocalStore" class="org.iplass.mtp.impl.metadata.composite.CompositeMetaDataStore" >
<property name="pathMapping" class="org.iplass.mtp.impl.metadata.composite.MetaDataStorePathMapping">
<property name="pathPrefix" value="/entity/"/>
<property name="store" value="org.iplass.mtp.impl.metadata.rdb.RdbMetaDataStore"/>
</property>
<property name="pathMapping" class="org.iplass.mtp.impl.metadata.composite.MetaDataStorePathMapping">
<property name="pathPrefix" value="/staticresource/"/>
<property name="store" value="org.iplass.mtp.impl.metadata.rdb.RdbMetaDataStore"/>
</property>
<property name="store" class="org.iplass.mtp.impl.metadata.rdb.RdbMetaDataStore" />
<property name="store" class="org.iplass.mtp.impl.metadata.xmlfile.XmlFileMetaDataStore" >
<property name="fileStorePath" value="src/main/tenantLocalStore/" />
<property name="groovySourceStorePath" value="src/main/groovy/" />
<property name="localTenantId" value="XXX"/>
</property>
<property name="defaultStoreClass" value="org.iplass.mtp.impl.metadata.xmlfile.XmlFileMetaDataStore"/>
</property>
-->
<!-- WebAPI(旧メタデータ)をWebApi(新メタデータ)として利用します。 -->
<!--
<property name="tenantLocalStore" class="org.iplass.mtp.impl.metadata.typeconversion.TypeConversionMetaDataStore">
<property name="store" class="org.iplass.mtp.impl.metadata.rdb.RdbMetaDataStore" />
<property name="converters" class="org.iplass.mtp.impl.webapi.classic.metadata.MetaWebAPITypeConverter" />
<property name="converters" class="org.iplass.mtp.impl.webapi.classic.metadata.MetaEntityWebApiDefinitionTypeConverter" />
</property>
-->
</service>
3.46. MicrometerService
メトリクス収集、モニタリングシステムへの連携を行うためのサービスです。Micrometerを利用したモジュールを標準提供します。
収集可能なメトリクスの詳細は、開発者ガイドのサポートするメトリクス を参照してください。
インタフェース名
org.iplass.mtp.impl.micrometer.MicrometerService
実装クラス名
org.iplass.mtp.impl.micrometer.MicrometerService
MicrometerServiceの設定
MicrometerServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
enableEntityMetrics |
boolean |
EntityのCRUD操作のレイテンシ、処理回数をメトリクスとして記録するかを指定します。デフォルト値はtrueです。 |
entityConfig |
EntityのCRUD操作のレイテンシメトリクスに対するヒストグラム・パーセンタイルの設定です。 |
|
enableActionLatencyMetrics |
boolean |
Actionのレイテンシ、呼び出し回数をメトリクスとして記録するかを指定します。デフォルト値はtrueです。 |
actionConfig |
Actionのレイテンシのメトリクスに対するヒストグラム・パーセンタイルの設定です。 |
|
enableWebApiLatencyMetrics |
boolean |
WebAPIのレイテンシをメトリクスとして記録するかを指定します。デフォルト値はtrueです。 |
webApiConfig |
WebAPIのレイテンシのメトリクスに対するヒストグラム・パーセンタイルの設定です。 |
|
enableSqlExecutionMetrics |
boolean |
Action、WebAPIにおけるSQL発行回数をメトリクスとして記録するかを指定します。デフォルト値はtrueです。 |
sqlConfig |
SQL発行回数のメトリクスに対するヒストグラム・パーセンタイルの設定です。 |
|
enableHttpClientMetrics |
boolean |
HttpClientにおける各Httpリクエストのリクエスト時間と回数、Httpコネクションプールの統計をメトリクスとして記録するかを指定します。デフォルト値はtrueです。 |
enableCacheStoreMetrics |
boolean |
CacheStoreのサイズ、ヒット回数/ミス回数(デフォルトではQueryキャッシュ、ActionContentキャッシュのみ)をメトリクスとして記録するかを指定します。デフォルト値はtrueです。 |
enableAuthenticationMetrics |
boolean |
認証試行の成功・失敗回数をメトリクスとして記録するかを指定します。デフォルト値はtrueです。 |
enableAsyncMetrics |
boolean |
非同期処理の成功・失敗回数、処理時間をメトリクスとして記録するかを指定します。デフォルト値はtrueです。 |
enableS3Metrics |
boolean |
AWS S3のリクエスト時間と回数をメトリクスとして記録するかを指定します。デフォルト値はtrueです。 |
enableMailMetrics |
boolean |
メール送信の成功・失敗回数、処理時間をメトリクスとして記録するかを指定します。デフォルト値はtrueです。 |
enablePushMetrics |
boolean |
プッシュ送信の成功・失敗回数、処理時間をメトリクスとして記録するかを指定します。デフォルト値はtrueです。 |
enableSmsMetrics |
boolean |
SMS送信の成功・失敗回数、処理時間をメトリクスとして記録するかを指定します。デフォルト値はtrueです。 |
meterBinder |
MeterBinder、複数指定可 |
1つまたは複数のメトリクスを登録するBinderクラス。 |
commonTags |
String、Map形式 |
全てのメトリクスに共通して付与するタグ。Map形式で指定可能です。 |
actionPathResolver |
PathResolver、複数指定可 |
Actionのメトリクスに |
webApiPathResolver |
PathResolver、複数指定可 |
WebAPIのメトリクスに |
customTagActionPathResolver |
PathResolver、Map形式 |
カスタムでActionのメトリクスにタグ名とその値を解決するPathResolverクラスをMap形式で指定することができます。 |
customTagWebApiPathResolver |
PathResolver、Map形式 |
カスタムでWebAPIのメトリクスにタグ名とその値を解決するPathResolverクラスをMap形式で指定することができます。 |
customizerClass |
メトリクスの設定を独自にカスタマイズするロジックを記述したい場合に指定可能です。 |
|
meterRegistryFactory |
メトリクスを管理・保持するMeterRegistryを生成するFactoryクラス。 |
classは、org.iplass.mtp.impl.micrometer.metrics.TimerConfigを指定します。
イベントのレイテンシや頻度を記録するメトリクスに対するヒストグラム・パーセンタイルの設定です。
以下の項目を設定可能です。各項目の詳細は、Histograms and percentilesを参照してください。
| 項目 | 値 | 説明 |
|---|---|---|
publishPercentiles |
double、複数指定可 |
アプリケーション側で計算して公開するパーセンタイル値の設定。 |
publishPercentileHistogram |
boolean |
trueの場合、パーセンタイル近似値を計算するのに適したヒストグラムを公開する。minimumExpectedValueとmaximumExpectedValueで設定された範囲内のメトリクスのみを対象とする。 |
maximumExpectedValue |
double |
ヒストグラムの対象となるバケット数を制御するために利用される範囲の最大値。 |
minimumExpectedValue |
double |
ヒストグラムの対象となるバケット数を制御するために利用される範囲の最小値。 |
serviceLevelObjectives |
long、複数指定可 |
SLOで定義されたバケットで累積ヒストグラムを公開する。 |
classは、org.iplass.mtp.impl.micrometer.metrics.DistributionSummaryConfigを指定します。
イベントの分布を追跡するためのメトリクスに対するヒストグラム・パーセンタイルの設定です。
以下の項目を設定可能です。各項目の詳細は、Histograms and percentilesを参照してください。
| 項目 | 値 | 説明 |
|---|---|---|
publishPercentiles |
double、複数指定可 |
パーセンタイル値。指定したパーセンタイル値をアプリケーション側で計算して公開する。 |
publishPercentileHistogram |
boolean |
trueの場合、パーセンタイル近似値を計算するのに適したヒストグラムを公開する。minimumExpectedValueとmaximumExpectedValueで設定された範囲内のメトリクスのみを対象とする。 |
maximumExpectedValue |
double |
ヒストグラムの対象となるバケット数を制御するために利用される範囲の最大値。 |
minimumExpectedValue |
double |
ヒストグラムの対象となるバケット数を制御するために利用される範囲の最小値。 |
serviceLevelObjectives |
double、複数指定可 |
SLOで定義されたバケットで累積ヒストグラムを公開する。 |
classは、org.iplass.mtp.impl.micrometer.metrics.entity.EntityEventMetricsInterceptorを指定します。
Entity操作のレイテンシ・実行回数をメトリクスとして記録するインターセプターです。Micrometerモジュールを適用した場合にデフォルトで追加されます。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
provider |
EntityEventMetricsTagsProvider |
org.iplass.mtp.impl.micrometer.metrics.entity.EntityEventMetricsTagsProviderを実装するクラス。メトリクスに付与するタグをカスタマイズしたい場合に指定可能です。デフォルトでは、org.iplass.mtp.impl.micrometer.metrics.entity.DefaultEntityEventMetricsTagsProviderが使用されます。 |
classは、org.iplass.mtp.impl.micrometer.metrics.httpclient.MicrometerHttpClientBuilderFactoryを指定します。
対象のHttpClientにおける各Httpリクエストのリクエスト時間と回数、Httpコネクションプールの統計をメトリクスとして記録するようにカスタマイズしたHttpClientBuilderFactoryです。
Micrometerモジュールを依存関係に追加した場合に設定可能です。設定可能な項目はありません。
classは、io.micrometer.core.instrument.binder.MeterBinderの実装クラスを指定します(複数指定可能)。
デフォルトでは、Micrometerのcoreモジュールに含まれる以下のMeterBinderを指定しています。設定可能な項目はありません。
-
io.micrometer.core.instrument.binder.jvm.JvmGcMetrics
-
io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics
-
io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics
-
io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics
-
io.micrometer.core.instrument.binder.logging.LogbackMetrics
-
io.micrometer.core.instrument.binder.system.ProcessorMetrics
-
io.micrometer.core.instrument.binder.system.UptimeMetrics
-
io.micrometer.core.instrument.binder.system.FileDescriptorMetrics
また、標準で以下のMeterBinderを提供します。
classは、org.iplass.mtp.impl.micrometer.metrics.tomcat.TomcatMeterBinderを指定します。
Tomcatのスレッドやセッション、リクエスト総数などのメトリクスを登録するMeterBinderです。設定可能な項目はありません。
classは、org.iplass.mtp.impl.micrometer.metrics.jdbc.tomcatdbcp2.TomcatDbcp2MeterBinderを指定します。
Tomcat dbcp2(org.apache.tomcat.dbcp.dbcp2)のコネクションプールに関するメトリクスを登録するMeterBinderです。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
poolName |
String |
コネクションプール名。デフォルト値は"mtpPool"です。 |
classは、org.iplass.mtp.impl.micrometer.metrics.jdbc.commonsdbcp2.CommonsDbcp2MeterBinderを指定します。
Commons dbcp2(org.apache.commons.dbcp2)のコネクションプールに関するメトリクスを登録するMeterBinderです。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
poolName |
String |
コネクションプール名。デフォルト値は"mtpPool"です。 |
classは、org.iplass.mtp.impl.micrometer.metrics.jdbc.hikaricp.HikariCPMeterBinderを指定します。
HikariCPのコネクションプールに関するメトリクスを登録するMeterBinderです。設定可能な項目はありません。
classは、org.iplass.mtp.impl.micrometer.metrics.web.PathResolverの実装クラスを指定します(複数指定可能)。
ActionとWebAPIのメトリクスにURIタグとして紐づけるPathを解決するためのResolverクラスです。RequestContextからPathを構築するロジックを記述します。
actionPathResolver(webApiPathResolver)に定義される順番でPathResolver#resolveを順に呼び出し、null以外が返ってきた時点でその返却結果をURIタグに紐づけます。最後のPathResolver#resolveの呼び出し時にその返却結果がnullだった場合は、デフォルトとして、Action名(WebAPI名)のみをURIタグに紐づけます(SubPathは含まれません)。
また、カスタムでcustomTagActionPathResolver(customTagWebApiPathResolver)に定義される順番でPathResolver#resolveを順に呼び出し、null以外が返ってきた時点でその返却結果を指定されたタグに紐づけることができます。
標準で以下のPathResolverを定義しています。
classは、org.iplass.mtp.impl.micrometer.metrics.web.action.DefaultActionPathResolverを指定します。
GEM標準ActionのPathを解決するResolverクラスです。パラメータマッピングに定義名が指定されている場合、"Action名+定義名"を返却します。設定可能な項目はありません。
classは、org.iplass.mtp.impl.micrometer.metrics.web.webapi.DefaultWebApiPathResolverを指定します。
GEM標準WebAPI、Entity CRUD APIのPathを解決するResolverクラスです。設定可能な項目はありません。
-
GEM標準WebAPIについては、パラメータマッピングに定義名が指定されている場合、"WebAPI名+定義名"を返却します。
-
Entity CRUD APIについては、SubPathが存在する場合、"WebAPI名+SubPathの最初のパス"を返却します。
classは、org.iplass.mtp.impl.micrometer.metrics.web.action.ActionHierarchicalPathResolverを指定します。
GEM標準ActionのPathにおいて、階層の深さが指定されたPathを解決するResolverクラスです。階層指定する深さを指定します。
例えば、uriがgem/generic/search/view/test、depthが2の場合、値にはgem/genericが入ります。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
depth |
int |
階層指定する深さ。1以上の値を指定します。 |
classは、org.iplass.mtp.impl.micrometer.metrics.web.webapi.WebApiHierarchicalPathResolverを指定します。
GEM標準WebAPI、Entity CRUD APIのPathにおいて、階層の深さが指定されたPathを解決するResolverクラスです。階層指定する深さを指定します。
例えば、uriがgem/workflow/getUserTaskListParts、depthが2の場合、値にはgem/workflowが入ります。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
depth |
int |
階層指定する深さ。1以上の値を指定します。 |
classは、org.iplass.mtp.impl.micrometer.MeterRegistryCustomizerの独自実装クラスを指定してください。
org.iplass.mtp.impl.micrometer.MeterRegistryCustomizerの実装クラスにて、メトリクスの設定を独自にカスタマイズするロジックを記述します。
classは、org.iplass.mtp.impl.micrometer.registry.MeterRegistryFactoryの実装クラスを指定します。
標準で、以下のMeterRegistryFactoryを提供します。
classは、org.iplass.mtp.impl.micrometer.registry.elastic.ElasticMeterRegistryFactoryを指定します。
Elasticsearchに対応したio.micrometer.elastic.ElasticMeterRegistryのFactoryクラスです。このクラスを指定する場合は、 io.micrometer:micrometer-registry-elastic を実行時の依存関係に追加してください。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
configMap |
String、Map形式 |
ElasticMeterRegistryの設定パラメータです。主要な設定項目は以下の通りです。
設定可能な全ての項目の詳細は、ElasticConfigのJavaDocを参照してください。 |
httpSender |
Httpリクエストの送信方式を制御するクラスです。 |
classは、io.micrometer.core.ipc.http.HttpSenderの実装クラスを指定します。
標準では、以下のHttpSenderを提供します。指定しない場合は、HttpUrlConnectionSenderが使用されます。
classは、org.iplass.mtp.impl.micrometer.aws.AWSHttpSenderを指定します。
Amazon OpenSearch Serviceに対応したHttpSenderの実装クラスです。AWSSettingでアクセスキー、シークレットキー、AWSClient側の設定が可能です。以下の項目を設定可能です。
|
AWS SDK for Java 1.x はメンテナンスモードになっており、2025年12月 にサポートを終了する予定です。 |
| 項目 | 値 | 説明 |
|---|---|---|
serviceName |
String |
サービス名。デフォルト値は"es"です。 |
region |
String |
Amazon OpenSearch Serviceのリージョン。 |
classは、org.iplass.mtp.impl.micrometer.awsv2.AWSHttpSenderを指定します。
Amazon OpenSearch Serviceに対応したHttpSenderの実装クラスです。AWSSettingでアクセスキー、シークレットキー、デフォルトのクライアント設定が可能です。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
serviceName |
String |
サービス名。サービス名は AWS サービスクライアントに実装されています。 |
region |
String |
AWSサービスのリージョンを設定します。 |
clientConfig |
AWS クライアントの設定。AWSリージョンや通信設定を設定します。 |
|
defaultCharset |
String |
レスポンス解析時のデフォルトの文字セット。レスポンスに Content-Type が存在しない場合に利用します。デフォルト値は"UTF-8"です。 |
classは、io.micrometer.core.ipc.http.HttpUrlConnectionSenderです。
デフォルトで使用されるHttpSenderの実装クラスです。 configMap にMap形式でパラメータを指定してください。設定可能な項目は以下の通りです。
| 項目 | 値 | 説明 |
|---|---|---|
connectTimeoutMs |
String |
HTTPコネクションを確立する際のタイムアウト(ミリ秒)。デフォルト値は1000(1秒)です。 |
readTimeoutMs |
String |
レスポンス読み取り完了時間のタイムアウト(ミリ秒)。デフォルト値は10000(10秒)です。 |
proxyHost |
String |
proxyを利用する場合のHost名。 |
proxyPort |
int |
proxyを利用する場合のport。 |
classは、org.iplass.mtp.impl.micrometer.registry.jms.JmxMeterRegistryFactoryを指定します。
JMXに対応したio.micrometer.jmx.JmxMeterRegistryのFactoryクラスです。このクラスを指定する場合は、 io.micrometer:micrometer-registry-jmx を実行時の依存関係に追加してください。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
configMap |
String、Map形式 |
JmxMeterRegistryの設定パラメータです。主要な設定項目は以下の通りです。
設定可能な全ての項目の詳細は、JmxConfigのJavaDocを参照してください。 |
tagsAsPrefix |
String、複数指定可能 |
全てのメトリクスに共通して付与する接頭辞を指定します。 |
classは、org.iplass.mtp.impl.micrometer.registry.prometheus.PrometheusMeterRegistryFactoryを指定します。
Prometheusに対応したio.micrometer.prometheus.PrometheusMeterRegistryのFactoryクラスです。このクラスを指定する場合は、 io.micrometer:micrometer-registry-prometheus を実行時の依存関係に追加してください。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
configMap |
String、Map形式 |
PrometheusMeterRegistryの設定パラメータです。主要な設定項目は以下の通りです。
設定可能な全ての項目の詳細は、、PrometheusConfigのJavaDocを参照してください。 |
classは、org.iplass.mtp.impl.aws.micrometer.registry.cloudwatch.CloudWatchMeterRegistryFactoryを指定します。
Amazon CloudWatchに対応したio.micrometer.cloudwatch.CloudWatchMeterRegistryのFactoryクラスです。AWSモジュールを依存関係に追加した場合に指定可能です。このクラスを指定する場合は、 io.micrometer:micrometer-registry-cloudwatch を実行時の依存関係に追加してください。
AWSSettingでアクセスキー、シークレットキー、AWSClient側の設定が可能です。以下の項目を設定可能です。
|
AWS SDK for Java 1.x はメンテナンスモードになっており、2025年12月 にサポートを終了する予定です。 |
| 項目 | 値 | 説明 |
|---|---|---|
configMap |
String、Map形式 |
CloudWatchMeterRegistryの設定パラメータです。主要な設定項目は以下の通りです。
設定可能な全ての項目の詳細は、CloudWatchConfigのJavaDocを参照してください。 |
classは、org.iplass.mtp.impl.aws.micrometer.registry.cloudwatch.awsv2.CloudWatchMeterRegistryFactory を指定します。
Amazon CloudWatch に対応した io.micrometer.cloudwatch2.CloudWatchMeterRegistry のFactoryクラスです。AWS2 モジュールを依存関係に追加した場合に指定可能です。このクラスを指定する場合は、 io.micrometer:micrometer-registry-cloudwatch2 を実行時の依存関係に追加してください。
AWSSetting でアクセスキー、シークレットキー、デフォルトのクライアント設定が可能です。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
configMap |
String、Map形式 |
CloudWatchMeterRegistryの設定パラメータです。主要な設定項目は以下の通りです。
設定可能な全ての項目の詳細は、CloudWatchConfigのJavaDocを参照してください。 |
clientConfig |
AWS クライアントの設定。AWSリージョンや通信設定を設定します。 |
classは、org.iplass.mtp.impl.micrometer.registry.newrelic.NewRelicMeterRegistryFactoryを指定します。
New Relicに対応したcom.newrelic.telemetry.micrometer.NewRelicRegistryのFactoryクラスです。このクラスを指定する場合は、 com.newrelic.telemetry:micrometer-registry-new-relic を実行時の依存関係に追加してください。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
configMap |
String、Map形式 |
NewRelicRegistryの設定パラメータです。主要な設定項目は以下の通りです。
設定可能な全ての項目の詳細は、NewRelicRegistryConfigのJavaDocを参照してください。 |
httpSender |
Httpリクエストの送信方式を制御するクラスです。 |
classは、org.iplass.mtp.impl.micrometer.registry.logging.LoggingMeterRegistryFactoryを指定します。
ログ出力に対応したio.micrometer.core.instrument.logging.LoggingMeterRegistryのFactoryクラスです。ログ出力するため、logback.xmlにロガー名をio.micrometer.core.instrument.logging.LoggingMeterRegistry、ログレベルをINFOで指定してください。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
configMap |
String、Map形式 |
LoggingMeterRegistryの設定パラメータです。主要な設定項目は以下の通りです。
設定可能な全ての項目の詳細は、LoggingRegistryConfigのJavaDocを参照してください。 |
設定例
<service>
<interface>org.iplass.mtp.impl.micrometer.MicrometerService</interface>
<!-- ■ Custom Metrics Settings ■ -->
<!-- Entity CRUD操作のレイテンシ -->
<property name="enableEntityMetrics" value="true" />
<property name="entityConfig" class="org.iplass.mtp.impl.micrometer.metrics.TimerConfig">
<!--
<property name="publishPercentiles" value="0.5" />
<property name="publishPercentiles" value="0.9" />
<property name="publishPercentiles" value="0.99" />
-->
</property>
<!-- Actionのレイテンシ -->
<property name="enableActionLatencyMetrics" value="true" />
<property name="actionConfig" class="org.iplass.mtp.impl.micrometer.metrics.TimerConfig">
<!--
<property name="publishPercentiles" value="0.5" />
<property name="publishPercentiles" value="0.9" />
<property name="publishPercentiles" value="0.99" />
-->
</property>
<!-- WebAPIのレイテンシ -->
<property name="enableWebApiLatencyMetrics" value="true" />
<property name="webApiConfig" class="org.iplass.mtp.impl.micrometer.metrics.TimerConfig">
<!--
<property name="publishPercentiles" value="0.5" />
<property name="publishPercentiles" value="0.9" />
<property name="publishPercentiles" value="0.99" />
-->
</property>
<!-- Action、WebAPIのSQL発行回数 -->
<property name="enableSqlExecutionMetrics" value="true" />
<property name="sqlConfig" class="org.iplass.mtp.impl.micrometer.metrics.DistributionSummaryConfig">
<!--
<property name="publishPercentiles" value="0.5" />
<property name="publishPercentiles" value="0.9" />
<property name="publishPercentiles" value="0.99" />
-->
</property>
<!-- HttpClientのリクエスト発行回数、レイテンシ、ConnectionManagerメトリクス -->
<property name="enableHttpClientMetrics" value="true" />
<!-- CacheStoreのサイズ、ヒット/ミス回数 -->
<property name="enableCacheStoreMetrics" value="true" />
<!-- 認証試行の成功・失敗回数 -->
<property name="enableAuthenticationMetrics" value="true" />
<!-- 非同期処理の成功・失敗回数、処理時間 -->
<property name="enableAsyncMetrics" value="true" />
<!-- S3の処理時間とリクエスト回数 -->
<property name="enableS3Metrics" value="true" />
<!-- メールの成功・失敗回数、処理時間 -->
<property name="enableMailMetrics" value="true" />
<!-- プッシュ通知の成功・失敗回数、処理時間 -->
<property name="enablePushMetrics" value="true" />
<!-- SMSの成功・失敗回数、処理時間 -->
<property name="enableSmsMetrics" value="true" />
<!-- ■ MeterBinder Settings ■ -->
<!-- jvm -->
<property name="meterBinder" class="io.micrometer.core.instrument.binder.jvm.JvmGcMetrics" />
<property name="meterBinder" class="io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics" />
<property name="meterBinder" class="io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics" />
<property name="meterBinder" class="io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics" />
<!-- logging -->
<property name="meterBinder" class="io.micrometer.core.instrument.binder.logging.LogbackMetrics" />
<!-- system -->
<property name="meterBinder" class="io.micrometer.core.instrument.binder.system.UptimeMetrics" />
<property name="meterBinder" class="io.micrometer.core.instrument.binder.system.ProcessorMetrics" />
<property name="meterBinder" class="io.micrometer.core.instrument.binder.system.FileDescriptorMetrics" />
<!-- tomcat -->
<!--
<property name="meterBinder" class="org.iplass.mtp.impl.micrometer.metrics.tomcat.TomcatMeterBinder" />
-->
<!-- Tomcat dbcp2 (tomcat default) -->
<!--
<property name="meterBinder" class="org.iplass.mtp.impl.micrometer.metrics.jdbc.tomcatdbcp2.TomcatDbcp2MeterBinder">
<property name="poolName" value="mtpPool" />
</property>
-->
<!-- commons dbcp 2 -->
<!--
<property name="meterBinder" class="org.iplass.mtp.impl.micrometer.metrics.jdbc.commonsdbcp2.CommonsDbcp2MeterBinder">
<property name="poolName" value="mtpPool" />
</property>
-->
<!-- hikari cp -->
<!--
<property name="meterBinder" class="org.iplass.mtp.impl.micrometer.metrics.jdbc.hikaricp.HikariCPMeterBinder" />
-->
<!-- ■ CommonTags Settings ■ -->
<!--
<property name="commonTags" >
<property name="tagKey1" value="tagValue1" />
<property name="tagKey2" value="tagValue2" />
<property name="tagKey3" value="tagValue3" />
</property>
-->
<!-- ■ PathResolver Settings ■ -->
<property name="actionPathResolver" class="org.iplass.mtp.impl.micrometer.metrics.web.action.DefaultActionPathResolver" />
<property name="webApiPathResolver" class="org.iplass.mtp.impl.micrometer.metrics.web.webapi.DefaultWebApiPathResolver" />
<!-- ■ Custom PathResolver Settings ■ -->
<!--
<property name="customTagActionPathResolver">
<property name="customHierarchicalUri1" class="org.iplass.mtp.impl.micrometer.metrics.web.action.ActionHierarchicalPathResolver">
<property name="depth" value="1" />
</property>
</property>
<property name="customTagWebApiPathResolver">
<property name="customHierarchicalUri1" class="org.iplass.mtp.impl.micrometer.metrics.web.webapi.WebApiHierarchicalPathResolver">
<property name="depth" value="1" />
</property>
</property>
-->
<!-- ■ Customizer Settings ■ -->
<!--
<property name="customizerClass" value="yourCustomizerClassName" />
-->
<!-- ■ MeterRegistry Settings ■ -->
<!--
利用するモニタリングシステムを有効にし、必要に応じてプロパティを追加/変更してください。
-->
<!-- for Elastic -->
<!--
<property name="meterRegistryFactory" class="org.iplass.mtp.impl.micrometer.registry.elastic.ElasticMeterRegistryFactory">
-->
<!-- ■ Amazon OpenSearch Serviceを利用する場合は、コメントアウトを外し、httpSender プロパティを変更してください。■ -->
<!-- (Deprecated) AWS SDK for Java 1.x を利用する例。 -->
<!--
<property name="httpSender" class="org.iplass.mtp.impl.micrometer.aws.AWSHttpSender">
<property name="serviceName" value="es" />
<property name="region" value="yourESRegion" />
</property>
-->
<!-- AWS SDK for Java 2.x を利用する例。org.iplass.mtp.impl.awsv2.AWSSetting に依存します。 -->
<!--
<property name="httpSender" class="org.iplass.mtp.impl.micrometer.awsv2.AWSHttpSender">
<property name="serviceName" value="es" />
<property name="region" value="yourESRegion" />
<property name="defaultCharset" value="UTF-8" />
</property>
-->
<!--
<property name="configMap" >
<property name="host" value="yourElasticHost" />
<property name="step" value="1m" />
<property name="index" value="micrometer-metrics" />
<property name="connectTimeoutMs" value="2000" />
</property>
</property>
-->
<!-- for Jmx -->
<!--
<property name="meterRegistryFactory" class="org.iplass.mtp.impl.micrometer.registry.jmx.JmxMeterRegistryFactory">
<property name="configMap" >
<property name="domain" value="metrics" />
</property>
<property name="tagsAsPrefix" value="prefix1" />
</property>
-->
<!-- for Prometheus -->
<!--
<property name="meterRegistryFactory" class="org.iplass.mtp.impl.micrometer.registry.prometheus.PrometheusMeterRegistryFactory">
<property name="configMap" >
</property>
</property>
-->
<!-- (Deprecated) for CloudWatch -->
<!-- AWS SDK for Java 1.x を利用した機能は非推奨となります。AWS SDK for Java 2.x を利用した機能に変更してください。 -->
<!--
<property name="meterRegistryFactory" class="org.iplass.mtp.impl.aws.micrometer.registry.cloudwatch.CloudWatchMeterRegistryFactory">
<property name="configMap" >
<property name="step" value="1m" />
<property name="region" value="yourRegion" />
<property name="namespace" value="micrometer-namespace" />
</property>
</property>
-->
<!-- for CloudWatch (AWS SDK for Java 2.x). org.iplass.mtp.impl.awsv2.AWSSetting に依存します。 -->
<!--
<property name="meterRegistryFactory" class="org.iplass.mtp.impl.micrometer.registry.cloudwatch.awsv2.CloudWatchMeterRegistryFactory">
<property name="configMap" >
<property name="step" value="1m" />
<property name="region" value="yourRegion" />
<property name="namespace" value="micrometer-namespace" />
</property>
</property>
-->
<!-- for New Relic -->
<!--
<property name="meterRegistryFactory" class="org.iplass.mtp.impl.micrometer.registry.newrelic.NewRelicMeterRegistryFactory">
<property name="configMap" >
<property name="step" value="1m" />
<property name="apiKey" value="yourApiKey" />
</property>
</property>
-->
<!-- for Logging -->
<!--
<property name="meterRegistryFactory" class="org.iplass.mtp.impl.micrometer.registry.logging.LoggingMeterRegistryFactory">
<property name="configMap" >
<property name="step" value="1m" />
</property>
</property>
-->
</service>
3.47. OAuthAuthorizationService
OAuth2.0 Authorization ServerおよびOpenID Connect Providerの機能を管理するためのサービスです。
インタフェース名
org.iplass.mtp.impl.auth.oauth.OAuthAuthorizationService
実装クラス名
org.iplass.mtp.impl.auth.oauth.OAuthAuthorizationService
OAuthAuthorizationServiceの設定
OAuthAuthorizationServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
paramStateRequired |
boolean |
Authorization Request時にstateパラメータを必須とするか否かを設定します。 |
paramNonceRequired |
boolean |
Authorization Request時にnonceパラメータを必須とするか否かを設定します。 |
forcePKCE |
boolean |
Public Clientに対してPKCE (Proof Key for Code Exchange by OAuth Public Clients) を必須とするか否かを設定します。 |
forceS256ForCodeChallengeMethod |
boolean |
PKCEのCodeChallengeMethodにS256を強制するか否かを設定します。 |
defaultConsentTemplateName |
String |
OAuthのscopeのデフォルトの承認画面のテンプレート名を指定します。 |
authorizationCodeStore |
AuthorizationCodeStoreの設定。 |
|
accessTokenStore |
OAuthAccessTokenStoreの設定。 |
|
jwtProcessor |
JwtProcessorの設定。 |
|
jwtKeyStore |
JwtKeyStoreの設定。 |
|
subjectIdHashAlgorithm |
String |
resource ownerのsubject idをClientへ公開する際に、ハッシュする場合のアルゴリズムを指定します。 |
subjectIdHashAlgorithm |
String |
subject idをハッシュする際のソルト値を指定します。 |
idTokenLifetimeSeconds |
long |
ID Tokenを発行する場合の有効期限(秒)を指定します。 |
classはorg.iplass.mtp.impl.auth.oauth.code.AuthorizationCodeStoreの実装クラスを指定します。
標準で、以下のAuthorizationCodeStoreを提供します。
classはorg.iplass.mtp.impl.auth.oauth.code.CacheAuthorizationCodeStoreを指定します。
CacheStoreで認証コードを管理します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 | ||
|---|---|---|---|---|
secureRandomGeneratorName |
String |
SecureRandomService に定義される認証コード文字列の生成器を指定します。
未設定の場合、 |
||
cacheStoreName |
String |
CacheService に定義されるCacheStore(CacheStoreFactory)の名前を指定します。
未指定の場合のデフォルト値は
|
||
timeToLive |
long |
認証コードの有効期限(ミリ秒)を指定します。
未指定の場合のデフォルト値は |
classはorg.iplass.mtp.impl.auth.oauth.token.OAuthAccessTokenStoreの実装クラスを指定します。
標準で、以下のOAuthAccessTokenStoreを提供します。
classはorg.iplass.mtp.impl.auth.oauth.token.opaque.OpaqueOAuthAccessTokenStoreを指定します。 AcessTokenの形式としてはOpaque(Handle)形式となります。 AcessTokenはAuthTokenStoreを利用して保存されます。
OpaqueOAuthAccessTokenStoreの場合、 AcessTokenはClient × ResourceOwner単位に一つ発行されます。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
authTokenType |
String |
AccessTokenHandlerに定義されるtypeを指定します。
未指定の場合のデフォルト値は |
seriesHashAlgorithm |
String |
AccessTokenを一意に特定する際に利用するキーを生成する際のハッシュアルゴリズムを設定します。
未指定の場合のデフォルト値は |
seriesHashSalt |
String |
AccessTokenを一意に特定する際に利用するキーを生成する際のハッシュに利用するSaltです。 環境毎に異なるランダムな文字列を指定することを推奨します。 |
tokenCreationStrategy |
AccessTokenの生成方法を示すTokenCreationStrategyを設定します。 |
classはorg.iplass.mtp.impl.auth.oauth.token.remote.RemoteOAuthAccessTokenStoreを指定します。
バックエンドでOAuth 2.0 Token Introspection (RFC7662)を呼び出すTokenStoreの実装です。 当該設定が適用されたiPLAssのインスタンスはResource Serverとして動作します。 リモートに起動しているAuthorization ServerからAccessTokenを取得し検証します。
| RemoteOAuthAccessTokenStoreは読み取り専用です。 Authorization Serverの機能は実装されませんので、AccessTokenを更新するメソッドを呼び出した場合、ランタイム例外がスローされます。 |
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
introspectionEndpointUrl |
String |
Introspection EndpointのURLを指定します。
Authorization ServerもiPLAssである場合で、マルチテナントアプリケーションの場合、テナント単位にEndpointが異なります。
その場合、 例: https://localhost:8080/mtp/${tenantName}/api/oauth/introspect |
authenticationMethod |
ClientAuthenticationMethod |
Introspection EndpointのClient(Resource Server)認証方式を指定します。 次のいずれかを指定します。
未指定の場合のデフォルト値は |
resourceServerId |
String |
Authorization Serverから発行されるResource ServerのIDを指定します。 |
resourceServerSecret |
String |
Authorization Serverから発行されるResource ServerのSecretを指定します。 |
tenantValidationType |
TenantValidationType |
テナントの検証方式を指定します。 次のいずれかを指定します。
未指定の場合のデフォルト値は |
reloadUser |
boolean |
AccessTokenに紐づくユーザー情報の取得方法を制御します。
未指定の場合のデフォルト値は |
httpClientConfig |
WebApi呼び出し時のHTTPコネクションに関する設定。 |
|
exponentialBackoff |
ExponentialBackoffクラスのプロパティにてリトライ処理する際の 指数バックオフ の設定。 |
classはorg.iplass.mtp.impl.http.HttpClientConfigを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
proxyHost |
String |
proxyを利用する場合のHost名。 |
proxyPort |
int |
proxyを利用する場合のport。 |
connectionTimeout |
int |
HTTPコネクションを確立する際のタイムアウト(ミリ秒)。デフォルト値は30000(30秒)です。 |
soTimeout |
int |
HTTP通信時のsocket timeout (SO_TIMEOUT)をミリ秒で指定します。デフォルト値は30000(30秒)です。 |
poolingMaxTotal |
int |
httpコネクションのプールの最大数。デフォルト値は20です。 |
poolingDefaultMaxPerRoute |
int |
ドメイン単位のhttpコネクションの最大数。デフォルト値は2です。 |
poolingTimeToLive |
int |
プールされているhttpコネクションの生存期間(ミリ秒)。デフォルトは無制限です。 |
httpClientBuilderFactory |
カスタムのHttpClientBuilderを生成したい場合に指定します。 |
classはorg.iplass.mtp.impl.http.HttpClientBuilderFactoryを実装するクラスを指定します。
標準で以下のHttpClientBuilderFactoryを提供します。
classはorg.iplass.mtp.impl.http.ExponentialBackoffを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
retryIntervalMillis |
int |
リトライ間隔をミリ秒で指定します。デフォルト値は500です。 |
randomizationFactor |
double |
リトライ時のランダム要素。 0.5の場合、retryIntervalMillisに指定した値が上下25%の範囲で変動します。デフォルト値は0.5です。 |
multiplier |
double |
リトライ時のリトライ間隔の指数要素。 1.5の、retryIntervalMillisが500の場合、2回目のリトライは750ms、3回目のリトライは1125msのリトライ間隔で行われます。デフォルト値は1.5です。 |
maxIntervalMillis |
int |
最大リトライ間隔です。 デフォルト値は60000(1分)です。 |
maxElapsedTimeMillis |
int |
最大のリトライ実行時間。 この時間の間にリトライ処理が成功しなかった場合は、リトライ処理を完了し、アプリケーション側にその時点までの結果を返却します。 デフォルト値は300000(5分)です。 |
classはorg.iplass.mtp.impl.auth.oauth.token.opaque.TokenCreationStrategyの実装クラスを指定します。
標準で、以下のTokenCreationStrategyを提供します。
classはorg.iplass.mtp.impl.auth.oauth.token.opaque.NewTokenCreationStrategyを指定します。
AccessToken取得要求の都度新しいAccessTokenを生成します。 新しいAccessTokenが生成された場合、当該Client、ResourceOwner向けに以前に発行されたAccessTokenは無効となります。
classはorg.iplass.mtp.impl.auth.oauth.token.opaque.SameTokenCreationStrategyを指定します。
AccessToken取得要求された場合、当該Client、ResourceOwner向けに発行された既存の有効なAccessTokenがある場合、同一のものを返却します。 既存のAccessTokenを返却するため、そのAccessTokenの有効期間は取得時点においては短い場合もあります。
例えば、ユーザーが複数の端末を所持しており、且つそれらが同一Clientとして定義されている場合などにおいて、有効なAccessTokenを奪い合う状況を回避できます。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
retryCount |
int |
AccessTokenの発行処理に失敗した場合のリトライ回数を設定可能です。 未指定の場合のデフォルト値は0(リトライしない)です。 |
retryIntervalMillis |
long |
リトライする際のリトライ間隔(ミリ秒)を指定します。 未指定の場合のデフォルト値は0です。 |
classはorg.iplass.mtp.impl.auth.oauth.jwt.JwtProcessorの実装クラスを指定します。
JWT(Json Web Token)の生成処理の設定を行います。 標準で、以下のJwtProcessorを提供します。
classはorg.iplass.mtp.impl.auth.oauth.jwt.JjwtProcesorを指定します。
JWTの生成処理にライブラリJJWT(Java JWT)を利用します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
useRsaSsaPss |
boolean |
RSAベースの署名アルゴリズムに、RSASSA-PKCS1-v1_5ではなくRSASSA-PSSを利用する場合にtrueを指定します。 未指定の場合のデフォルト値はfalseです。 |
署名に利用する暗号鍵のアルゴリズムにより、次のようにJWTの署名方式が決定されます。
| 鍵アルゴリズム | 鍵長 | useRsaSsaPss | JWT署名方式 |
|---|---|---|---|
RSA |
4096以上 |
false |
RS512 |
RSA |
3072以上且つ4096未満 |
false |
RS384 |
RSA |
2048以上且つ3072未満 |
false |
RS256 |
EC |
521以上 |
* |
ES512 |
EC |
384以上且つ521未満 |
* |
ES384 |
EC |
256以上且つ384未満 |
* |
ES256 |
RSA |
4096以上 |
true |
PS512 |
RSA |
3072以上且つ4096未満 |
true |
PS384 |
RSA |
2048以上且つ3072未満 |
true |
PS256 |
classはorg.iplass.mtp.impl.auth.oauth.jwt.JwtKeyStoreの実装クラスを指定します。
JWTへの署名は、iPLAssでは公開鍵暗号方式ベースの署名をサポートします。 その際に利用する鍵ペア(公開鍵/秘密鍵)を管理します。 標準で、以下のJwtKeyStoreを提供します。
classはorg.iplass.mtp.impl.auth.oauth.jwt.SimpleJwtKeyStoreを指定します。
Java Key StoreベースのJwtKeyStoreの実装です。 次の特徴を持ちます。
-
KeyStoreのaliasがkid(Key ID)となる
-
KeyStoreに格納される公開鍵証明書の有効期間を用いて鍵の有効期間を管理する
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
keyStoreType |
String |
KeyStoreのタイプ。デフォルト値は |
keyStoreProvider |
String |
KeyStoreのプロバイダ。未指定の場合は、標準のプロバイダが利用されます。 |
keyStoreFilePath |
String |
KeyStoreのリソースパス(classpath配下)もしくはファイルパス(OS上のファイルとして)。 |
keyStorePassword |
String |
KeyStoreのパスワード。 |
keyPasswordMap |
Map形式 |
keyPasswordを個別のKey毎に異なるものを付与する場合、nameにalias名、valueにパスワードを指定する形で定義します。 keyPasswordMapを指定しない場合、keyPasswordにはkeyStorePasswordの値が利用されます。 |
keyStoreReloadIntervalMinutes |
int |
KeyStoreをリロードする間隔(分)を設定します。 未設定の場合、リロードしません。 |
rollOverType |
鍵のロールオーバー方式を設定します。
デフォルト値は |
|
rollOverDaysBeforeExpire |
long |
rollOverTypeが |
鍵の有効期間が迫った場合のロールオーバー方式を指定します。 複数の(新旧の)鍵がKeyStore内にある場合、どちらを利用するかを判断する方式です。 鍵の有効期間は公開鍵証明書の有効期間で判断します。
- OLDER
-
有効期間が切れるまで、有効期間が短い(NotAfterが古い)証明書の鍵を利用
- NEWER
-
有効期間内である証明書のうち、より有効期間が長い(NotAfterが新しい)証明書の鍵を利用
- BEFORE_N_DAYS
-
有効期間が切れるrollOverDaysBeforeExpire日前に切り替える
設定例 (Authorization ServerとResource Serverが同一インスタンス)
<service>
<interface>org.iplass.mtp.impl.auth.oauth.OAuthAuthorizationService</interface>
<property name="defaultConsentTemplateName" value="oauth/Consent" />
<property name="authorizationCodeStore" class="org.iplass.mtp.impl.auth.oauth.code.CacheAuthorizationCodeStore">
<property name="timeToLive" value="180000" />
</property>
<property name="accessTokenStore" class="org.iplass.mtp.impl.auth.oauth.token.opaque.OpaqueOAuthAccessTokenStore">
<property name="seriesHashAlgorithm" value="SHA-256" />
<property name="seriesHashSalt" value="[salt for each environment]" />
<property name="tokenCreationStrategy" class="org.iplass.mtp.impl.auth.oauth.token.opaque.NewTokenCreationStrategy" />
</property>
<property name="jwtProcessor" class="org.iplass.mtp.impl.auth.oauth.jwt.JjwtProcesor" />
<property name="jwtKeyStore" class="org.iplass.mtp.impl.auth.oauth.jwt.SimpleJwtKeyStore">
<property name="keyStoreFilePath" value="/conf/jwtKeyStore.jks" />
<property name="keyStorePassword" value="[your jks store password]" />
<property name="keyStoreReloadIntervalMinutes" value="1440" />
<property name="rollOverType" value="BEFORE_N_DAYS" />
<property name="rollOverDaysBeforeExpire" value="5" />
</property>
<property name="subjectIdHashAlgorithm" value="SHA-256" />
<property name="subjectIdHashSalt" value="[yourOwnSalt]" />
</service>
設定例 (Resource Server)
<service>
<interface>org.iplass.mtp.impl.auth.oauth.OAuthAuthorizationService</interface>
<property name="accessTokenStore" class="org.iplass.mtp.impl.auth.oauth.token.remote.RemoteOAuthAccessTokenStore" inherit="false">
<property name="introspectionEndpointUrl" value="http://localhost:8080/mtp/${tenantName}/api/oauth/introspect"/>
<property name="resourceServerId" value="sampleRS"/>
<property name="resourceServerSecret" value="AK08O9RvVzmTWrrSidS..."/>
<property name="reloadUser" value="false"/>
<property name="httpClientConfig">
<property name="poolingMaxTotal" value="30"/>
</property>
<property name="exponentialBackoff">
<property name="maxElapsedTimeMillis" value="60000"/>
</property>
</property>
</service>
3.48. ODataService
ODataサービスの動作を管理するサービスです。
インタフェース名
org.iplass.mtp.impl.webapi.odata.ODataService
実装クラス名
org.iplass.mtp.impl.webapi.odata.ODataServiceImpl
ODataServiceの設定
ODataServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
queryPaging |
int |
ODataのQuery操作時のデフォルトのページングサイズ。 |
設定例
<service>
<interface>org.iplass.mtp.impl.webapi.odata.ODataService</interface>
<class>org.iplass.mtp.impl.webapi.odata.ODataServiceImpl</class>
<property name="queryPaging" value="20" />
</service>
3.49. OidCounter
oidの採番を行うサービスです。
採番を行うCounterServiceを利用します。
RDBのシーケンス採番機能の有無で設定を変える必要があります。
シーケンス機能が有る場合(デフォルト設定)は RdbSequenceCounterService を、
無い場合(MySQL)は CachableRdbTableCounterService を利用します。
インタフェース名
org.iplass.mtp.impl.counter.CounterService
実装クラス名
org.iplass.mtp.impl.counter.RdbSequenceCounterService
org.iplass.mtp.impl.counter.CachableRdbTableCounterService
RdbSequenceCounterService
RdbSequenceCounterServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
sequenceNameMap |
SequenceNameMap、複数指定可 |
採番を行う単位と採番テーブルのマッピング。 |
採番を行う単位と採番テーブルのマッピングを設定します。 以下の項目が設定できます。
| 項目 | 値 | 説明 |
|---|---|---|
name |
String |
採番を行う単位の名前。 |
value |
String |
RDBのシーケンス名。 |
CachableRdbTableCounterServiceの設定
CachableRdbTableCounterServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
separateTransaction |
boolean |
採番時にトランザクションを分けるか。デフォルト値はfalseです。 |
retryCount |
int |
採番失敗時にリトライする回数。デフォルト値は3です。 |
counterTypeName |
String |
採番タイプの名前。デフォルト値は |
cacheSize |
int |
キャッシュサイズ。デフォルト値は20です。 |
設定例
<!-- デフォルト設定 -->
<service name="OidCounter">
<interface>org.iplass.mtp.impl.counter.CounterService</interface>
<class>org.iplass.mtp.impl.counter.RdbSequenceCounterService</class>
<property name="sequenceNameMap">
<property name="oid" value="SEQ_OBJ_ID" />
<property name="rbid" value="SEQ_RB_ID" />
<property name="lobid" value="SEQ_LOB_ID" />
<property name="logid" value="SEQ_LOG_ID" />
</property>
</service>
<!-- MySQL -->
<service name="OidCounter">
<interface>org.iplass.mtp.impl.counter.CounterService</interface>
<class>org.iplass.mtp.impl.counter.CachableRdbTableCounterService</class>
<property name="counterTypeName" value="OidCounter" />
<property name="cacheSize" value="20" />
<property name="retryCount" value="3" />
</service>
3.50. OnetimeCodeGeneratorService
二段階認証のワンタイム認証コードを生成するサービスです。
インタフェース名
org.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeGeneratorService
実装クラス名
org.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeGeneratorService
OnetimeCodeGeneratorServiceの設定
ワンタイム認証コードの生成について設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
generator |
OnetimeCodeGenerator、複数指定可 |
ワンタイム認証コードの生成器の設定。 |
classはorg.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeGeneratorの実装クラスを指定します。
標準で、外部送信するワンタイム認証コードを生成するorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.OutOfBandOnetimeCodeGeneratorを提供します。 OutOfBandOnetimeCodeGeneratorの設定可能な項目は以下になります。
外部送信するワンタイム認証コードを生成するワンタイム認証コード生成器です。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
name |
String |
ワンタイム認証コード生成器の名前。 |
maxFailureCount |
int |
最大認証失敗回数。デフォルト値は5です。 |
lifetimeSeconds |
long |
ワンタイム認証コードの有効時間。デフォルト値は180(3分)です。 |
store |
ワンタイム認証コードの保持方式。 |
|
sender |
ワンタイム認証コードの外部送信方式。 |
|
strategy |
ワンタイム認証コードの生成方式。 |
classはorg.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeStoreの実装クラスを指定します。
標準で、ワンタイム認証コードをセッションに格納するorg.iplass.mtp.impl.auth.authenticate.onetime.SessionOntimeCodeStoreを提供します。 SessionOntimeCodeStoreは設定変更可能な項目はありません。
classはorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.OutOfBandSenderの実装クラスを指定します。
標準で、ワンタイム認証コードをメール送信するorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.MailOutOfBandSenderと、 SMS送信するorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.SmsOutOfBandSenderを提供します。
classはorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.MailOutOfBandSenderを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
mailTemplate |
String |
ワンタイム認証コードを送信するメールのテンプレート。 |
fromAddress |
String |
送信元メールアドレス。 テナントのメール送信設定で設定されているFromアドレスとは別のメールアドレスを使用する場合に設定します。 |
classはorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.SmsOutOfBandSenderを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
smsTemplate |
String |
ワンタイム認証コードを送信するSMSのテンプレート。 |
fromPhoneNumber |
String |
送信元電話番号。SmsServiceで設定されているdefaultFromとは別の電話番号を使用する場合に設定します。 |
classはorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.GenerateStrategyの実装クラスを指定します。
標準で、数値のワンタイム認証コードを生成するorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.NumberGenerateStrategyを提供します。 NumberGenerateStrategyは以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
numberOfDigits |
int |
数値の桁数。デフォルト値は6です。 |
設定例
<service>
<interface>org.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeGeneratorService</interface>
<property name="generator"
class="org.iplass.mtp.impl.auth.authenticate.onetime.outofband.OutOfBandOnetimeCodeGenerator">
<property name="name" value="outOfBandByMail" />
<property name="maxFailureCount" value="5" />
<property name="lifetimeSeconds" value="180" />
<property name="store"
class="org.iplass.mtp.impl.auth.authenticate.onetime.SessionOntimeCodeStore" />
<property name="sender"
class="org.iplass.mtp.impl.auth.authenticate.onetime.outofband.MailOutOfBandSender">
<property name="mailTemplate" value="mtp/auth/onetime/SendCode" />
<!-- if use another "from address" instead of tenant default "from address".
<property name="fromAddress" value="noreply@xxx.dentsusoken.com" />
-->
</property>
<property name="strategy"
class="org.iplass.mtp.impl.auth.authenticate.onetime.outofband.NumberGenerateStrategy">
<property name="numberOfDigits" value="6" />
</property>
</property>
<property name="generator"
class="org.iplass.mtp.impl.auth.authenticate.onetime.outofband.OutOfBandOnetimeCodeGenerator">
<property name="name" value="outOfBandBySms" />
<property name="maxFailureCount" value="5" />
<property name="lifetimeSeconds" value="180" />
<property name="store"
class="org.iplass.mtp.impl.auth.authenticate.onetime.SessionOntimeCodeStore" />
<property name="sender"
class="org.iplass.mtp.impl.auth.authenticate.onetime.outofband.SmsOutOfBandSender">
<property name="smsTemplate" value="mtp/auth/onetime/SendCodeSms" />
<!-- if use another "from phone number" instead of SMSService's defaultFrom.
<property name="fromPhoneNumber" value="+1234..." />
-->
</property>
<property name="strategy"
class="org.iplass.mtp.impl.auth.authenticate.onetime.outofband.NumberGenerateStrategy">
<property name="numberOfDigits" value="6" />
</property>
</property>
</service>
3.51. OpenApiService
OpenAPI に関連する機能を管理するためのサービスです。
インタフェース名
org.iplass.mtp.impl.webapi.openapi.OpenApiService
実装クラス名
org.iplass.mtp.impl.webapi.openapi.OpenApiService
OpenApiServiceの設定
OpenApiServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
infoTitleOfExport |
String |
OpenAPI Export 時の info.title の値。 |
infoVersionOfExport |
String |
OpenAPI Export 時の info.version の値。 |
infoDescriptionOfExport |
String |
OpenAPI Export 時の info.description の値。 |
propertySchema |
PropertySchema、複数指定可 |
OpenAPI Export 時のスキーマ定義に使用するクラス・プロパティのスキーマ定義。 |
classは org.iplass.mtp.impl.webapi.openapi.schema.PropertySchema を指定します。
Java クラス情報から JsonSchema を生成する際の、固定のスキーマを設定します。
スキーマの判断方法は、クラス・プロパティの組み合わせが一致する場合が優先され、次いでプロパティのみが一致する場合となります。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
className |
String |
JsonSchema 出力対象クラス名。 |
propertyName |
String、必須 |
JsonSchema 出力対象プロパティ名。 |
schemaType |
String、必須 |
スキーマのタイプ。
|
description |
String |
スキーマの説明。 |
format |
String |
スキーマのフォーマット。 |
設定例
<service>
<interface>org.iplass.mtp.impl.webapi.openapi.OpenApiService</interface>
<class>org.iplass.mtp.impl.webapi.openapi.OpenApiService</class>
<property name="infoTitleOfExport" value="iPLAss WebAPI, EntityCRUDApi OpenAPI Spec" />
<property name="infoVersionOfExport" value="1.0.0" />
<property name="infoDescriptionOfExport" value="iPLAss WebAPI and EntityCRUDApi OpenAPI Specification" />
<property name="propertySchema" class="org.iplass.mtp.impl.webapi.openapi.schema.PropertySchema">
<property name="propertyName" value="@class" />
<property name="schemaType" value="STRING" />
<property name="description" value="Fully qualified class name is set as the value. This property is used to identify the concrete class when the type of parameter or response is an interface or abstract class." />
</property>
</service>
3.52. OpenIdConnectService
OpenID Connect Relying Partyの機能を管理するためのサービスです。
インタフェース名
org.iplass.mtp.impl.auth.authenticate.oidc.OpenIdConnectService
実装クラス名
org.iplass.mtp.impl.auth.authenticate.oidc.OpenIdConnectService
OpenIdConnectServiceの設定
OpenIdConnectServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
allowedClockSkewMinutes |
int |
許容されるクロックスキュー時間。デフォルト値は0(分)です。 |
jwksCacheLifetimeMinutes |
int |
jwksのキャッシュ時間。デフォルト値は360(分)です。 |
clientSecretType |
String |
Client Secretの種別。デフォルト値は |
httpClientConfig |
HTTPクライアントの設定。 |
classはorg.iplass.mtp.impl.http.HttpClientConfigを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
connectionTimeout |
int |
HTTPコネクションを確立する際のタイムアウト(ミリ秒)。デフォルト値は30000(30秒)です。 |
soTimeout |
int |
HTTP通信時のsocket timeout (SO_TIMEOUT)(ミリ秒)。デフォルト値は30000(30秒)です。 |
poolingMaxTotal |
int |
httpコネクションのプールの最大数。デフォルト値は20です。 |
poolingDefaultMaxPerRoute |
int |
ドメイン単位のhttpコネクションの最大数。デフォルト値は2です。 |
poolingTimeToLive |
int |
プールされているhttpコネクションの生存期間(ミリ秒)。デフォルトは無制限です。 |
proxyHost |
String |
プロキシサーバのホスト。 |
proxyPort |
int |
プロキシサーバのポート番号。 |
httpClientBuilderFactory |
カスタムのHttpClientBuilderを生成したい場合に指定します。 |
classはorg.iplass.mtp.impl.http.HttpClientBuilderFactoryを実装するクラスを指定します。
標準で以下のHttpClientBuilderFactoryを提供します。
設定例
<service>
<interface>org.iplass.mtp.impl.auth.authenticate.oidc.OpenIdConnectService</interface>
<property name="httpClientConfig" class="org.iplass.mtp.impl.http.HttpClientConfig">
<property name="proxyHost" value="proxyhost.dentsusoken.com"/>
<property name="proxyPort" value="8080"/>
</property>
</service>
3.53. OutOfBandVerificationService
メールやSMSを利用して検証を行うためのサービスです。
インタフェース名
org.iplass.wam.impl.outofbandverify.OutOfBandVerificationService
実装クラス名
org.iplass.wam.impl.outofbandverify.OutOfBandVerificationService
OutOfBandVerificationServiceの設定
OutOfBandVerificationServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
verifier |
OutOfBandVerifier、複数指定可 |
アウトオブバンドを利用した検証の設定。 |
アウトオブバンドを利用した検証の設定です。
classはorg.iplass.wam.impl.outofbandverify.OutOfBandVerifierを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
name |
String |
アウトオブバンドの名前。 |
outOfBand |
アウトオブバンドの設定。 |
|
strategy |
検証機能の設定。 |
|
store |
検証対象の保持設定。 |
classはorg.iplass.wam.impl.outofbandverify.outofband.OutOfBandの実装クラスを指定します。
標準で以下のOutOfBandを提供しています。
メール送信のためのOutOfBandです。
classはorg.iplass.wam.impl.outofbandverify.outofband.MailOutOfBandを指定します。 設定可能な項目はありません。
SMS送信のためのOutOfBandです。
classはorg.iplass.wam.impl.outofbandverify.outofband.SMSOutOfBandを指定します。 設定可能な項目はありません。
classはorg.iplass.wam.impl.outofbandverify.strategy.VerifyStrategyの実装クラスを指定します。
標準で以下のVerifyStrategyを提供しています。
アクティベーションURLによる検証を行います。
classはorg.iplass.wam.impl.outofbandverify.strategy.ActivationURLVerifyStrategyを指定します。 設定可能な項目はありません。
ワンタイムコードによる検証を行います。
classはorg.iplass.wam.impl.outofbandverify.strategy.OnetimeCodeVerifyStrategyを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
numberOfDigits |
int |
ワンタイムコードの桁数。デフォルト値は6。 |
classはorg.iplass.wam.impl.outofbandverify.store.VerificationStoreの実装クラスを指定します。
標準で以下のVerificationStoreを提供しています。
検証対象をキャッシュに保存します。
classはorg.iplass.wam.impl.outofbandverify.store.CacheVerificationStoreを指定します。 設定可能な項目はありません。
検証対象をEntityに保存します。
classはorg.iplass.wam.impl.outofbandverify.store.EntityVerificationStoreを指定します。 設定可能な項目はありません。
検証対象をユーザーのSessionに保存します。
classはorg.iplass.wam.impl.outofbandverify.store.SessionVerificationStoreを指定します。 設定可能な項目はありません。
設定例
<service>
<interface>org.iplass.wam.impl.outofbandverify.OutOfBandVerificationService</interface>
<property name="verifier" class="org.iplass.wam.impl.outofbandverify.OutOfBandVerifier">
<property name="name" value="email"/>
<property name="outOfBand" class="org.iplass.wam.impl.outofbandverify.outofband.MailOutOfBand"/>
<property name="strategy" class="org.iplass.wam.impl.outofbandverify.strategy.ActivationURLVerifyStrategy"/>
<property name="store" class="org.iplass.wam.impl.outofbandverify.store.EntityVerificationStore"/>
</property>
<property name="verifier" class="org.iplass.wam.impl.outofbandverify.OutOfBandVerifier">
<property name="name" value="mobileMail"/>
<property name="outOfBand" class="org.iplass.wam.impl.outofbandverify.outofband.MailOutOfBand"/>
<property name="strategy" class="org.iplass.wam.impl.outofbandverify.strategy.OnetimeCodeVerifyStrategy"/>
<property name="store" class="org.iplass.wam.impl.outofbandverify.store.SessionVerificationStore"/>
</property>
<property name="verifier" class="org.iplass.wam.impl.outofbandverify.OutOfBandVerifier">
<property name="name" value="sms"/>
<property name="outOfBand" class="org.iplass.wam.impl.outofbandverify.outofband.SMSOutOfBand"/>
<property name="strategy" class="org.iplass.wam.impl.outofbandverify.strategy.OnetimeCodeVerifyStrategy"/>
<property name="store" class="org.iplass.wam.impl.outofbandverify.store.SessionVerificationStore"/>
</property>
</service>
3.54. PropertyService
プロパティを管理するサービスです。
インタフェース名
org.iplass.mtp.impl.entity.property.PropertyService
実装クラス名
org.iplass.mtp.impl.entity.property.PropertyService
PropertyServiceの設定
PropertyServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
longTextInlineStoreMaxLength |
int |
LongText型の文字列をLobStoreに保存せず、DataStoreのレコード内部で保持する場合の最大サイズ(文字列長)。デフォルト値は1024です。文字列の先頭から設定された最大サイズ分がレコード内部に保持されます。 StoreServiceの StorageSpaceMap に定義されるvarcharColumnLengthがlongTextInlineStoreMaxLengthより小さい場合は、StorageSpaceMapの設定が優先されます。 |
remainInlineText |
boolean |
LongText型の文字列を検索用にDataStoreレコード内部で保持するか。デフォルト値はfalseです。ただし、レコード内部に保持可能な文字列長を超える部分は検索対象にはなりません。 |
設定例
<service>
<interface>org.iplass.mtp.impl.entity.property.PropertyService</interface>
<!-- if longtext property value length is over this byte, offstorage to LOB -->
<property name="longTextInlineStoreMaxLength" value="1024" />
<!-- To enable search long text property, this flag set to true. note:Search text limit is longTextInlineStoreMaxLength. And storage space more consume. -->
<property name="remainInlineText" value="false" />
</service>
3.55. PropertyEncryptionService
プロパティ単位の暗号化を行うサービスです。
インタフェース名
org.iplass.mtp.impl.properties.extend.crypt.PropertyEncryptionService
実装クラス名
org.iplass.mtp.impl.properties.extend.crypt.PropertyEncryptionService
PropertyEncryptionServiceの設定
PropertyEncryptionServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
encryptionSettings |
EncryptionSetting、複数指定可 |
暗号化の方式。 標準で提供するクラス、もしくはEncryptionSettingインタフェースを実装するカスタムのEncryptionSetting。 異なるversionのencryptionSettingsを複数定義することにより、暗号化ロジックのロールオーバーが可能です。 新規に保存される値は最後に定義されたencryptionSettingsを利用して暗号化されます。 |
cachePrivateKeyInMemory |
boolean |
シークレットキーをメモリにキャッシュするか。デフォルト値はfalseです。 |
logEncryptProperty |
boolean |
暗号化したプロパティを暗号化前の値でログ出力するか。デフォルト値はtrueです。 |
encryptValueLogExpression |
String |
暗号化した際に出力される文字列。デフォルト値は |
暗号化の方式を定義します。
classはorg.iplass.mtp.impl.properties.extend.crypt.EncryptionSettingの実装クラスを指定します。
標準で以下のEncryptionSettingを提供します。
PBKDF2(Password-Based Key Drivation Function 2)を用いた暗号化を行います。
classにorg.iplass.mtp.impl.properties.extend.crypt.PBKDF2EncryptionSettingを指定します。
| 項目 | 値 | 説明 |
|---|---|---|
version |
String |
暗号化アルゴリズム設定のバージョン。 複数のencryptionSettings定義でそれぞれ一意な番号を指定する。 |
keyFactoryAlgorithm |
String |
鍵生成アルゴリズム。
デフォルト値は |
keySalt |
String |
鍵生成時のSalt。 未指定の場合はシステムのデフォルト値を利用。 |
keyStretch |
int |
鍵生成時のストレッチ回数。 デフォルト値は2048。 |
cipherAlgorithm |
String |
ブロック暗号化のアルゴリズム。
デフォルト値は |
keyLength |
int |
鍵長。デフォルト値は128。 |
keyPassword |
String |
鍵生成の元となるパスワード文字列。 |
KeyStoreファイルを用いた暗号化を行います。
classにorg.iplass.mtp.impl.properties.extend.crypt.KeyStoreEncryptionSettingを指定します。
| 項目 | 値 | 説明 |
|---|---|---|
version |
String |
暗号化アルゴリズム設定のバージョン。 複数のencryptionSettings定義でそれぞれ一意な番号を指定する。 |
cipherAlgorithm |
String |
ブロック暗号化のアルゴリズム。
デフォルト値は |
keyLength |
int |
鍵長。デフォルト値は128。 |
keyStoreType |
String |
秘密鍵を保存するkeyStoreのタイプ。
デフォルト値は |
keyStoreFilePath |
String |
keyStoreファイルのファイルパス。 |
keyStorePassword |
String |
keyStoreのパスワード。 |
keyAlias |
String |
keyStore内に格納されている秘密鍵のエイリアス名。 |
keyPassword |
String |
keyStore内に格納されている秘密鍵取得のためのパスワード。 |
設定例
<service>
<interface>org.iplass.mtp.impl.properties.extend.crypt.PropertyEncryptionService</interface>
<property name="encryptionSettings" class="org.iplass.mtp.impl.properties.extend.crypt.PBKDF2EncryptionSetting">
<property name="version" value="1" />
<property name="keyPassword" value="yourOwnPass" />
</property>
<property name="encryptionSettings" class="org.iplass.mtp.impl.properties.extend.crypt.KeyStoreEncryptionSetting">
<property name="version" value="2" />
<property name="keyStoreFilePath" value="yourOwnKeyStoreFilePass" />
<property name="keyStorePassword" value="yourOwnKeyStorePassword" />
<property name="keyAlias" value="yourOwnKeyAliasName" />
<property name="keyPassword" value="yourOwnKeyPassword" />
</property>
<!--
By default the secret key is cached in memory.
For enhanced security,
set cachePrivateKeyInMemory to false if you do not want to cache secret keys in memory.
-->
<property name="cachePrivateKeyInMemory" value="true" />
</service>
keyPassword、keyStorePasswordは秘匿情報なので、取り扱いに注意してください。 設定ファイルのアクセス権を厳重にする、または設定ファイルの難読化を施すなどの対策をしてください。
3.56. PushNotificationService
プッシュ通知テンプレートの定義(メタデータ)の管理と、モバイル端末へのプッシュ通知を行うためのサービスです。 プッシュ通知サービスの実装としてFirebase Cloud Messaging(FCM)を利用したモジュールを標準提供します。
インタフェース名
org.iplass.mtp.impl.pushnotification.PushNotificationService
実装クラス名
org.iplass.mtp.impl.pushnotification.fcmv1.PushNotificationService org.iplass.mtp.impl.pushnotification.fcm.FCMPushNotificationService (1)
| 1 | FCM HTTP v1 API に対応した PushNotificationService の提供に合わせて FCMPushNotificationService は非推奨となりました。 |
PushNotificationService(FCM HTTP v1 API)の設定
FCM HTTP v1 API を利用する PushNotificationService を設定します。
本サービスは GoogleCloudSettings に依存しています。利用する場合は service-config の設定に GoogleCloudSettings を記載する必要があります。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
projectId |
String、必須 |
利用する Firebase(Google) プロジェクトのプロジェクトIDを設定します。 |
compressRequest |
boolean |
このパラメータがtrueに設定されている場合、FCM 呼び出し時 HTTP リクエストメッセージを圧縮します。未指定の場合のデフォルト値は true です。 |
apiRequestValidateOnly |
boolean |
このパラメータがtrueに設定されている場合、FCM呼び出し時 validate_only キーの値を true に設定します(FCMは実際にメッセージを送信せず、リクエストをテストすることができます)。未指定の場合のデフォルト値は false です。 |
enableRetry |
boolean |
FCM呼び出しに失敗しリトライ可能なエラーであった場合、リトライするかどうか。未指定の場合のデフォルト値はtrueです。 |
exponentialBackoff |
ExponentialBackoffクラスのプロパティにてリトライ処理する際の 指数バックオフ の設定。 |
|
defaultRetryAfterSeconds |
int |
FCM呼び出し後のレスポンスヘッダーに |
httpClientConfig |
WebApi呼び出し時のHTTPコネクションに関する設定。 |
|
registrationTokenHandler |
FCM 通知のリクエストを実行した結果 RegistrationToken が登録されていないと通知された場合、Token を処理する実装クラスを設定する。未指定の場合は何も処理しません。 |
|
listener |
PushNotificationListener、複数指定可 |
PushNotificationを送信した際のListener。 |
FCMPushNotificationServiceの設定(非推奨)
FCM Legacy API を利用する、PushNotificationServiceを設定します。
FCMPushNotificationService は非推奨となりました。FCM HTTP v1 API を利用する PushNotificationService への移行を検討してください。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
authorizationKey |
String、必須 |
FCMで発行される認証のためのサーバキー。 |
enableRetry |
boolean |
FCM呼び出しに失敗しリトライ可能なエラーであった場合、リトライするかどうか。 未指定の場合のデフォルト値はtrueです。 |
exponentialBackoff |
ExponentialBackoffクラスのプロパティにてリトライ処理する際の 指数バックオフ の設定。 |
|
registrationIdHandler |
registrationIdが存在しなかった場合や正規のRegistrationIdが存在するとFCMから通知された場合、その通知を処理するためのRegistrationIdHandlerの実装クラス。 未指定の場合は何も処理しません。 |
|
httpClientConfig |
WebApi呼び出し時のHTTPコネクションに関する設定。 |
|
listener |
PushNotificationListener、複数指定可 |
PushNotificationを送信した際のListener。 |
dryRun |
boolean |
FCM呼び出し時、このパラメータがtrueに設定されている場合、FCMは実際にメッセージを送信せず、リクエストをテストすることができます。未指定の場合のデフォルト値はfalseです。 |
endpoint |
String |
FCM呼び出しを行うエンドポイントのURL。未指定の場合のデフォルト値は |
classはorg.iplass.mtp.impl.http.ExponentialBackoffを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
retryIntervalMillis |
int |
リトライ間隔をミリ秒で指定します。デフォルト値は500です。 |
randomizationFactor |
double |
リトライ時のランダム要素。 0.5の場合、retryIntervalMillisに指定した値が上下25%の範囲で変動します。デフォルト値は0.5です。 |
multiplier |
double |
リトライ時のリトライ間隔の指数要素。 1.5の、retryIntervalMillisが500の場合、2回目のリトライは750ms、3回目のリトライは1125msのリトライ間隔で行われます。デフォルト値は1.5です。 |
maxIntervalMillis |
int |
最大リトライ間隔です。 デフォルト値は60000(1分)です。 |
maxElapsedTimeMillis |
int |
最大のリトライ実行時間。 この時間の間にリトライ処理が成功しなかった場合は、リトライ処理を完了し、アプリケーション側にその時点までの結果を返却します。 デフォルト値は300000(5分)です。 |
classはorg.iplass.mtp.pushnotification.fcm.RegistrationIdHandlerの実装クラスを指定します。
標準で、単純にログ出力を行うorg.iplass.mtp.impl.pushnotification.fcm.LoggingRegistrationIdHandlerを提供します。 LoggingRegistrationIdHandlerは設定変更可能な項目はありません。
classはorg.iplass.mtp.pushnotification.fcmv1.RegistrationTokenHandlerの実装クラスを指定します。
標準で提供する機能は存在しません。
classはorg.iplass.mtp.impl.http.HttpClientConfigを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
proxyHost |
String |
proxyを利用する場合のHost名。 |
proxyPort |
int |
proxyを利用する場合のport。 |
connectionTimeout |
int |
HTTPコネクションを確立する際のタイムアウト(ミリ秒)。デフォルト値は30000(30秒)です。 |
soTimeout |
int |
HTTP通信時のsocket timeout (SO_TIMEOUT)をミリ秒で指定します。デフォルト値は30000(30秒)です。 |
poolingMaxTotal |
int |
httpコネクションのプールの最大数。デフォルト値は20です。 |
poolingDefaultMaxPerRoute |
int |
ドメイン単位のhttpコネクションの最大数。デフォルト値は2です。 |
poolingTimeToLive |
int |
プールされているhttpコネクションの生存期間(ミリ秒)。デフォルトは無制限です。 |
httpClientBuilderFactory |
カスタムのHttpClientBuilderを生成したい場合に指定します。 |
classはorg.iplass.mtp.impl.http.HttpClientBuilderFactoryを実装するクラスを指定します。
標準で以下のHttpClientBuilderFactoryを提供します。
classはorg.iplass.mtp.pushnotification.PushNotificationListenerの実装クラスを指定します。
標準で以下のPushNotificationListenerを提供します。
classはorg.iplass.mtp.impl.micrometer.metrics.pushnotification.MetricsPushNotificationListenerを指定します。
Micrometerによるメトリクス収集機能を追加したPushNotificationListenerです。 設定変更可能な項目はありません。
設定例
<service>
<interface>org.iplass.mtp.impl.pushnotification.PushNotificationService</interface>
<class>org.iplass.mtp.impl.pushnotification.fcmv1.PushNotificationService</class>
<property name="projectId" value="[set Firebase(Google) Project Id]" />
<property name="compressRequest" value="true" />
<property name="apiRequestValidateOnly" value="false" />
<property name="enableRetry" value="true" />
<property name="exponentialBackoff" class="org.iplass.mtp.impl.http.ExponentialBackoff">
<property name="retryIntervalMillis" value="500" />
<property name="randomizationFactor" value="0.5" />
<property name="multiplier" value="1.5" />
<property name="maxIntervalMillis" value="60000" />
<property name="maxElapsedTimeMillis" value="300000" />
</property>
<property name="defaultRetryAfterSeconds" value="60" />
<property name="httpClientConfig" class="org.iplass.mtp.impl.http.HttpClientConfig">
<property name="proxyHost" value="xxxxxx.dentsusoken.com" />
<property name="proxyPort" value="8080" />
</property>
<!--
org.iplass.mtp.pushnotification.fcmv1.RegistrationTokenHandler の実装クラスを指定可能。
-->
<!--
<property name="registrationTokenHandler" class="[set class of implements org.iplass.mtp.pushnotification.fcmv1.RegistrationTokenHandler]" />
-->
<!-- PushNotificationListener 実装クラス。複数設定可能 -->
<!--
<property name="listener" class="[set class of implements org.iplass.mtp.pushnotification.PushNotificationListener]" />
<property name="listener" class="[set class of implements org.iplass.mtp.pushnotification.PushNotificationListener]" />
-->
</service>
3.57. QueryService
EQLの外部ヒント句を管理するサービスです。
インタフェース名
org.iplass.mtp.impl.query.QueryService
実装クラス名
org.iplass.mtp.impl.query.QueryService
QueryServiceの設定
QueryServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
externalHintFile |
String |
ヒント句の外だし機能を利用する場合、ヒント句を設定するプロパティファイルのパス(もしくはclasspath上のリソースパス)。 |
externalHints |
HintComment、複数指定可 |
nameに外部ヒント名、valueにヒント句。 |
externalHintFileにプロパティファイルのパスを設定した場合、キー名と対応するヒント句を指定します。
hint1=native(q0t0, 'FORCE INDEX(obj_store__USER_ISTR_index_3)') hint2=native(q0t0, 'FORCE INDEX(obj_store__USER_ISTR_index_1)') : :
EQLにて外部ヒントを利用するには、EQL文で@hint(keyName)を指定することで、プロパティファイルやexternalHintsで指定したヒント句を読み込めます。
以下のようにEQL文の中に@hintを指定します。
select /*+ @hint(hint1) */ propA, propB, refX.name from HogeEntity where refX.propFuga='piyo'
内部では@hintの内容が展開され、以下のようになります。
select /*+ native(q0t0, 'FORCE INDEX(obj_store__USER_ISTR_index_3)') */ propA, propB, refX.name from HogeEntity where refX.propFuga='piyo'
また、org.iplass.mtp.entity.query.hint.Hint#externalHint(String key)メソッドを呼び出すことで、Hint句をJavaインスタンスとして取得できます。
設定例
<service>
<interface>org.iplass.mtp.impl.query.QueryService</interface>
<!--
if use external hint, set propertyFile path(file path or classpath's resource path) or add inline.
-->
<!--
<property name="externalHintFile" value="/externalHint.properties" />
<property name="externalHints">
<property name="hint1" value="native(...)" />
<property name="hint2" value="index(...)" />
</property>
-->
</service>
3.58. RdbAdapterService
各種RDBとのインターフェースとなるRdbAdapterを管理するサービスです。
インタフェース名
org.iplass.mtp.impl.rdb.adapter.RdbAdapterService
実装クラス名
org.iplass.mtp.impl.rdb.adapter.RdbAdapterService
RdbAdapterServiceの設定
RdbAdapterを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
adapter |
標準のRdbAdapterの設定。 |
|
"adapter"以外の任意の文字列 |
RdbAdapter、複数指定可 |
RdbAdapterの設定。 |
classはorg.iplass.mtp.impl.rdb.adapter.RdbAdapterの実装クラスを指定します。
標準で
-
Oracleを利用するorg.iplass.mtp.impl.rdb.oracle.OracleRdbAdapter
-
MySQLを利用するorg.iplass.mtp.impl.rdb.mysql.MysqlRdbAdapter
-
PostgreSQLを利用するorg.iplass.mtp.impl.rdb.postgresql.PostgreSQLRdbAdapter
-
SQL Serverを利用するorg.iplass.mtp.impl.rdb.sqlserver.SqlServerRdbAdapter
を提供します。各々のRdbAdapterの設定可能な項目は以下になります。
Oracleを利用するRdbAdapterです。 以下の項目を設定可能です。
| 項目 | 値 | 説明 | ||
|---|---|---|---|---|
lockTimeout |
int |
行レベルロックが解放されるまでのタイムアウト(秒)。0が設定された場合はロックの解放を待ちません(FOR UPDATE NOWAIT)。マイナスの値が設定された場合はロックが解放されるまで待機します。デフォルト値は0です。 |
||
timestampFunction |
String |
タイムスタンプを取得するFunction。デフォルト値は |
||
addMonthsFunction |
String |
月を加算するFunction。デフォルト値は |
||
monthsBetweenFunction |
String |
2つの日付の差を取得するFunction。デフォルト値は |
||
isUseSubQueryForIndexJoin |
boolean |
相関副問い合わせを使ってIndexテーブルを利用した結合を行うか。デフォルト値はtrueです。 |
||
optimizerHint |
String |
オプティマイザ・ヒント。デフォルト値は |
||
enableInPartitioning |
boolean |
IN演算子の1000件制限を緩和する変換処理を行うか。デフォルト値はfalseです。 緩和する変換処理とは、IN(1,2,…)を1000件単位で(IN(1,2,…) OR IN(1001, 1002,…))とORで分割することです。 |
||
escapeFullwidthWildcard |
boolean |
全角文字 |
||
enableBindHint |
boolean |
bindヒント句を有効にするか。デフォルト値はtrueです。 |
||
alwaysBind |
boolean |
EQLをSQLに変換する際に常にバインド変数化するか。デフォルト値はtrueです。 |
||
thresholdCountOfUsePrepareStatement |
int |
複数の更新(追加)を一括で処理する際の、PrepareStatementを利用するかを判断するための閾値。デフォルト値は50です。 |
||
batchSize |
int |
バッチ更新を利用する際の推奨バッチサイズ。デフォルト値は100です。 |
||
maxFetchSize |
int |
フェッチする際の最大サイズ。デフォルト値は100です。 |
||
defaultFetchSize |
int |
フェッチする際のデフォルトサイズ。デフォルト値は0です。 0が指定された場合の実際のフェッチサイズはJDBCドライバに依存します。 |
||
defaultQueryTimeout |
int |
クエリ実行時のタイムアウト(秒)。0が指定された場合はタイムアウトしません。デフォルト値は0です。 |
||
useFetchFirstClause |
boolean |
Oracle 12cから利用可能なFETCH FIRST句を使うか。デフォルト値はtrueです。 |
||
rdbTimeZone |
String |
RDBのタイムゾーンがiPLAssが動作するJVMのものと異なる場合、RDBのタイムゾーンを指定します。 |
||
maxViewNameLength |
int |
ビュー名の最大長。デフォルト値は128です。 |
||
listaggDefaultSeparator |
String |
LISTAGG集約関数利用時のデフォルトのセパレータです。デフォルト値は |
||
bindDateAsString |
boolean |
Date型をPrepareStatementでバインドする際にjava.sql.Date型で直接バインドせず、TO_DATE関数経由でString型でバインドするか否かを設定します。デフォルトはtrueです。
|
MySQLを利用するRdbAdapterです。 以下の項目を設定可能です。
| 項目 | 値 | 説明 | ||
|---|---|---|---|---|
useFractionalSecondsOnTimestamp |
boolean |
タイムスタンプにミリ秒含めるか。デフォルト値はtrueです。 |
||
supportOptimizerHint |
boolean |
オプティマイザヒントをサポートするか。デフォルト値はtrueです。 |
||
optimizeCountQuery |
boolean |
件数カウントクエリーを最適化するかどうか。デフォルト値はtrueです。 |
||
localTemporaryTableManageOutsideTransaction |
boolean |
ローカル一時テーブルをトランザクションの外で管理するかを指定します。デフォルト値はfalseです。 |
||
localTemporaryTableCreatedByDataSource |
boolean |
ローカル一時テーブルがデータソースで作成されるかを指定します。デフォルト値はfalseです。 |
||
timestampMethod |
String |
タイムスタンプ取得関数。デフォルト値は |
||
enableBindHint |
boolean |
bindヒント句を有効にするか。デフォルト値はfalseです。 |
||
batchSize |
int |
バッチ更新を利用する際の推奨バッチサイズ。デフォルト値は100です。 |
||
thresholdCountOfUsePrepareStatement |
int |
複数の更新(追加)を一括で処理する際の、PrepareStatementを利用するかを判断するための閾値。デフォルト値は-1です。 |
||
maxFetchSize |
int |
フェッチする際の最大サイズ。デフォルト値は100です。 |
||
defaultFetchSize |
int |
フェッチする際のデフォルトサイズ。デフォルト値は-1(明示的にセットしない)です。 0が指定された場合の実際のフェッチサイズはJDBCドライバに依存します。 |
||
defaultQueryTimeout |
int |
クエリ実行時のタイムアウト(秒)。0が指定された場合はタイムアウトしません。デフォルト値は0です。 |
||
supportWindowFunction |
boolean |
Window関数をサポートするか。デフォルト値はtrueです。Window関数をサポートしないバージョン5.7以前のMySQLを利用の場合はfalseを設定してください。 |
||
rdbTimeZone |
String |
RDBのタイムゾーンがiPLAssが動作するJVMのものと異なる場合、RDBのタイムゾーンを指定します。 |
||
maxViewNameLength |
int |
ビュー名の最大長。デフォルト値は64です。 |
||
listaggDefaultSeparator |
String |
LISTAGG集約関数利用時のデフォルトのセパレータです。デフォルト値は |
||
needMultiTableTrick |
boolean |
UPDATE/DELETE文発行時、条件にサブクエリが利用される場合のパフォーマンス改善対策を実施するか否か。デフォルトはfalseです。
|
PostgresSQLを利用するRdbAdapterです。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
supportOptimizerHint |
boolean |
オプティマイズヒントをサポートするか。デフォルト値はfalseです。 |
timestampFunction |
String |
タイムスタンプを取得するFunction。デフォルト値は |
escapeBackslash |
boolean |
バックスラッシュをエスケープするか。デフォルト値はfalseです。 |
enableBindHint |
boolean |
bindヒント句を有効にするか。デフォルト値はfalseです。 |
batchSize |
int |
バッチ更新を利用する際の推奨バッチサイズ。デフォルト値は100です。 |
maxFetchSize |
int |
フェッチする際の最大サイズ。デフォルト値は100です。 |
defaultFetchSize |
int |
フェッチする際のデフォルトサイズ。デフォルト値は10です。 0が指定された場合の実際のフェッチサイズはJDBCドライバに依存します。 |
defaultQueryTimeout |
int |
クエリ実行時のタイムアウト(秒)。0が指定された場合はタイムアウトしません。デフォルト値は0です。 |
lockTimeout |
int |
ロック時のタイムアウト(秒)。0が指定された場合はタイムアウトしません。デフォルト値は0です。 |
rdbTimeZone |
String |
RDBのタイムゾーンがiPLAssが動作するJVMのものと異なる場合、RDBのタイムゾーンを指定します。 |
maxViewNameLength |
int |
ビュー名の最大長。デフォルト値は63です。 |
listaggDefaultSeparator |
String |
LISTAGG集約関数利用時のデフォルトのセパレータです。デフォルト値は |
useStandardListaggFunction |
boolean |
SQL2016標準ベースのLISTAGG集約関数表現を利用するか否かを設定します。 falseの場合はSTRING_AGGを利用します。 デフォルト値はfalseです。 |
SQL Serverを利用するRdbAdapterです。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
timestampFunction |
String |
タイムスタンプを取得するFunction。デフォルト値は |
addMonthsFunction |
String |
月を加算するFunction。デフォルト値は |
monthsBetweenFunction |
String |
2つの日付の差を取得するFunction。デフォルト値は |
isUseSubQueryForIndexJoin |
boolean |
相関副問い合わせを使ってIndexテーブルを利用した結合を行うか。デフォルト値はtrueです。 |
enableBindHint |
boolean |
bindヒント句を有効にするか。デフォルト値はfalseです。 |
alwaysBind |
boolean |
EQLをSQLに変換する際に常にバインド変数化するか。デフォルトはfalseです。 SQL Serverではプロシージャが持つことのできるパラメーター数の最大が2,100個のためtrueに設定する場合はこの最大数を超えないようにしてください。 |
batchSize |
int |
バッチ更新を利用する際の推奨バッチサイズ。デフォルト値は100です。 |
thresholdCountOfUsePrepareStatement |
int |
複数の更新(追加)を一括で処理する際の、PrepareStatementを利用するかを判断するための閾値。デフォルト値は50です。 |
maxFetchSize |
int |
フェッチする際の最大サイズ。デフォルト値は100です。 |
defaultFetchSize |
int |
フェッチする際のデフォルトサイズ。デフォルト値は0です。 0が指定された場合の実際のフェッチサイズはJDBCドライバに依存します。 |
defaultQueryTimeout |
int |
クエリ実行時のタイムアウト(秒)。0が指定された場合はタイムアウトしません。デフォルト値は0です。 |
lockTimeout |
int |
行レベルロックが解放されるまでのタイムアウト(秒)。0が設定された場合はロックの解放を待ちません(NOWAIT)。 マイナスの値が設定された場合はロックが解放されるまで待機します。デフォルト値は0です。 |
optimizerHint |
String |
オプティマイザ・ヒント。デフォルト値は |
rdbTimeZone |
String |
RDBのタイムゾーンがiPLAssが動作するJVMのものと異なる場合、RDBのタイムゾーンを指定します。 |
timeZoneMap |
Map形式 |
javaのTime Zone IDとSQL Server上でのTime Zone IDのマッピングを定義します。nameにJavaのTime Zone ID、valueにSQL ServerのTime Zone IDを指定する形で定義します。 |
maxViewNameLength |
int |
ビュー名の最大長。デフォルト値は128です。 |
listaggDefaultSeparator |
String |
LISTAGG集約関数利用時のデフォルトのセパレータです。デフォルト値は |
設定例
<service>
<interface>org.iplass.mtp.impl.rdb.adapter.RdbAdapterService</interface>
<!--
for oracle
::configable property::
lockTimeout :
(seconds), 0=for update no wait, -1=for update
enableInPartitioning :
enables IN clause's limitation avoidance (do partition IN clause by 1000 items unit).
escapeFullwidthWildcard :
when use oracle11gR2patch2(11.2.0.2.0) or before, set true this property
optimizerHint :
default hint clause of SQL generated by EQL.
useFetchFirstClause :
use FETCH FIRST clause rather than use ROWNUM (on oracle 12c).
-->
<property name="adapter" class="org.iplass.mtp.impl.rdb.oracle.OracleRdbAdapter" inherit="false">
<property name="lockTimeout" value="0" />
<property name="enableInPartitioning" value="false" />
<property name="escapeFullwidthWildcard" value="false" />
<property name="optimizerHint" value="FIRST_ROWS(100)" />
<property name="alwaysBind" value="true" />
<property name="thresholdCountOfUsePrepareStatement" value="50" />
<property name="batchSize" value="100" />
<property name="defaultQueryTimeout" value="0" />
<property name="useFetchFirstClause" value="false" />
</property>
<!--
for mysql
::configable property::
supportOptimizerHint :
mysql5.7から利用可能なOptimizer Hintsを利用する場合trueを設定
-->
<property name="adapter" class="org.iplass.mtp.impl.rdb.mysql.MysqlRdbAdaptor" inherit="false">
<property name="defaultQueryTimeout" value="0" />
<property name="supportOptimizerHint" value="false" />
</property>
<!-- for postgresql -->
<property name="postgresql"
class="org.iplass.mtp.impl.rdb.postgresql.PostgreSQLRdbAdapter" inherit="false" />
<!--
for sqlserver
::configable property::
lockTimeout :
(seconds), 0=for update no wait, -1=for update
optimizerHint :
default hint clause of SQL generated by EQL.
-->
<property name="adapter" class="org.iplass.mtp.impl.rdb.sqlserver.SqlServerRdbAdapter" inherit="false">
<property name="alwaysBind" value="false" />
<property name="defaultQueryTimeout" value="0" />
<property name="lockTimeout" value="0" />
<property name="optimizerHint" value="FAST 100" />
<property name="rdbTimeZone" value="Asia/Tokyo" />
<property name="timeZoneMap">
<property name="Asia/Tokyo" value="Tokyo Standard Time" />
<property name="America/Los_Angeles" value="Pacific Standard Time" />
:
:
</property>
</property>
</service>
3.59. RdbQueueService
RDBを利用したキューのサービスです。
インタフェース名
org.iplass.mtp.impl.async.rdb.RdbQueueService
実装クラス名
org.iplass.mtp.impl.async.rdb.RdbQueueService
RdbQueueServiceの設定
RdbQueueServiceを設定します。
設定項目
| 項目 | 値 | 説明 | ||||
|---|---|---|---|---|---|---|
useQueue |
boolean |
キューを使用するか。デフォルトはfalseです。 |
||||
queue |
非同期処理を実行するためのキュー。 標準で以下のキューが定義されています。
|
|||||
cleanupHistoryOnInit |
boolean |
サービス初期化時に履歴を削除するか。デフォルトはfalseです。 |
||||
historyHoldDay |
int |
履歴を削除する際に何日分の履歴を残すか。デフォルトは1です。 |
||||
workerFactory |
カスタムでWorkerを生成するFactoryクラスを設定します。未指定の場合は、org.iplass.mtp.impl.async.rdb.DefaultWorkerFactoryが設定されます。 |
classはorg.iplass.mtp.impl.async.rdb.QueueConfigを指定します。
| 項目 | 値 | 説明 |
|---|---|---|
id |
int |
一意なID。 0、1は既に定義されているのでそれ以外を設定してください。 |
name |
String |
キューの名前。 非同期タスクがキューを選択する際に表示されます。 |
resultRemainingTime |
long |
タスクを履歴に移動する時間(ミリ秒)。現在から設定した時間より以前のタスクが移動の対象になります。デフォルト値は86400000(1日)です。 |
strictSequence |
boolean |
タスクにGroupingKeyが設定され、strictSequenceがtrueの場合、タスクIDはグループ毎にシーケンシャルに設定されます。 |
selectWorkerOnSubmit |
boolean |
GroupingKeyが未設定のタスクにワーカーを割り振るか。デフォルト値はfalseです。 |
worker |
キューを処理するワーカー。 |
classはorg.iplass.mtp.impl.async.rdb.WorkerConfigを指定します。
| 項目 | 値 | 説明 |
|---|---|---|
pollingInterval |
long |
キューをポーリングする間隔(ミリ秒)。デフォルト値は30000です。 |
actualWorkerSize |
int |
キューを並列で処理する実ワーカーの数。デフォルト値は1です。 |
virtualWorkerSize |
int |
キューに割り当てる仮想ワーカーの数。デフォルト値は16です。virtualWorkerSizeはシステム内において同一のキュー定義には同じ値を設定します。それぞれの仮想ワーカーは実ワーカーに割り当てられます。 |
executionTimeout |
long |
処理のタイムアウト時間(ミリ秒)。デフォルト値は180000です。 |
restartDelay |
long |
タスクのリトライ間隔(ミリ秒)。デフォルト値は30000です。 |
maxRetryCount |
int |
タスクのリトライ回数。デフォルトは100です。 |
wakeupOnSubmit |
boolean |
タスクがサブミットされた後、即座に次のタスクを起動するか。デフォルト値はtrueです。
現状 |
trace |
boolean |
ログを出力するか。デフォルト値はtrueです。 |
local |
boolean |
キューに格納されたタスクをローカルで処理するか、リモートで分散処理するか。デフォルト値はtrueです。 分散処理する場合(local=false)
次の形式のシステムプロパティにて、このノードが実行するワーカーIDを明示的に指定します。ワーカIDは0からactualWorkerSizeに指定される値未満の番号までの連番です。 mtp.async.rdb.workers=[queueName]:[id]:[id],… 例: このノードではdefaultキューのワーカーID0と2、entityuploadキューのワーカーID0、2、4に割り当てられたタスクを実行します。 |
newProcessPerTask |
boolean |
ワーカーを新しい別プロセスで実行するか否か。デフォルト値はfalseです。 |
javaCommand |
String |
ワーカーを別プロセスで起動する場合の、Javaを起動するためのコマンド。 |
vmArgs |
String、複数指定可 |
|
redirectFile |
String |
プロセスの標準出力先、標準エラー出力先となるファイル。 |
classはorg.iplass.mtp.impl.async.rdb.WorkerFactoryの実装クラスを指定します。
標準で、以下のWorkerFactoryを提供します。
classはorg.iplass.mtp.impl.async.rdb.DefaultWorkerFactoryを指定します。
デフォルトのWorkerFactoryです。設定変更可能な項目はありません。
classはorg.iplass.mtp.impl.micrometer.metrics.async.MetricsWorkerFactoryを指定します。
メトリクス収集用のWorkerFactoryです。非同期処理の成功/失敗、タイムアウト数、処理時間をメトリクスとして収集するWorkerを生成します。
また、同一プロセス内で実行されたWorkerのメトリクスを収集します。
Micrometerモジュールを依存関係に追加した場合に設定可能です。設定変更可能な項目はありません。
設定例
<service>
<interface>org.iplass.mtp.impl.async.rdb.RdbQueueService</interface>
<!-- if use async rdb service set to true -->
<property name="useQueue" value="true" />
<property name="queue" class="org.iplass.mtp.impl.async.rdb.QueueConfig" additional="true">
<property name="id" value="2" />
<property name="name" value="customQueue" />
<property name="worker" class="org.iplass.mtp.impl.async.rdb.WorkerConfig">
<property name="pollingInterval" value="60000" />
<property name="actualWorkerSize" value="1" />
</property>
</property>
<property name="queue" class="org.iplass.mtp.impl.async.rdb.QueueConfig" additional="true">
<property name="id" value="3" />
<property name="name" value="customProcessWorkerQueue" />
<property name="worker" class="org.iplass.mtp.impl.async.rdb.WorkerConfig">
<property name="pollingInterval" value="60000" />
<property name="actualWorkerSize" value="1" />
<property name="newProcessPerTask" value="true" />
<property name="javaCommand" value="java" />
<property name="vmArgs" value="-cp" />
<property name="vmArgs" value="/build/classes/:/build/lib/*" />
<property name="vmArgs" value="-Dmtp.config=/worker-service-config.xml" />
</property>
</property>
</service>
3.60. RedisService
Redisを管理するサービスです。
インタフェース名
org.iplass.mtp.impl.redis.RedisService
実装クラス名
org.iplass.mtp.impl.redis.RedisService
RedisServiceの設定
RedisServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
redisServers |
RedisServer、複数指定可 |
Redisサーバの設定。 |
以下の項目が設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
serverName |
String |
RedisServerの識別子となるサーバ名。 |
host |
String |
Redisサーバのホスト。 |
port |
int |
Redisサーバのポート番号。デフォルト値は6379です。 |
timeout |
long |
接続タイムアウト。 |
database |
int |
データベース番号。 |
userName |
String |
ユーザー名。 |
password |
String |
パスワード。 |
ssl |
boolean |
SSL通信を行う場合はtrueを設定します。デフォルト値はfalseです。 |
設定例
<service>
<interface>org.iplass.mtp.impl.redis.RedisService</interface>
<property name="redisServers">
<property name="serverName" value="RedisServer-1" />
<property name="host" value="192.168.0.1" />
<property name="port" value="6379" />
</property>
<property name="redisServers">
<property name="serverName" value="RedisServer-2" />
<property name="host" value="192.168.0.2" />
<property name="port" value="6379" />
</property>
</service>
3.61. RelativeRangeService
集計機能やEntityListingの日付の検索条件で、相対範囲を独自に追加するためのサービスです。
インタフェース名
org.iplass.mtp.impl.view.relativerange.RelativeRangeService
実装クラス名
org.iplass.mtp.impl.view.relativerange.RelativeRangeService
RelativeRangeServiceの設定
RelativeRangeServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
relativeRanges |
RelativeRange、複数指定可 |
カスタム相対範囲の設定。 |
classはorg.iplass.mtp.view.relativerange.RelativeRangeを指定します。
カスタム相対範囲です。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
relativeRangeName |
String |
カスタム相対範囲名。 |
displayLabel |
String |
表示ラベル。 |
localizedDisplayLabel |
LocalizedDisplayLabel、複数指定可 |
言語毎の表示ラベルの設定。 |
converter |
String |
変換ロジッククラス。 |
classはorg.iplass.mtp.view.relativerange.LocalizedDisplayLabelを指定します。
言語毎の表示ラベルです。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
locale |
String |
ロケール。 |
displayLabel |
String |
表示ラベル。 |
設定例
<service>
<interface>org.iplass.mtp.impl.view.relativerange.RelativeRangeService</interface>
<class>org.iplass.mtp.impl.view.relativerange.RelativeRangeService</class>
<!-- デフォルトのカスタム相対範囲 -->
<property name="relativeRanges" class="org.iplass.mtp.view.relativerange.RelativeRange">
<property name="relativeRangeName" value="firstHalfOfThisFiscalYear" />
<property name="displayLabel" value="今年度上期" />
<property name="localizedDisplayLabel" class="org.iplass.mtp.view.relativerange.LocalizedDisplayLabel">
<property name="locale" value="ja" />
<property name="displayLabel" value="今年度上期" />
</property>
<property name="localizedDisplayLabel" class="org.iplass.mtp.view.relativerange.LocalizedDisplayLabel">
<property name="locale" value="en" />
<property name="displayLabel" value="First half of this fiscal year" />
</property>
<property name="converter" class="sample.FirstHalfRelativeRangeConverter" />
</property>
<property name="relativeRanges" class="org.iplass.mtp.view.relativerange.RelativeRange">
<property name="relativeRangeName" value="secondHalfOfThisFiscalYear" />
<property name="displayLabel" value="今年度下期" />
<property name="localizedDisplayLabel" class="org.iplass.mtp.view.relativerange.LocalizedDisplayLabel">
<property name="locale" value="ja" />
<property name="displayLabel" value="今年度下期" />
</property>
<property name="localizedDisplayLabel" class="org.iplass.mtp.view.relativerange.LocalizedDisplayLabel">
<property name="locale" value="en" />
<property name="displayLabel" value="2nd half of this fiscal year" />
</property>
<property name="converter" class="sample.SecondHalfRelativeRangeConverter" />
</property>
</service>
3.62. ReportingEngineService
帳票出力を管理するサービスです。
インタフェース名
org.iplass.mtp.impl.report.ReportingEngineService
実装クラス名
org.iplass.mtp.impl.report.ReportingEngineServiceImpl
ReportingEngineServiceの設定
ReportingEngineServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
reportingEngine |
ReportingEngine、複数指定可 |
帳票出力エンジンの設定。 |
classにorg.iplass.mtp.impl.report.ReportingEngineの実装クラスを指定します。
標準で以下のReportingEngineを提供します。
Jasper Reportを利用して帳票を作成するためのエンジンです。
classはorg.iplass.mtp.impl.report.JasperReportingEngineを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
supportFiles |
String、複数指定可 |
サポート対象のファイル形式。 |
Apache POIを利用して帳票を作成するためのエンジンです。
classはorg.iplass.mtp.impl.report.PoiReportingEngineを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
supportFiles |
String、複数指定可 |
サポート対象のファイル形式。 |
JXLSを利用して帳票を作成するためのエンジンです。
classはorg.iplass.mtp.impl.report.JxlsReportingEngineを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
supportFiles |
String、複数指定可 |
サポート対象のファイル形式。 |
設定例
<service>
<interface>org.iplass.mtp.impl.report.ReportingEngineService</interface>
<class>org.iplass.mtp.impl.report.ReportingEngineServiceImpl</class>
<property name="repotingEngine" class="org.iplass.mtp.impl.report.JasperReportingEngine">
<property name="supportFiles" value="PDF"/>
<property name="supportFiles" value="XLS"/>
<property name="supportFiles" value="XLSX"/>
</property>
<property name="repotingEngine" class="org.iplass.mtp.impl.report.PoiReportingEngine">
<property name="supportFiles" value="XLS_POI"/>
<property name="supportFiles" value="XLSX_POI"/>
<property name="supportFiles" value="XLSX_SXSSF_POI"/>
</property>
<property name="repotingEngine" class="org.iplass.mtp.impl.report.JxlsReportingEngine">
<property name="supportFiles" value="XLS_JXLS"/>
<property name="supportFiles" value="XLSX_JXLS"/>
<property name="supportFiles" value="XLSX_SXSSF_JXLS"/>
</property>
</service>
3.63. SamlService
SAML認証を行うためのサービスです。 IdPとして動作させる場合、またSP側からIdPに送信するメッセージに署名を行う場合に証明書ストアの設定が必要です。
インタフェース名
org.iplass.mtp.impl.auth.authenticate.saml.SamlService
実装クラス名
org.iplass.mtp.impl.auth.authenticate.saml.SamlService
SamlServiceの設定
SAML認証を利用する場合、SamlServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
validateSchema |
boolean |
SAMLメッセージをXMLSchema定義に従っているかを検証します。デフォルト値はfalseです。 |
keyStore |
証明書ストアの設定です。 |
|
setAddressToSubjectConfirmationData |
boolean |
AssertionのSubjectConfirmationDataにAddressを含めるかどうか。デフォルト値はtrueです。 |
assertionLifetimeMinutes |
int |
SAMLアサーションの有効期間。デフォルト値は5(分)です。 |
allowedClockSkewMinutes |
int |
許容されるクロックスキュー時間。デフォルト値は5(分)です。 iPLAssがSPモードで動作する場合、SubjectConfirmationDataのNotOnOrAfterの検証時に考慮されます。 iPLAssがIdPモードで動作する場合、発行するSAMLアサーションの有効期間(SubjectConfirmationDataのNotOnOrAfter、及びConditionsのNotBefore、NotOnOrAfter)がこのクロックスキュー時間によって次のように拡張されます。
|
IdPとして動作させる場合、SP側(iPLAss側)でSAMLメッセージに署名を行う場合に定義が必要です。 秘密鍵及び証明書(以下エントリと記述)は、KeyStoreに格納します。 エントリは、複数登録可能です。 (複数の暗号化アルゴリズム対応するため、また証明書ロールオーバーのため)
classはorg.iplass.mtp.impl.auth.authenticate.saml.SamlKeyStoreを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
keyStoreType |
String |
KeyStoreのタイプ。デフォルト値は |
keyStoreFilePath |
String |
署名作成の為のエントリが格納されるKeyStoreのファイルパス。 |
keyStorePassword |
String |
KeyStoreのパスワード。 |
keyPassword |
String |
秘密鍵のkeyPassword。 |
myCertificate |
String、複数指定可 |
KeyStore内のエントリのうち、署名に利用するものを絞り込みたい場合にエントリのalias。 |
defaultSignatureAlgorithm |
String |
デフォルトの署名アルゴリズムを指定してください。デフォルト値は |
keyStoreReloadIntervalDays |
int |
keyStoreのファイルの再読み込み間隔(日数)。 未指定の場合は、リロードは行いません。 |
rollOverStrategy |
証明書の有効期間が迫った場合のロールオーバー方式。
デフォルト値は |
|
rollOverDaysBeforeExpire |
long |
rollOverStrategyが |
証明書の有効期間が迫った場合のロールオーバー方式を指定します。 複数の(新旧の)証明書がKeyStore内にある場合、どちらを利用するかを判断する方式です。
- OLDER
-
有効期間が切れるまで、有効期間が短い(NotAfterが古い)証明書を利用
- NEWER
-
有効期間内である証明書のうち、より有効期間が長い(NotAfterが新しい)証明書を利用
- BEFORE_N_DAYS
-
有効期間が切れるrollOverDaysBeforeExpire日前に切り替える
設定例
<service>
<interface>org.iplass.mtp.impl.auth.authenticate.saml.SamlService</interface>
<property name="keyStore" class="org.iplass.mtp.impl.auth.authenticate.saml.SamlKeyStore">
<property name="keyStoreFilePath" value="/app/.keystore" />
<property name="keyStorePassword" value="yourOwnKeyStorePassword" />
<property name="keyPassword" value="yourOwnKeyPassword" />
<property name="keyStoreReloadIntervalDays" value="1" />
<property name="rollOverStrategy" value="BEFORE_N_DAYS" />
<property name="rollOverDaysBeforeExpire" value="5" />
</property>
</service>
3.64. ScheduleService
スケジュールタスクの定義(メタデータ)を管理するサービスです。
インタフェース名
org.iplass.mtp.impl.scheduling.ScheduleService
実装クラス名
org.iplass.mtp.impl.scheduling.ScheduleService
ScheduleServiceの設定
ScheduleServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
systemUserId |
String |
スケジュールタスクを実行するシステムユーザーのID。
デフォルト値は |
設定例
<service>
<interface>org.iplass.mtp.impl.scheduling.ScheduleService</interface>
<class>org.iplass.mtp.impl.scheduling.ScheduleService</class>
<property name="systemUserId" value="id000001" />
</service>
3.65. ScimIdentityProviderService
SCIM Identity Provider 機能の動作を管理するサービスです。
インタフェース名
org.iplass.mtp.impl.webapi.scim.ScimIdentityProviderService
実装クラス名
org.iplass.mtp.impl.webapi.scim.ScimIdentityProviderService
ScimIdentityProviderService の設定
ScimIdentityProviderService を設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
entityReference |
ScimEntityReference 、複数指定可 |
SCIM リソース対象のエンティティ(mtp.auth.User, mtp.auth.Group)に対して、エンティティプロパティ設定、レスポンス作成の機能を提供します。 |
class に org.iplass.mtp.impl.webapi.scim.receive.reference.ScimEntityReference の実装クラスを指定します。
標準で以下の ScimEntityReference を提供します。
エンティティのリファレンス先が mtp.auth.User の値を解決します。
class は org.iplass.mtp.impl.webapi.scim.receive.reference.ScimUserEntityReference を指定します。 設定可能な項目はありません。
エンティティのリファレンス先が mtp.auth.Group の値を解決します。
class は org.iplass.mtp.impl.webapi.scim.receive.reference.ScimGroupEntityReference を指定します。 設定可能な項目はありません。
設定例
<!-- SCIM Identity Provider -->
<service>
<interface>org.iplass.mtp.impl.webapi.scim.ScimIdentityProviderService</interface>
<class>org.iplass.mtp.impl.webapi.scim.ScimIdentityProviderService</class>
<!-- エンティティのリファレンスプロパティ解決機能。User, Group はデフォルト定義 -->
<property name="entityReference" class="org.iplass.mtp.impl.webapi.scim.receive.reference.ScimUserEntityReference" />
<property name="entityReference" class="org.iplass.mtp.impl.webapi.scim.receive.reference.ScimGroupEntityReference" />
</service>
3.66. ScimServiceProviderService
SCIM Service Provider 機能の動作を管理するサービスです。
インタフェース名
org.iplass.mtp.impl.webapi.scim.ScimServiceProviderService
実装クラス名
org.iplass.mtp.impl.webapi.scim.ScimServiceProviderService
ScimServiceProviderService の設定
ScimServiceProviderService を設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
httpClientConfig |
HTTPクライアントの設定。 |
classはorg.iplass.mtp.impl.http.HttpClientConfigを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
connectionTimeout |
int |
HTTPコネクションを確立する際のタイムアウト(ミリ秒)。デフォルト値は30000(30秒)です。 |
soTimeout |
int |
HTTP通信時のsocket timeout (SO_TIMEOUT)(ミリ秒)。デフォルト値は30000(30秒)です。 |
poolingMaxTotal |
int |
httpコネクションのプールの最大数。デフォルト値は20です。 |
poolingDefaultMaxPerRoute |
int |
ドメイン単位のhttpコネクションの最大数。デフォルト値は2です。 |
poolingTimeToLive |
int |
プールされているhttpコネクションの生存期間(ミリ秒)。デフォルトは無制限です。 |
proxyHost |
String |
プロキシサーバのホスト。 |
proxyPort |
int |
プロキシサーバのポート番号。 |
httpClientBuilderFactory |
カスタムのHttpClientBuilderを生成したい場合に指定します。 |
設定例
<!-- SCIM Service Provider -->
<service>
<interface>org.iplass.mtp.impl.webapi.scim.ScimServiceProviderService</interface>
<class>org.iplass.mtp.impl.webapi.scim.ScimServiceProviderService</class>
<property name="httpClientConfig" class="org.iplass.mtp.impl.http.HttpClientConfig">
</property>
</service>
3.67. ScriptService
動的スクリプトの実行を管理するサービスです。
インタフェース名
org.iplass.mtp.impl.script.ScriptService
実装クラス名
org.iplass.mtp.impl.script.GroovyScriptService
ScriptServiceの設定
ScriptServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
debug |
boolean |
スクリプトのデバッグログの出力可否。 |
initScript |
String、複数指定可 |
初期化用のGroovyScript。 |
staticImport |
String、複数指定可 |
GroovyScriptにstaticインポートするメソッド。 |
設定例
<service>
<interface>org.iplass.mtp.impl.script.ScriptService</interface>
<class>org.iplass.mtp.impl.script.GroovyScriptService</class>
<property name="initScript" value="/org/iplass/mtp/impl/script/InitScript.gr" />
<property name="initScript" value="/org/iplass/mtp/impl/script/EnterpriseInitScript.gr" />
</service>
3.68. SecureRandomService
ランダム文字列を生成するための設定を管理するサービスです。
インタフェース名
org.iplass.mtp.impl.util.random.SecureRandomService
実装クラス名
org.iplass.mtp.impl.util.random.SecureRandomService
SecureRandomServiceの設定
SecureRandomServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
default |
標準のSecureRandomGeneratorConfigの設定。 |
|
任意の文字列 |
認証トークン生成時に使用するSecureRandomGeneratorConfigの設定。 nameにはSecureRandomGeneratorの任意の名前を指定します。 |
ランダム文字列を生成するための設定です。
| 項目 | 値 | 説明 |
|---|---|---|
numBitsOfSecureRandomToken |
int |
ランダム文字列のbit。デフォルトは128(bit)です。encode指定またはradixOfSecureRandomTokenの値が64に指定されている場合は、8の倍数に繰り上げて処理されます。 |
radixOfSecureRandomToken |
int |
ランダム文字列化する際の基数。デフォルトは16です。 設定可能な値は2-36もしくは64です。encode指定ある場合は、そちらを優先します。 |
useStrongSecureRandom |
boolean |
ランダム生成時のSecureRandomをSecureRandom.getInstanceStrong()するか否か。 デフォルトはfalseです。algorithm指定ある場合は、そちらを優先します。 |
algorithm |
String |
SecureRandom生成時のalgorithm。デフォルトは未指定です。 |
provider |
String |
SecureRandom生成時のprovider。デフォルトは未指定です。 |
encode |
String |
SecureRandom生成時のencode。デフォルトは未指定です。設定可能な値はbase32もしくはbase64です。 |
設定例
<service>
<interface>org.iplass.mtp.impl.util.random.SecureRandomService</interface>
<class>org.iplass.mtp.impl.util.random.SecureRandomService</class>
<property name="default">
<property name="numBitsOfSecureRandomToken" value="128" />
<property name="radixOfSecureRandomToken" value="16" />
<property name="useStrongSecureRandom" value="false" />
</property>
<property name="authTokenGenerator">
<property name="numBitsOfSecureRandomToken" value="192" />
<property name="radixOfSecureRandomToken" value="32" />
<property name="useStrongSecureRandom" value="false" />
</property>
</service>
3.69. SmsService
SMSテンプレートの定義(メタデータ)の管理と、SMS送信を行うためのサービスです。 SMS送信の実装として、Twilioを利用したSMS送信のモジュールを標準提供します。
インタフェース名
org.iplass.mtp.impl.sms.SmsService
実装クラス名
org.iplass.mtp.impl.sms.twilio.TwilioSmsService
TwilioSmsServiceの設定
TwilioによるSMS送信を利用する場合、TwilioSmsServiceを設定します。 Twilio契約時に取得される「ACCOUNT SID」と「AUTH TOKEN」が必要です。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
accountSid |
String、必須 |
ACCOUNT SID。 |
authToken |
String、必須 |
AUTH TOKEN。 |
region |
String |
Twilio サービスのリージョンを設定します。設定可能な値は こちら を参照ください。 |
edge |
String |
Twilio サービスのエッジロケーションを設定します。設定可能な値は こちら を参照ください。 |
userAgentExtensions |
String、複数指定可能 |
Twilio サービスへリクエスト時の User-Agent ヘッダーの拡張設定。 |
defaultFrom |
String |
デフォルトの送信元電話番号。 |
messageCustomizerList |
TwilioSmsMessageCustomizer、複数指定可能 |
SMS送信時のメッセージカスタム処理リスト。 |
httpClientConfig |
HTTPクライアントの設定。 |
|
listener |
SendSmsMailListener、複数指定可 |
SMS送信時のListener。 |
class には org.iplass.mtp.impl.sms.twilio.TwilioSmsMessageCustomizer を実装したクラスを指定します。
標準で提供する機能は存在しません。
メッセージをカスタマイズする処理を実装し、実装したクラスを service-config の設定に追加してください。
classはorg.iplass.mtp.impl.http.HttpClientConfigを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
connectionTimeout |
int |
HTTPコネクションを確立する際のタイムアウト(ミリ秒)。デフォルト値は30000(30秒)です。 |
soTimeout |
int |
HTTP通信時のsocket timeout (SO_TIMEOUT)(ミリ秒)。デフォルト値は30000(30秒)です。 |
poolingMaxTotal |
int |
httpコネクションのプールの最大数。デフォルト値は20です。 |
poolingDefaultMaxPerRoute |
int |
ドメイン単位のhttpコネクションの最大数。デフォルト値は2です。 |
poolingTimeToLive |
int |
プールされているhttpコネクションの生存期間(ミリ秒)。デフォルトは無制限です。 |
proxyHost |
String |
プロキシサーバのホスト。 |
proxyPort |
int |
プロキシサーバのポート番号。 |
httpClientBuilderFactory |
カスタムのHttpClientBuilderを生成したい場合に指定します。 |
classはorg.iplass.mtp.impl.http.HttpClientBuilderFactoryを実装するクラスを指定します。
標準で以下のHttpClientBuilderFactoryを提供します。
classはorg.iplass.mtp.sms.SendSmsMailListenerの実装クラスを指定します。
標準で以下のSendSmsMailListenerを提供します。
classはorg.iplass.mtp.impl.micrometer.metrics.sms.MetricsSendSmsMailListenerを指定します。
Micrometerによるメトリクス収集機能を追加したSendSmsMailListenerです。 設定変更可能な項目はありません。
設定例
<service>
<interface>org.iplass.mtp.impl.sms.SmsService</interface>
<class>org.iplass.mtp.impl.sms.twilio.TwilioSmsService</class>
<property name="accountSid" value="yourOwnAccountSid"/>
<property name="authToken" value="yourOwnAuthToken"/>
<property name="edge" value="tokyo"/>
<property name="defaultFrom" value="+1234......."/>
<!-- org.iplass.mtp.impl.sms.twilio.TwilioSmsMessageCustomizer 実装クラスを設定する -->
<!--
<property name="messageCustomizerList" class="...set your implementation class..." />
-->
<!-- Development
<property name="httpClientConfig" class="org.iplass.mtp.impl.http.HttpClientConfig">
<property name="connectionTimeout" value="30000" />
<property name="soTimeout" value="30000" />
<property name="proxyHost" value="proxyhost.dentsusoken.com" />
<property name="proxyPort" value="8080" />
</property>
-->
</service>
3.70. StorageSpaceService
StorageSpaceの移行ツールに関するサービスです。
インタフェース名
org.iplass.mtp.impl.tools.storagespace.StorageSpaceService
実装クラス名
org.iplass.mtp.impl.tools.storagespace.StorageSpaceServiceImpl
StorageSpaceServiceの設定
StorageSpaceServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
migrateCommitLimit |
int |
StorageSpace変更時の移行データCommit単位(件数)。 |
cleanupCommitLimit |
int |
StorageSpace変更後の移行データクリーンアップCommit単位(件数)。 |
設定例
<service>
<interface>org.iplass.mtp.impl.tools.storagespace.StorageSpaceService</interface>
<class>org.iplass.mtp.impl.tools.storagespace.StorageSpaceServiceImpl</class>
<property name="migrateCommitLimit" value="100" />
<property name="cleanupCommitLimit" value="1000" />
</service>
3.71. StoreService
Entityデータの永続化を行うサービスです。
インタフェース名
org.iplass.mtp.impl.datastore.StoreService
実装クラス名
org.iplass.mtp.impl.datastore.StoreService
StoreServiceの設定
StoreServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
dataStore |
DataStoreの設定。 |
classはorg.iplass.mtp.impl.datastore.DataStoreの実装クラスを指定します。
標準で、以下のDataStoreを提供します。
classはorg.iplass.mtp.impl.datastore.grdb.GRdbDataStoreを指定します。 コミュニティエディション用のDataStoreです。
以下の項目を設定可能です。
| 項目 | 値 | 説明 | ||
|---|---|---|---|---|
storageSpace |
StorageSpaceMap、複数指定可 |
StorageSpaceの設定。 |
||
overwriteTableNamePostfixMap |
String、Map形式 |
特定のEntityのstorageSpaceへの格納先を直接変更したい場合にMap形式で指定します。nameにはEntity定義名、valueにはStorageSpaceの接尾辞(tableNamePostfix)を指定します。 利用用途としては次のような場面を想定しています。
|
classはorg.iplass.mtp.impl.datastore.grdb.EnterpriseGRdbDataStoreを指定します。 エンタープライズエディション用のDataStoreです。
以下の項目を設定可能です。
| 項目 | 値 | 説明 | ||
|---|---|---|---|---|
enableWindowFunctionEmulation |
boolean |
Window関数のエミュレートを有効にするか。デフォルト値はfalseです。 |
||
storageSpace |
StorageSpaceMap、複数指定可 |
StorageSpaceの設定。 |
||
overwriteTableNamePostfixMap |
String、Map形式 |
特定のEntityのstorageSpaceへの格納先を直接変更したい場合にMap形式で指定します。nameにはEntity定義名、valueにはStorageSpaceの接尾辞(tableNamePostfix)を指定します。 利用用途としては次のような場面を想定しています。
|
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
storageSpaceName |
String |
Entity定義で選択する際に表示されるStorageSpace名。 |
tableNamePostfix |
String |
StorageSpace用のテーブルに付加する接尾語。
英数字のみ利用してください。
標準で、 |
varcharColumns |
int |
文字列型のプロパティを格納するための列数。 |
decimalColumns |
int |
Decimal型のプロパティを格納するための列数。 |
timestampColumns |
int |
Timestamp型のプロパティを格納するための列数。 |
doubleColumns |
int |
浮動小数点型のプロパティを格納するための列数。 |
useExternalIndexedTable |
boolean |
StorageSpaceにおける外部INDEXテーブル( |
indexedVarcharColumns |
int |
Index指定された文字列型のプロパティを格納するための列数。 |
indexedDecimalColumns |
int |
Index指定されたDecimal型のプロパティを格納するための列数。 |
indexedTimestampColumns |
int |
Index指定されたTimestamp型のプロパティを格納するための列数。 |
indexedDoubleColumns |
int |
Index指定された浮動小数点型のプロパティを格納するための列数。 |
useExternalUniqueIndexedTable |
boolean |
StorageSpaceにおける外部INDEXテーブル( |
uniqueIndexedVarcharColumns |
int |
Unique Index指定された文字列型のプロパティを格納するための列数。 |
uniqueIndexedDecimalColumns |
int |
Unique Index指定されたDecimal型のプロパティを格納するための列数。 |
uniqueIndexedTimestampColumns |
int |
Unique Index指定されたTimestamp型のプロパティを格納するための列数。 |
uniqueIndexedDoubleColumns |
int |
Unique Index指定された浮動小数点型のプロパティを格納するための列数。 |
varcharColumnLength |
int |
文字列格納カラムの文字列長を設定。LongText値がインライン格納可能かどうかの判断に利用される。デフォルト値は-1(未定義の意) |
customPartition |
boolean |
データベースのPartitionを利用する場合に、iPLAssが想定する標準のPartition単位(テナント単位)と異なるPartition設定を利用するか。デフォルト値はfalse(カスタムのPartition設定しない)です。 |
tableCount |
int |
物理的に格納テーブルを分割し、擬似パーティショニング(データベースのパーティショニング機能ではなく、iPLAssがEntity単位に物理テーブルを振り分けする機能)する場合に0より大きい値を設定。デフォルト値は0です。 |
tableAllocator |
TableAllocatorの設定。疑似パーティショニングする場合の各物理テーブルへの振り分け方式を設定可能です。デフォルト値はHashingTableAllocatorです。 |
疑似パーティショニングする場合の、Entityデータが格納される物理テーブルへの振り分け方式を設定可能です。
classはorg.iplass.mtp.impl.datastore.grdb.TableAllocatorの実装クラスを指定します。
標準で、以下のTableAllocatorを提供します。
classはorg.iplass.mtp.impl.datastore.grdb.tableallocators.HashingTableAllocatorを指定します。 tenantId、また、Entity定義単位に一意なキーであるmetaDataIdからのハッシュにより、物理テーブルを決定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
useTenantId |
boolean |
ハッシュ算出時にtenantIdを利用する場合、true。デフォルト値はtrueです。 |
useMetaDataId |
boolean |
ハッシュ算出時にmetaDataIdを利用する場合、true。デフォルト値はtrueです。 useTenantId、useMetaDataIdともにtrueの場合は、両方を利用します。 |
classはorg.iplass.mtp.impl.datastore.grdb.tableallocators.RoundRobinTableAllocatorを指定します。 疑似パーティションを構成する物理テーブルの内、同一テナント内において利用しているEntity定義が最も少ない物理テーブルを割り当てるようにします。 設定可能な項目はありません。
設定例
<service>
<interface>org.iplass.mtp.impl.datastore.StoreService</interface>
<property name="dataStore" class="org.iplass.mtp.impl.datastore.grdb.GRdbDataStore">
<property name="storageSpace" additional="true">
<property name="storageSpaceName" value="MyCustomSpace" />
<property name="tableNamePostfix" value="MCS" />
<property name="varcharColumns" value="128" />
<property name="decimalColumns" value="32" />
<property name="timestampColumns" value="32" />
<property name="doubleColumns" value="32" />
<property name="useExternalIndexedTable" value="true" />
<property name="indexedVarcharColumns" value="8" />
<property name="indexedDecimalColumns" value="4" />
<property name="indexedTimestampColumns" value="4" />
<property name="indexedDoubleColumns" value="4" />
<property name="useExternalUniqueIndexedTable" value="true" />
<property name="uniqueIndexedVarcharColumns" value="2" />
<property name="uniqueIndexedDecimalColumns" value="2" />
<property name="uniqueIndexedTimestampColumns" value="2" />
<property name="uniqueIndexedDoubleColumns" value="2" />
<property name="customPartition" value="false" />
</property>
<property name="overwriteTableNamePostfixMap">
<property name="mtp.auth.Rank" value="MCS" />
</property>
</property>
</service>
3.72. SyntaxService
構文解析のためのサービスです。
インタフェース名
org.iplass.mtp.impl.parser.SyntaxService
実装クラス名
org.iplass.mtp.impl.parser.SyntaxService
SyntaxServiceの設定
SyntaxServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
syntaxRegister |
SyntaxRegister、複数指定可 |
SyntaxRegisterの実装クラス名。 |
classはorg.iplass.mtp.impl.parser.SyntaxRegisterの実装クラスを指定します。
標準でorg.iplass.mtp.impl.query.QuerySyntaxRegisterを提供しています。 設定可能な項目はありません。
設定例
<service final="true">
<interface>org.iplass.mtp.impl.parser.SyntaxService</interface>
<class>org.iplass.mtp.impl.parser.SyntaxService</class>
<property name="syntaxRegister" value="org.iplass.mtp.impl.query.QuerySyntaxRegister" />
</service>
3.73. TaskIdCounter
RdbQueueServiceを利用する場合にタスクIDの採番を行うサービスです。
タスクのグループ化の設定により、利用する設定が変わります。
グループ化の指定が無い場合は TaskIdCounter の設定を、指定がある場合は TaskIdCounterGrouping の設定を利用します。
インタフェース名
org.iplass.mtp.impl.counter.CounterService
実装クラス名
org.iplass.mtp.impl.counter.RdbTableCounterService
org.iplass.mtp.impl.counter.CachableRdbTableCounterService
RdbTableCounterServiceの設定
RdbTableCounterServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
separateTransaction |
boolean |
採番時にトランザクションを分けるか。デフォルト値はfalseです。 |
retryCount |
int |
採番失敗時にリトライする回数。デフォルト値は3です。 |
counterTypeName |
String |
採番タイプの名前。デフォルト値は |
CachableRdbTableCounterServiceの設定
CachableRdbTableCounterServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
separateTransaction |
boolean |
採番時にトランザクションを分けるか。デフォルト値はfalseです。 |
retryCount |
int |
採番失敗時にリトライする回数。デフォルト値は3です。 |
counterTypeName |
String |
採番タイプの名前。デフォルト値は |
cacheSize |
int |
キャッシュサイズ。デフォルト値は20です。 |
設定例
<service name="TaskIdCounter">
<interface>org.iplass.mtp.impl.counter.CounterService</interface>
<class>org.iplass.mtp.impl.counter.CachableRdbTableCounterService</class>
<property name="counterTypeName" value="TaskIdCounter" />
<property name="cacheSize" value="20" />
<property name="retryCount" value="3" />
</service>
<service name="TaskIdCounterGrouping">
<interface>org.iplass.mtp.impl.counter.CounterService</interface>
<class>org.iplass.mtp.impl.counter.RdbTableCounterService</class>
<property name="counterTypeName" value="TaskIdCounter" />
<property name="separateTransaction" value="true" />
<property name="retryCount" value="3" />
</service>
3.74. TenantAvailableService
テナントの稼動状態を管理するサービスです。
インタフェース名
org.iplass.mtp.impl.tenant.available.TenantAvailableService
実装クラス名
org.iplass.mtp.impl.tenant.available.TenantAvailableService
TenantAvailableServiceの設定
TenantAvailableServiceを設定します。
設定項目
| 項目 | 値 | 説明 | ||
|---|---|---|---|---|
allwaysAvailableAction |
String、複数指定可 |
メンテナンス中でも利用可能なアクション
|
||
alwaysAvailableAction |
String、複数指定可 |
メンテナンス中でも利用可能なアクション |
||
alwaysAvailableWebApi |
String、複数指定可 |
メンテナンス中でも利用可能なWebApi |
設定例
<service>
<interface>org.iplass.mtp.impl.tenant.available.TenantAvailableService</interface>
<class>org.iplass.mtp.impl.tenant.available.TenantAvailableService</class>
<property name="alwaysAvailableAction" value="gem/auth/login" />
<property name="alwaysAvailableAction" value="gem/auth/dologin" />
<property name="alwaysAvailableAction" value="gem/auth/logout" />
<property name="alwaysAvailableAction" value="gem/auth/expiredpassword/update" />
<property name="alwaysAvailableAction" value="gem/auth/verify2nd" />
<property name="alwaysAvailableAction" value="mdc/auth/login" />
<property name="alwaysAvailableAction" value="mdc/auth/dologin" />
<property name="alwaysAvailableAction" value="mdc/auth/logout" />
<property name="alwaysAvailableAction" value="mdc/auth/expiredpassword/update" />
<property name="alwaysAvailableAction" value="mdc/auth/verify2nd" />
<property name="alwaysAvailableWebApi" value="gem/auth/verifycodegen" />
<property name="alwaysAvailableWebApi" value="mdc/auth/verifycodegen" />
</service>
3.75. TenantContextService
テナント全体の振る舞いを設定するサービスです。
インタフェース名
org.iplass.mtp.impl.core.TenantContextService
実装クラス名
org.iplass.mtp.impl.core.TenantContextService
TenantContextServiceの設定
テナント全体の振る舞いを設定します。
設定項目
| 項目 | 値 | 説明 | ||
|---|---|---|---|---|
defaultTenantName |
String |
デフォルトのテナント名。 |
||
defaultPasswordPatternErrorMessage |
String |
デフォルトのパスワード形式エラーメッセージ。 |
||
defaultMailFrom |
String |
デフォルトのメール送信Fromアドレス。テナント設定でFromアドレスが指定されていない場合に利用されます。 |
||
defaultMailFromName |
String |
デフォルトのメール送信Fromアドレス個人名。 |
||
sharedTenantId |
int |
共有テナントのID。RDBの場合、このテナントが共有テナントとして利用されます。-1は共有テナントなしとみなし動作します。デフォルト値は-1です。 共有テナントを有効化した状態でEntity定義を変更した場合は、それに連動してデータのメンテナンス処理が実行されますが、共有されたEntity定義を変更した場合は、すべてのテナントのデータに対してメンテナンス処理が実行されます。
|
||
localTenantIds |
int、複数指定可 |
共有テナントを有効にした際、Entity定義更新時のデータメンテナンスを実施する個別テナントを指定可能。 設定されていない場合は、DBに登録されているすべてのテナント(共有テナント除く)を個別テナントとみなしデータメンテナンスを実施します。 sharedTenantIdの説明にあるように、共有テナントを有効化する場合、他プロジェクト・システムとDB共有しないことを推奨しますが、それが難しい場合にこのlocalTenantIdsを利用することが可能です。 共有されたEntity定義が変更された場合、データメンテナンス処理を指定されたテナントに限定することが可能となります。 |
設定例
<service>
<interface>org.iplass.mtp.impl.core.TenantContextService</interface>
<property name="defaultTenantName" value="iPLAss" />
<property name="defaultMailFrom" value="notenant@nomail.iplass.org" />
<!-- ■ if use shared tenant, set shared tenant id.(value:-1 for no use of shared tenant) -->
<!--
<property name ="sharedTenantId" value="-1" />
-->
<!--
共有テナントを有効にした際、その共有テナントの配下の個別テナントを定義可能。
定義されていない場合は、DBに登録されているすべてのテナント(共有テナント除く)を個別テナントとみなし動作します。
-->
<!--
<property name ="localTenantIds" value="148" />
<property name ="localTenantIds" value="149" />
-->
</service>
3.76. TenantToolService
テナント管理ツールに関するサービスです。
インタフェース名
org.iplass.adminconsole.server.base.service.TenantToolService
実装クラス名
org.iplass.adminconsole.server.base.service.TenantToolService
TenantToolServiceの設定
TenantToolServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
createProcesses |
TenantCreateProcess、複数指定可 |
テナント作成時に実行するプロセスを設定。 |
tenantRdbManagerParameter |
RDB別テナント管理機能のパラメータを設定。 |
classはorg.iplass.mtp.impl.tools.tenant.create.TenantCreateProcessの実装クラスを指定します。
標準で以下のTenantCreateProcessを提供しています。
管理者ユーザーを作成します。
classにorg.iplass.mtp.impl.tools.tenant.create.CreateAdminUserProcessを指定します。 設定可能な項目はありません。
空のテナントを作成します。
classにorg.iplass.mtp.impl.tools.tenant.create.BlankSkipProcessを指定します。 設定可能な項目はありません。
初期メニュー定義を作成します。
classはorg.iplass.mtp.impl.tools.tenant.create.CreateMenuProcessを指定します。 設定可能な項目はありません。
初期TopView定義を作成します。
classはorg.iplass.mtp.impl.tools.tenant.create.CreateTopViewProcessを指定します。 設定可能な項目はありません。
管理者ロールと権限データを作成します。
classはorg.iplass.mtp.impl.tools.tenant.create.CreateAppAdminRoleProcessを指定します。 設定可能な項目はありません。
Gemユーザー用ロールと権限データを作成します。
classはorg.iplass.mtp.impl.tools.tenant.create.CreateGemUserRoleProcessを指定します。 設定可能な項目はありません。
管理者ロール向けのEnterpriseEdition用権限データを作成します。
classはorg.iplass.mtp.impl.tools.tenant.create.CreateAppAdminRoleEEProcessを指定します。 設定可能な項目はありません。
Gemユーザーロール向けのEnterpriseEdition用権限データを作成します。
classはorg.iplass.mtp.impl.tools.tenant.create.CreateGemUserRoleEEProcessを指定します。 設定可能な項目はありません。
テナント作成完了処理を行います。
classはorg.iplass.mtp.impl.tools.tenant.create.CreateCompleteProcessを指定します。 設定可能な項目はありません。
classは org.iplass.mtp.impl.tools.tenant.rdb.TenantRdbManagerParameter を指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
deleteRows |
Integer |
テナント削除時、テーブルレコード削除件数。デフォルト値は |
設定例
<service>
<interface>org.iplass.mtp.impl.tools.tenant.TenantToolService</interface>
<property name="createProcesses" class="org.iplass.mtp.impl.tools.tenant.create.CreateAdminUserProcess" />
<property name="createProcesses" class="org.iplass.mtp.impl.tools.tenant.create.BlankSkipProcess" />
<property name="createProcesses" class="org.iplass.mtp.impl.tools.tenant.create.CreateMenuProcess" />
<property name="createProcesses" class="org.iplass.mtp.impl.tools.tenant.create.CreateTopViewProcess" />
<property name="createProcesses" class="org.iplass.mtp.impl.tools.tenant.create.CreateAppAdminRoleProcess" />
<property name="createProcesses" class="org.iplass.mtp.impl.tools.tenant.create.CreateGemUserRoleProcess" />
<!-- for ee -->
<property name="createProcesses" class="org.iplass.mtp.impl.tools.tenant.create.CreateAppAdminRoleEEProcess" />
<property name="createProcesses" class="org.iplass.mtp.impl.tools.tenant.create.CreateGemUserRoleEEProcess" />
<property name="createProcesses" class="org.iplass.mtp.impl.tools.tenant.create.CreateCompleteProcess" />
<!-- TenartRdbManagerパラメータ -->
<property name="tenantRdbManagerParameter" class="org.iplass.mtp.impl.tools.tenant.rdb.TenantRdbManagerParameter">
<!-- テナント削除時のレコード削除件数。デフォルト値は 10,000 -->
<!--
<property name="deleteRows" value="10000" />
-->
</property>
</service>
3.77. ValidationService
入力チェックを行うためのサービスです。
インタフェース名
org.iplass.mtp.impl.validation.ValidationService
実装クラス名
org.iplass.mtp.impl.validation.ValidationService
ValidationService
ValidationServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
beanValidation |
Bean Validationの設定。 |
Bean Validationの設定を行います。
classはorg.iplass.mtp.impl.validation.bean.BeanValidationConfigを指定します。 以下の項目を指定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
providerClass |
String |
jakarta.validation.spi.ValidationProviderの実装クラス名。 |
messageInterpolator |
MessageInterpolatorの設定。 |
|
properties |
Properties、複数指定可 |
プロバイダ固有のプロパティ。 |
classにjakarta.validation.MessageInterpolatorの実装クラスを指定します。
標準でorg.iplass.mtp.impl.validation.bean.TenantContextMessageInterpolatorを提供しています。 以下の項目を指定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
messageInterpolatorFactory |
MessageInterpolatorFactoryの実装クラス名。 |
classにorg.iplass.mtp.impl.validation.bean.MessageInterpolatorFactoryの実装クラスを指定します。
標準でorg.iplass.mtp.impl.validation.bean.hibernate.HibernateMessageInterpolatorFactoryを提供しています。 以下の項目を指定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
resourceBundleLocator |
ResourceBundleLocatorの実装クラス名。 |
|
cachingEnabled |
boolean |
キャッシュが有効か。 |
classにorg.hibernate.validator.spi.resourceloading.ResourceBundleLocatorの実装クラスを指定します。
標準でorg.iplass.mtp.impl.validation.bean.hibernate.MessageResourceBundleLocatorを提供しています。 設定可能な項目はありません。
設定例
<service>
<interface>org.iplass.mtp.impl.validation.ValidationService</interface>
<class>org.iplass.mtp.impl.validation.ValidationService</class>
<property name="beanValidation">
<property name="providerClass" value="org.hibernate.validator.HibernateValidator" />
<property name="messageInterpolator" class="org.iplass.mtp.impl.validation.bean.TenantContextMessageInterpolator">
<property name="messageInterpolatorFactory" class="org.iplass.mtp.impl.validation.bean.hibernate.HibernateMessageInterpolatorFactory">
<property name="resourceBundleLocator" class="org.iplass.mtp.impl.validation.bean.hibernate.MessageResourceBundleLocator" />
<property name="cachingEnabled" null="true" />
</property>
</property>
</property>
</service>
3.78. WamService
Web会員管理機能のサービスです。
インタフェース名
org.iplass.wam.impl.WamService
実装クラス名
org.iplass.wam.impl.WamService
WamServiceの設定
Wamを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
tokenManager |
TokenManagerの設定。デフォルトではEntityTokenManagerが使用されます。 |
|
httpClientConfig |
HTTPクライアントに関する設定。 |
|
stickySessionCookieName |
String |
スティッキーセッションのクッキー名。 |
classはorg.iplass.wam.api.siteauth.TokenManagerの実装クラスを指定します。
標準で、キャッシュで管理されたトークンの発行を行うorg.iplass.wam.impl.siteauth.CacheTokenManagerと、エンティティで管理されたトークンの発行を行うorg.iplass.wam.impl.siteauth.EntityTokenManagerを提供します。 CacheTokenManagerとEntityTokenManagerは設定変更可能な項目はありません。
classはorg.iplass.mtp.impl.http.HttpClientConfigを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
proxyHost |
String |
proxyを利用する場合のHost名。 |
proxyPort |
int |
proxyを利用する場合のport。 |
connectionTimeout |
int |
HTTPコネクションを確立する際のタイムアウト(ミリ秒)。 デフォルト値は30000(30秒)です。 |
soTimeout |
int |
HTTP通信時のsocket timeout (SO_TIMEOUT)(ミリ秒)。 デフォルト値は30000(30秒)です。 |
poolingMaxTotal |
int |
httpコネクションのプールの最大数。デフォルト値は20です。 |
poolingDefaultMaxPerRoute |
int |
ドメイン単位のhttpコネクションの最大数。デフォルト値は2です。 |
poolingTimeToLive |
int |
プールされているhttpコネクションの生存期間(ミリ秒)。デフォルトは無制限です。 |
httpClientBuilderFactory |
カスタムのHttpClientBuilderを生成したい場合に指定します。 |
classはorg.iplass.mtp.impl.http.HttpClientBuilderFactoryを実装するクラスを指定します。
標準で以下のHttpClientBuilderFactoryを提供します。
設定例
<service>
<interface>org.iplass.wam.impl.WamService</interface>
<property name="tokenManager" class="org.iplass.wam.impl.siteauth.EntityTokenManager" />
<property name="httpClientConfig" class="org.iplass.mtp.impl.http.HttpClientConfig">
<property name="proxyHost" value="proxyhost.dentsusoken.com"/>
<property name="proxyPort" value="8080"/>
</property>
<property name="stickySessionCookieName" value="AWSELB"/>
</service>
3.79. WarmupService
アプリケーション起動時のウォームアップ(暖気)処理を管理するサービスです。
インタフェース名
org.iplass.mtp.impl.warmup.WarmupService
実装クラス名
org.iplass.mtp.impl.warmup.WarmupService
WarmupService
WarmupService で利用可能な設定項目は以下の通りです。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
enabled |
boolean |
ウォームアップを実行するかを指定します。true を設定するとウォームアップを実行します。デフォルト値は false です。 |
statusFile |
String |
ウォームアップ状態を表すファイルパスを設定します。ウォームアップが完了すると、完了状態と指定されたファイルパスによって、以下の2ファイルを作成します。 正常終了時
異常終了時
|
taskMap |
Map形式 <String, WarmupTask> |
name 属性(key)にウォームアップタスク名、value 属性(value)に org.iplass.mtp.impl.warmup.WarmupTask の実装クラスを指定します。 |
applicationTask |
String |
taskMap プロパティで設定したウォームアップタスク名を指定します。カンマ区切りで複数指定可能です。 |
tenantTaskMap |
Map形式 <String, String> |
name 属性(key)にテナントID、value 属性(value)に taskMap プロパティで設定したウォームアップタスク名を指定します。テナントID、ウォームアップタスク名ともにカンマ区切りで複数指定可能です。 |
起動時にアプリケーションのウォームアップを行うタスクです。
class は org.iplass.mtp.impl.warmup.WarmupTask の実装クラスを設定します。 標準で以下のクラスを提供します。
-
org.iplass.mtp.impl.warmup.MetaDataWarmupTask
-
事前にメタデータを読み取るタスクです。
-
-
org.iplass.mtp.impl.web.warmup.TomcatJasperJspPreCompileWarmupTask
-
JSPを事前コンパイルするタスクです。
-
事前にメタデータを読み取ります。
テナント単位で実行するタスクです。WarmupService の tenantTaskMap プロパティで設定してください。
class は org.iplass.mtp.impl.warmup.MetaDataWarmupTask を指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
metadataPathList |
String、複数指定可 |
メタデータパスのリストを設定する。メタデータパスは以下のルールで記載してください。 ルール
|
設定に従い JSP ファイルを検索し事前コンパイルします。
サーバー単位で実行するタスクです。WarmupService の applicationTask プロパティで設定してください。
class は org.iplass.mtp.impl.web.warmup.TomcatJasperJspPreCompileWarmupTask を指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
jspPathPrefixList |
String、複数指定可 |
JSP ファイルが格納されているパスのプレフィックスを指定します。 パス設定値による検索先の違い
|
jspExtensionList |
String、複数指定可 |
JSP ファイルの拡張子を指定します。未設定の場合は |
excludeResourceRegexList |
String、複数指定可 |
除外するリソースの正規表現を指定します。 |
設定例
<service>
<interface>org.iplass.mtp.impl.warmup.WarmupService</interface>
<class>org.iplass.mtp.impl.warmup.WarmupService</class>
<!-- enabled が true に設定されている場合に、ウォームアップ処理が実行されます。未指定の場合は false が設定されます。 -->
<!--
<property name="enabled" value="true" />
-->
<!--
statusFile には、ウォームアップ状態を表すファイルパスを設定します。指定されたファイルパスによって、以下の2ファイルを作成します。
statusFile の設定値が "/path/to/warmup_status" の場合。
正常終了時
/path/to/warmup_status (ファイルには、complete が記載されている)
/path/to/warmup_status.complete (空ファイル)
異常終了時
/path/to/warmup_status (ファイルには、failed が記載されている)
/path/to/warmup_status.failed (空ファイル)
-->
<!--
<property name="statusFile" value="/path/to/warmup_status" />
-->
<!--
taskMap は Map 形式でプロパティを設定してください。
name = ウォームアップタスク名
value = org.iplass.mtp.impl.warmup.WarmupTask の実装クラス
-->
<property name="taskMap">
<!-- defaultMetaDataWarmupTask はメタデータウォームアップのデフォルト定義 -->
<property name="defaultMetaDataWarmupTask" class="org.iplass.mtp.impl.warmup.MetaDataWarmupTask">
<property name="metadataPathList" value="/entity/mtp/*" />
<property name="metadataPathList" value="/message/mtp/*" />
<property name="metadataPathList" value="/authNPolicy/*" />
</property>
<!-- JSP 事前コンパイルタスクの設定例 -->
<!--
<property name="applicationJspPreCompile" class="org.iplass.mtp.impl.web.warmup.TomcatJasperJspPreCompileWarmupTask">
<property name="jspPathPrefixList" value="/META-INF/resources/jsp/" />
<property name="jspPathPrefixList" value="/jsp/app/" />
<property name="jspExtensionList" value=".jsp" />
</property>
-->
<!--
<property name="taskA" class="example.path.to.package.TaskAWarmupTask" />
<property name="taskB" class="example.path.to.package.TaskBWarmupTask" />
<property name="allTenantTask" class="example.path.to.package.AllTenantWarmupTask" />
-->
</property>
<!--
applicationTask には taskMap プロパティで設定したウォームアップタスク名を指定してください。
カンマ区切りで複数指定可能です。
-->
<!--
<property name="applicationTask" value="applicationJspPreCompile" />
-->
<!--
tenantTaskMap には Map 形式でプロパティを設定してください。
name = テナントID。"*" は全テナントIDを表す。カンマ区切りで複数指定可能。
value = taskMap プロパティで設定したウォームアップタスク名。カンマ区切りで複数指定可能。
-->
<!--
<property name="tenantTaskMap">
<property name="1,2" value="taskA,taskB" />
<property name="*" value="allTenantTask" />
</property>
-->
</service>
3.80. WebApiJAXBService
WebApiのJAXBでの変換対象のクラス定義を行うサービスです。
インタフェース名
org.iplass.mtp.impl.webapi.jaxb.WebApiJaxbService
実装クラス名
org.iplass.mtp.impl.webapi.jaxb.WebApiJaxbService
WebApiJaxbServiceの設定
WebApiJaxbServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
classToBeBound |
String、複数指定可 |
WebApiのレスポンスでJAXBでの変換対象となるクラス。 |
設定例
<service>
<interface>org.iplass.mtp.impl.webapi.jaxb.WebApiJaxbService</interface>
<property name="classToBeBound" value="org.iplass.mtp.impl.webapi.jaxb.Builtins" />
<!-- ee only classes -->
<property name="classToBeBound" value="org.iplass.mtp.impl.webapi.jaxb.EnterpriseDefinitions" />
<!--
<property name="classToBeBound" value="org.iplass.mtp.impl.csv.CsvUploadResult" />
-->
</service>
3.81. WebApiObjectMapperService
WebApiのJSON出力時のObjectMapper定義を行うサービスです。
インタフェース名
org.iplass.mtp.impl.webapi.jackson.WebApiObjectMapperService
実装クラス名
org.iplass.mtp.impl.webapi.jackson.WebApiObjectMapperService
WebApiObjectMapperServiceの設定
WebApiObjectMapperServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
typeMap |
WebApiParameterType、複数指定可 |
パラメータの型と対応するクラスの設定。 |
mixin |
MixinConfig、複数指定可 |
出力内容を調整する対象。 |
writeNullMapValues |
boolean |
null値を持つマップエントリをjsonに出力するか。 |
writeNullValues |
boolean |
nullの項目をjsonに出力するか。 |
escapeNonAscii |
boolean |
WebApiの結果をjsonで返却する際に、ascii以外をすべてエスケープする形で出力するか。 |
classはorg.iplass.mtp.impl.webapi.jackson.WebApiParameterTypeを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
typeName |
String |
型の名前。 |
className |
String |
型に対応するクラス名。 |
classはorg.iplass.mtp.impl.webapi.jackson.MixinConfigを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
target |
String |
jacksonで出力内容を調整する対象のクラス。 |
mixinSource |
String |
|
設定例
<service>
<interface>org.iplass.mtp.impl.webapi.jackson.WebApiObjectMapperService</interface>
<property name="mixin">
<property name="target" value="org.iplass.mtp.entity.GenericEntity" />
<property name="mixinSource" value="org.iplass.mtp.impl.webapi.jackson.MixinEntity" />
</property>
<property name="mixin">
<property name="target" value="org.iplass.mtp.entity.Entity" />
<property name="mixinSource" value="org.iplass.mtp.impl.webapi.jackson.MixinEntity" />
</property>
<property name="mixin">
<property name="target" value="org.iplass.mtp.definition.binary.BinaryDefinition" />
<property name="mixinSource" value="org.iplass.mtp.impl.webapi.jackson.MixinBinaryDefinition" />
</property>
<property name="parameterType">
<property name="typeName" value="entity" />
<property name="className" value="org.iplass.mtp.entity.GenericEntity" />
</property>
<property name="parameterType">
<property name="typeName" value="decimal" />
<property name="className" value="java.math.BigDecimal" />
</property>
<property name="parameterType">
<property name="typeName" value="binary" />
<property name="className" value="org.iplass.mtp.entity.BinaryReference" />
</property>
<property name="parameterType">
<property name="typeName" value="select" />
<property name="className" value="org.iplass.mtp.entity.SelectValue" />
</property>
<property name="parameterType">
<property name="typeName" value="boolean" />
<property name="className" value="java.lang.Boolean" />
</property>
<property name="parameterType">
<property name="typeName" value="date" />
<property name="className" value="java.sql.Date" />
</property>
<property name="parameterType">
<property name="typeName" value="dateTime" />
<property name="className" value="java.sql.Timestamp" />
</property>
<property name="parameterType">
<property name="typeName" value="float" />
<property name="className" value="java.lang.Double" />
</property>
<property name="parameterType">
<property name="typeName" value="integer" />
<property name="className" value="java.lang.Long" />
</property>
<property name="parameterType">
<property name="typeName" value="string" />
<property name="className" value="java.lang.String" />
</property>
<property name="parameterType">
<property name="typeName" value="time" />
<property name="className" value="java.sql.Time" />
</property>
</service>
3.82. WebApiService
WebApiの定義(メタデータ)を管理するサービスです。
インタフェース名
org.iplass.mtp.impl.webapi.WebApiService
実装クラス名
org.iplass.mtp.impl.webapi.WebApiService
WebApiServiceの設定
WebApiを設定します。
設定項目
| 項目 | 値 | 説明 | ||
|---|---|---|---|---|
enableDefinitionApi |
boolean |
DefinitionWebApiを公開するか。 |
||
enableBinaryApi |
boolean |
BinaryWebApiを公開するか。 |
||
enableStubResponse |
boolean |
WebAPI のスタブレスポンス返却機能を有効にするか。有効にする場合は true を指定します。デフォルト値は false です。 |
||
writeEncodedFilenameInBinaryApi |
boolean |
BinaryWebApiのダウンロード操作時、 |
||
unescapeFilenameCharacterInBinaryApi |
String |
BinaryWebApiのダウンロード操作時、 |
||
acceptMimeTypesPatternInBinaryApi |
String |
BinaryWebApi のアップロード操作時、アップロード可能なファイルのMIME Typeパターンを指定します。設定値は正規表現パターンを指定します。 設定例
検証対象となる MIME Type の決定方法については、WebFrontendService uploadFileTypeDetector, FileTypeDetector を参照してください。 |
||
statusMap |
StatusMap、複数指定可 |
Exception発生時に返すステータスコードの対応設定。 |
||
xRequestedWithMap |
Map |
WebApiでX-Requested-Withヘッダをチェックする設定の時に、チェックする項目と比較する値。 |
||
cors |
XHR2(CORS)する際の許可ドメイン設定。 |
以下の項目が設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
exception |
String |
Exceptionのクラス名。 |
status |
int |
Exception発生時のステータスコード。 |
以下の項目が設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
allowOrigin |
String、複数指定可 |
アクセスを許可するドメイン。 |
allowCredentials |
boolean |
認証情報(Cookieなど)のやり取りを許可するか否か。デフォルト値はfalse。 |
設定例
<service>
<interface>org.iplass.mtp.impl.webapi.WebApiService</interface>
<property name="enableDefinitionApi" value="false" />
<property name="enableBinaryApi" value="false" />
<!-- スタブレスポンスを有効にする場合は enableStubResponse プロパティに true を設定する -->
<property name="enableStubResponse" value="false" />
<property name="writeEncodedFilenameInBinaryApi" value="false" />
<property name="unescapeFilenameCharacterInBinaryApi" value="-._~" />
<!-- バイナリファイルアップロード受け入れ可能な MIME Type パターン。正規表現を指定する。 -->
<!-- 設定例
<property name="acceptMimeTypesPatternInBinaryApi" value="^(image/.*|application/pdf|text/csv)$" />
-->
<property name="xRequestedWithMap">
<property name="X-Requested-With" value="XMLHttpRequest" />
</property>
<property name="statusMap">
<property name="exception" value="org.iplass.mtp.auth.NoPermissionException" />
<property name="status" value="403" />
</property>
<property name="statusMap">
<property name="exception" value="org.iplass.mtp.auth.NeedTrustedAuthenticationException" />
<property name="status" value="403" />
</property>
<property name="statusMap">
<property name="exception" value="org.iplass.mtp.tenant.available.UnavailableException" />
<property name="status" value="503" />
</property>
<property name="statusMap">
<property name="exception" value="org.iplass.mtp.ApplicationException" />
<property name="status" value="500" />
</property>
<property name="statusMap">
<property name="exception" value="org.iplass.mtp.SystemException" />
<property name="status" value="500" />
</property>
</service>
3.83. WebAuthnService
WebAuthn仕様による認証を行うためのサービスです。 認証器(パスキー)の登録や認証を行う際に必要な設定を提供します。
インタフェース名
org.iplass.mtp.impl.auth.authenticate.webauthn.WebAuthnService
実装クラス名
org.iplass.mtp.impl.auth.authenticate.webauthn.WebAuthnService
WebAuthnServiceの設定
WebAuthnによる認証を利用する場合、WebAuthnServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
signatureAlgorithms |
String、複数指定可 |
サポートする署名アルゴリズムのリスト。 |
optionsTimeoutMinutes |
int |
認証器(パスキー)登録時、認証時のタイムアウト時間(分)。デフォルト値は5です。 |
registrationLimitOfAuthenticatorPerUser |
int |
ユーザーごとに登録可能な認証器(パスキー)の上限数。デフォルト値は3です。 |
metadataStatementRepository |
認証器のメタデータを管理するリポジトリ。 |
|
userHandleSupplier |
ユーザーハンドルの生成を提供するサプライヤー。 |
認証器のメタデータを管理するためのリポジトリです。 認証器の信頼性を検証するために利用されます。 class に com.webauthn4j.metadata.MetadataStatementRepository の実装クラスを指定します。 MetadataStatementRepositoryの実装クラスは、WebAuthn4Jにて提供される実装クラスもしくは CacheableMetadataStatementRepository を利用可能です。
メタデータをiPLAssのCacheStoreを利用してキャッシュするMetadataStatementRepositoryの実装です。 CacheableMetadataStatementRepository内部でWebAuthn4Jにて提供されるLocalFileMetadataBLOBProvider、LocalFilesMetadataStatementsProviderを用いて メタデータを解決します。 class は org.iplass.mtp.impl.auth.authenticate.webauthn.CacheableMetadataStatementRepository を指定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
metadataBLOBFilePath |
String |
ローカルに配置されたメタデータBLOBファイルのパス。メタデータBLOBファイルはFIDO AllianceのFIDO Metadata Serviceにて提供されます。 |
notFidoCertifiedAllowed |
boolean |
FIDO認定されていない認証器を許可するかどうか。デフォルト値はfalseです。 |
selfAssertionSubmittedAllowed |
boolean |
自己申告された認証器を許可するかどうか。デフォルト値はfalseです。 |
individualMetadataStatementFilePath |
String、複数指定可 |
メタデータBLOBファイルに格納されていない個別のメタデータステートメントファイルのローカルファイルパス。 |
ユーザーハンドルの生成を提供するインタフェースです。 classは org.iplass.mtp.impl.auth.authenticate.webauthn.userhandle.UserHandleSupplier を実装するクラスを指定します。 標準で次の HashingUserHandleSupplier を提供します。
Userエンティティの oid を元にハッシュ値をユーザハンドルとするUserHandleSupplierの実装です。
主な設定項目
| 項目 | 値 | 説明 |
|---|---|---|
algorithm |
String |
ハッシュアルゴリズム(例: SHA-256)。 |
salt |
String |
ハッシュ計算時に使用するソルト値。 |
設定例
<service>
<interface>org.iplass.mtp.impl.auth.authenticate.webauthn.WebAuthnService</interface>
<property name="signatureAlgorithms" value="EdDSA" />
<property name="signatureAlgorithms" value="ES512" />
<property name="signatureAlgorithms" value="ES384" />
<property name="signatureAlgorithms" value="ES256" />
<property name="signatureAlgorithms" value="RS512" />
<property name="signatureAlgorithms" value="RS384" />
<property name="signatureAlgorithms" value="RS256" />
<property name="optionsTimeoutMinutes" value="5" />
<property name="userHandleSupplier" class="org.iplass.mtp.impl.auth.authenticate.webauthn.userhandle.HashingUserHandleSupplier">
<property name="algorithm" value="SHA-256" />
<property name="salt" value="set your own salt value" />
</property>
<property name="metadataStatementRepository" class="org.iplass.mtp.impl.auth.authenticate.webauthn.CacheableMetadataStatementRepository">
<property name="metadataBLOBFilePath" value="path/to/metadataBLOBFile" />
<property name="individualMetadataStatementFilePath" value="path/to/individualMetadataStatementFilePath1" />
<property name="individualMetadataStatementFilePath" value="path/to/individualMetadataStatementFilePath2" />
</property>
</service>
3.84. WebFrontendService
Webアプリケーション全般の動作を管理するサービスです。
インタフェース名
org.iplass.mtp.impl.web.WebFrontendService
実装クラス名
org.iplass.mtp.impl.web.WebFrontendService
WebFrontendServiceの設定
Webアプリケーション共通の振る舞いを設定します。
設定項目
| 項目 | 値 | 説明 | ||
|---|---|---|---|---|
defaultContentType |
String |
TemplateのContent Disposition TypeがDefaultの場合に指定するContentType。
未指定時は |
||
defaultClientCacheType |
String |
Actionのデフォルトのクライアントキャッシュ。
キャッシュを許可する場合は デフォルトのクライアントキャッシュでは、 |
||
defaultCacheControlType |
String |
WebAPIのデフォルトのキャッシュコントロール設定。
キャッシュを許可する場合は デフォルトのキャッシュコントロール設定では、 |
||
staticContentPath |
String |
静的コンテンツを格納しているルートパス。 未指定の場合はアプリケーションのコンテキストパス(servletContextPath)が利用されます。 通常は未指定で構いません。 |
||
excludePath |
String、複数指定可 |
iPLAss管理対象外のリソースのパス。 正規表現で指定します。 指定するパスのパターンにはservletContextPathは含めません。 このパスに一致するパスの場合は、iPLAss(DispatcherFilter)では一切処理(テナント確定、権限チェック、Action/WebApi定義の実行等)せず、後続のFilterChainにdoFilter()します。 静的コンテンツのパス、独自実装のServletのパスなどが指定されます。 |
||
acceptPath |
String、複数指定可 |
iPLAssでの処理を受け付けるリソースのパス。 正規表現で指定します。 指定するパスのパターンにはtenantContextPathは含めません。 未指定の場合は、excludePathにマッチしないリソースパスはすべてiPLAssで処理されます。 acceptPathにマッチしない場合は、HTTPステータス404が返却されます。 通常は未指定で構いませんが、サーバ毎に実行するAction/WebApiを限定したい場合などに利用可能です。 また、次に説明するrejectPathと組み合わせて利用することが可能です。 |
||
rejectPath |
String、複数指定可 |
iPLAssでの処理を拒否するリソースのパス。 正規表現で指定します。 指定するパスのパターンにはtenantContextPathは含めません。 rejectPathが未指定の場合は、excludePathにマッチしないリソースパスはすべてiPLAssで処理されます。 通常は未指定で構いませんが、サーバ毎に実行するAction/WebApiを限定したい場合などに利用可能です。 acceptPathと組み合わせて指定することが可能です。
|
||
throughPath |
String、複数指定可 |
Action/WebApi定義にマッピングされないリソースのパス。 正規表現で指定します。 指定するパスのパターンにはtenantContextPathは含めません。 このパスに一致するパスの場合は、iPLAss(DispatcherFilter)にてテナントの確定処理まで行われますが、iPLAss内に定義されるAction/WebApiを呼び出さず、後続FilterChainにdoFilter()します。 |
||
restPath |
String |
WebApiのパス定義を設定します。 iPLAssの処理において、restPathに指定された文字列で開始するリソースパスはWebApiとして処理します。restPathの後をWebApi名として処理します。 |
||
requestRestriction |
RequestRestriction、複数指定可 |
HTTPリクエストに対する制約(最大リクエストボディサイズ、許可するHTTP Methodなど)を定義可能です。 |
||
errorUrlSelector |
エラーページの表示を行うErrorUrlSelector。 |
|||
loginUrlSelector |
ログインページの表示を行うLonginUrlSelector。 |
|||
logoutUrl |
String |
ログアウト時にキックするURL。 |
||
contentDispositionPolicy |
ContentDispositionPolicy、複数指定可 |
ContentDispositionの出力設定。 |
||
tempFileDir |
String |
テンポラリファイル格納パス。 未指定時は「jakarta.servlet.context.tempdir」を使用します。 |
||
maxUploadFileSize |
long |
ファイルアップロード時のサイズ上限。 -1を指定した場合は上限がなくなります。未指定時は-1となります。 |
||
uploadFileScanner |
ウィルススキャン実行設定。 |
|||
uploadFileTypeDetector |
アップロードファイルの MIME Type(メディアタイプ)を検出する機能。 |
|||
isExecMagicByteCheck |
boolean |
アップロードファイルのマジックバイトチェックを行うか。 |
||
magicByteChecker |
アップロードファイルのマジックバイトチェック設定。 |
|||
directAccessPort |
String |
ダイレクトアクセスポート。 このポートの場合テナントのurlForRequest指定は無効となります。 |
||
transactionTokenMaxSize |
int |
トランザクショントークンの保有上限。 |
||
welcomeAction |
String、複数指定可 |
リクエストされたURLのアクション部分が「/」の場合に、代わりに実行するアクション。 |
||
redirectAfterLogin |
boolean |
未ログイン状態でアクセスしたアクションに対して、ログイン後にリダイレクトを行うか。 リダイレクトを行う場合、アクションがGETメソッドを許可している必要があります。 |
||
tenantAsDomain |
boolean |
テナントをHTTP Headerの |
||
fixedTenant |
String |
設定された値を固定の単一のテナントとして扱います。 |
||
mdc |
Stringもしくは MdcValueResolver、Map形式 |
slf4jのMDCへセットする値を設定します。keyにMDCのkey名、値に次のStringもしくはMdcValueResolverを実装したクラスを指定します。
|
||
maxMultipartParameterCount |
long |
ファイルアップロード等のマルチパートリクエスト時のパラメータ数を制限する最大値を設定します。パラメータ数が制限を超過したリクエストは拒否されます。 パラメータ数を制限しない場合は -1 を設定します。デフォルト値は 10,000 です。 |
classはorg.iplass.mtp.impl.web.RequestRestrictionを指定します。
以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
pathPattern |
String |
制約を適用するパスの正規表現を指定します。 指定するパスのパターンにはtenantContextPathは含めません。 pathPatternを指定しないRequestRestrictionを1つだけ定義することが可能です。その他のRequestRestriction定義のpathPatternに一致しない場合に適用するデフォルトの制約を定義することが可能です。 |
allowMethods |
String、複数指定可 |
許可するHTTP Methodを指定。
|
allowContentTypes |
String、複数指定可 |
許可するリクエストのContentTypeを指定。
|
maxBodySize |
long |
ボディコンテンツの最大サイズ。-1指定の場合は無制限となります。 未指定時のデフォルト値は-1です。 |
maxFileSize |
long |
アップロードファイルの最大サイズ。-1指定の場合は無制限となります。 未指定時のデフォルト値は-1です。 |
cors |
XHR2(CORS)する際の許可ドメイン設定。 |
|
force |
boolean |
Action定義、WebApi定義で個別に制約が設定されている場合、どちらの定義を優先するかを指定します。 trueの場合、本設定(RequestRestrictionの設定)が優先されます。 falseの場合、Action定義、WebApi定義での個別の設定が優先されます。 未指定時のデフォルト値はfalseです。 |
以下の項目が設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
allowOrigin |
String、複数指定可 |
アクセスを許可するドメイン。 |
allowCredentials |
boolean |
認証情報(Cookieなど)のやり取りを許可するか否か。デフォルト値はfalse。 |
classはorg.iplass.mtp.impl.web.ErrorUrlSelectorの実装クラスを指定します。
標準で、以下のErrorUrlSelectorを提供します。
-
org.iplass.gem.GemErrorUrlSelector
-
org.iplass.gem.EnterpriseGemErrorUrlSelector
-
org.iplass.mtp.mdc.MdcErrorUrlSelector
GemErrorUrlSelector、EnterpriseGemErrorUrlSelector、MdcErrorUrlSelectorは設定変更可能な項目はありません。
classは、org.iplass.mtp.impl.web.CompositeErrorUrlSelectorを指定します。
パス単位でErrorUrlSelectorを切り替えることが可能なErrorUrlSelectorです。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
selectorMap |
ErrorUrlSelector, Map形式 |
Keyに処理したいリクエストパス、Valueに |
classはorg.iplass.mtp.impl.web.LoginUrlSelectorの実装クラスを指定します。
標準で、以下のLoginUrlSelectorを提供します。
-
org.iplass.gem.GemLoginUrlSelector
-
org.iplass.mtp.mdc.MdcLoginUrlSelector
GemLoginUrlSelector及びMdcLoginUrlSelectorは設定変更可能な項目はありません。
classはorg.iplass.mtp.impl.web.ContentDispositionPolicyを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
userAgentKey |
String |
UserAgent識別子(*はデフォルト)。 |
contentDispositionTypeName |
String |
ContentDispositionType名(*は全て)。 |
unescapeCharacter |
String |
エスケープしない文字(Alphabet、数値は無条件でエスケープ除外)。 |
defaultContentDispositionTypeName |
String |
未指定時のContentDispositionType名。 |
useBothFilenameAttributes |
boolean |
|
classはorg.iplass.mtp.impl.web.fileupload.FileScannerの実装クラスを指定します。
標準で、ウィルススキャンの実行を行うorg.iplass.mtp.impl.web.fileupload.DefaultVirusScannerを提供します。 DefaultVirusScannerは以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
commandPath |
String、必須 |
ウィルススキャンコマンドのパス。
|
timeout |
long、必須 |
ウィルススキャンのタイムアウト時間(秒)。 |
errorOnTimeout |
boolean |
タイムアウトした場合、エラーとして処理中断するか否か。デフォルト値はfalseです。 |
successExitValue |
int、複数指定可 |
スキャンが正常に終了したことを表すexit code (status)。指定された場合、当該のexit code (status)が返却されない場合はエラーとして処理中断します。 |
org.iplass.mtp.impl.web.fileupload.FileTypeDetector の実装クラスを指定します。
標準機能として、以下の FileTypeDetector を提供します。
-
org.iplass.mtp.impl.web.fileupload.DefaultFileTypeDetector
-
標準で設定される FileTypeDetector です。MIME Type(メディアタイプ)はブラウザが送信した値となります。
-
DefaultFileTypeDetector の設定項目はありません。
-
-
org.iplass.mtp.impl.web.fileupload.TikaFileTypeDetector
-
Apache Tika を利用した FileTypeDetector です。MIME Type(メディアタイプ)は Tika 機能によりアップロードファイルを検証し決定します。
-
classは TikaFileTypeDetector は以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
fileUploadTikaAdapter |
ファイルアップロード機能で利用する Tika 依存関係を解消するアダプタ。 |
|
substitutionMediaType |
Map形式 |
ファイルタイプ検出時に特定のMimeタイプの場合、別のMimeタイプに置き換える設定です。name 属性に置換対象のMimeタイプ、value 属性に置換後のMimeタイプを設定します。 |
org.iplass.mtp.impl.web.fileupload.FileUploadTikaAdapter の実装クラスを指定します。
標準のアダプタ実装として org.iplass.mtp.impl.web.fileupload.FileUploadTikaAdapterImpl を提供します。
TikaFileTypeDetector で抽出可能な MediaType(MimeType) と TikaMagicByteChecker で検査可能なファイル種別について、Tika 設定の違いによる不整合を避けるために、Tika インスタンスを共有することを推奨します。
インスタンスを共有するためには、FileUploadTikaAdapter インターフェースの実装クラスを bean 定義し、TikaFileTypeDetector、TikaMagicByteChecker のプロパティで参照します。
FileUploadTikaAdapterImpl は以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
tikaConfigXml |
String |
ファイルアップロード機能で利用する Apache Tika 設定ファイル(tika-config.xml)を指定します。 Apache Tika 設定ファイル内で Mimeタイプ定義ファイル(tika-mimetypes.xml)を指定することで、カスタマイズした定義を利用することができます。 設定ファイル tika-config.xml, tika-mimetypes.xml の定義方法は、公式サイトを確認してください。 |
classはorg.iplass.mtp.impl.web.fileupload.MagicByteCheckerの実装クラスを指定します。
標準機能として、以下の MagicByteChecker を提供します。
-
org.iplass.mtp.impl.web.fileupload.DefaultMagicByteChecker
-
標準で設定される MagicByteChecker です。条件(Mimeタイプと拡張子)に一致するルールが指定されている場合、そのルールで定義されているマジックバイトのどれかが一致するかをチェックします。
-
-
org.iplass.mtp.impl.web.fileupload.TikaMagicByteChecker
-
Apache Tika を利用した MagicByteChecker です。Apache Tika のMimeタイプ設定(tika-mimetypes.xml)から定義情報を抽出し、拡張子・マジックバイトのチェックを実施します。
-
TikaMagicByteChecker を利用する場合は、FileTypeDetector の設定を TikaFileTypeDetector にすることを推奨します。
-
DefaultMagicByteCheckerは以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
magicByteRule |
MagicByteRule、複数指定可 |
マジックバイトをチェックするルール |
classはorg.iplass.mtp.impl.web.fileupload.MagicByteRuleを指定します。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
mimeType |
Mimeタイプの条件 |
|
extension |
拡張子の条件 |
|
magicByte |
String、複数指定可 |
比較するマジックバイトの先頭を指定します。 |
classはorg.iplass.mtp.impl.web.fileupload.MagicByteRuleConditionを指定します。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
useRegex |
boolean |
条件比較で正規表現を利用するか。trueの場合、patternの値を正規表現のパターンとしてチェックします。falseの場合、patternの値を文字列として比較します。デフォルト値はfalseです。 |
pattern |
String、必須 |
条件のパターン値 |
TikaMagicByteCheckerは以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
fileUploadTikaAdapter |
ファイルアップロード機能で利用する Tika 依存関係を解消するアダプタ。 |
|
checkExtension |
boolean |
アップロードファイルの拡張子が Tika Mimeタイプに定義されている拡張子に含まれるかのチェック設定。デフォルト設定はチェックする(true)です。 |
readMagicLength |
int |
マジックバイトチェック時に読み取るバイト長。デフォルト設定は 65,536 です。 |
throwExceptionIfMimeTypeIsNull |
boolean |
Tika Mimeタイプを見つけることができない場合、チェックエラーとする設定。デフォルト設定はチェックエラーとしない(false)です。 |
throwExceptionIfFileCannotRead |
boolean |
マジックバイトチェック時にチェック対象ファイルを読み取れない場合、チェックエラーとする設定。デフォルト設定はチェックエラーとしない(false)です。 |
substitutionMediaType |
Map形式 |
マジックバイトチェック時に特定のMimeタイプの場合、別のMimeタイプに読み替える設定です。name 属性に読み替え対象のMimeタイプ、value 属性に読み替え後のMimeタイプを設定します。FileTypeDetector で検出した Mimeタイプでマジックバイトチェックができない場合に利用します。 具体例として、"application/vnd.apple.keynote.13" は、Mimeタイプを検出できずマジックバイトチェックが実施できません。マジックバイトチェックを実施するためには、"application/vnd.apple.keynote" に読み替える必要があります。 |
classはorg.iplass.mtp.impl.web.mdc.MdcValueResolverの実装クラスを指定します。
標準で、以下のMdcValueResolverを提供します。
classはorg.iplass.mtp.impl.web.mdc.UuidMdcValueResolverを指定します。
UUIDを生成するMdcValueResolverです。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
secure |
boolean |
UUIDの生成にSecureRandomを利用するか否か。デフォルト値はtrueです。falseの場合はIDを高速に生成可能ですが疑似乱数ベースとなります。 |
WebFrontendServiceのmdcへの設定ではStringにて、
generateUuid を指定することによりsecure=trueのUuidMdcValueResolverが設定されます。
generateInsecureUuid を指定することによりsecure=falseのUuidMdcValueResolverが設定されます。
classはorg.iplass.mtp.impl.web.mdc.RemoteHostMdcValueResolverを指定します。
ServletRequestからremoteHostの値を取得します。
WebFrontendServiceのmdcへの設定ではStringにて、
remoteHost を指定することによりRemoteHostMdcValueResolverが設定されます。
classはorg.iplass.mtp.impl.web.mdc.RemoteAddrMdcValueResolverを指定します。
ServletRequestからremoteAddrの値を取得します。
WebFrontendServiceのmdcへの設定ではStringにて、
remoteAddr を指定することによりRemoteAddrMdcValueResolverが設定されます。
classはorg.iplass.mtp.impl.web.mdc.HttpHeaderMdcValueResolverを指定します。
ServletRequestからHTTPヘッダーの値を取得します。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
headerName |
String |
取得するHTTPヘッダー名 |
WebFrontendServiceのmdcへの設定ではStringにて、
header.[header名] の形式で指定することによりheaderName=[header名]のHttpHeaderMdcValueResolverが設定されます。
classはorg.iplass.mtp.impl.web.mdc.SessionIdMdcValueResolverを指定します。
リクエスト開始時に既に作成されているセッションのIDを設定します。
WebFrontendServiceのmdcへの設定ではStringにて、
sessionId を指定することによりSessionIdMdcValueResolverが設定されます。
classはorg.iplass.mtp.impl.aws.web.mdc.AmznTraceIdMdcValueResolverを指定します。
|
AWS SDK for Java 1.x はメンテナンスモードになっており、2025年12月 にサポートを終了する予定です。 |
HTTPヘッダーに設定されているX-Amzn-Trace-Idの値の特定のフィールド値を取得します。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
field |
String |
取得するフィールド名。RootもしくはSelfを指定。 |
classはorg.iplass.mtp.impl.web.mdc.awsv2.AmznTraceIdMdcValueResolverを指定します。
HTTPヘッダーに設定されているX-Amzn-Trace-Idの値の特定のフィールド値を取得します。以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
field |
String |
取得するフィールド名。RootもしくはSelfを指定。 |
設定例
<service>
<interface>org.iplass.mtp.impl.web.WebFrontendService</interface>
<class>org.iplass.mtp.impl.web.WebFrontendService</class>
<!-- welcome file(action) -->
<property name="welcomeAction" value="index" />
<property name="transactionTokenMaxSize" value="50" />
<property name="defaultClientCacheType" value="CACHE" />
<!-- DispatcherFilterで処理しないpathの定義 -->
<!-- static contents -->
<property name="excludePath" value="(/errorhtml/.*)|(/images/.*)|(/scripts/.*)|(/styles/.*)|(/favicon.ico)|(/webjars/.*)" />
<!-- servlet implementation -->
<property name="excludePath" value="(/checkStatus)|(/cmcs)" />
<!-- gemモジュールのみ許可 -->
<property name="acceptPath" value="/gem/.*" />
<property name="acceptPath" value="/api/gem/.*" />
<!-- WebApi(REST)のpathの定義 -->
<property name="restPath" value="/api/" />
<!-- デフォルトのRequestRestriction定義 -->
<property name="requestRestriction">
<property name="allowMethods" value="*" />
<property name="allowContentTypes" value="*/*" />
<property name="force" value="false" />
</property>
<!-- api/sample配下(WebApi)に対するRequestRestriction定義 -->
<property name="requestRestriction">
<property name="pathPattern" value="^/api/sample/.*" />
<property name="allowMethods" value="GET" />
<property name="allowMethods" value="POST" />
<property name="allowContentTypes" value="*/*" />
<property name="cors">
<!-- https://sample.iplass.org、https://sample2.iplass.orgからのCORSを許可 -->
<property name="allowOrigin" value="https://sample.iplass.org" />
<property name="allowOrigin" value="https://sample2.iplass.org" />
<property name="allowCredentials" value="true" />
</property>
<property name="force" value="false" />
</property>
<!-- ログアウト時にキックするURL -->
<property name="logoutUrl" value="logout" />
<!-- エラーページの設定 -->
<property name="errorUrlSelector" class="org.iplass.gem.GemErrorUrlSelector" />
<!-- ログインページの設定 -->
<property name="loginUrlSelector" class="org.iplass.gem.GemLoginUrlSelector" />
<!-- テンポラリファイル格納パス 未指定時は「jakarta.servlet.context.tempdir」を使用 -->
<!--
<property name="tempFileDir" value="/tmp" />
-->
<!-- ダイレクトアクセスポート このポートの場合テナントのurlForRequest指定は無効 -->
<!--
<property name="directAccessPort" value="8080" />
-->
<!-- Webクライアントのモード DEBUGを指定した場合、WebApiアクセスエラー時にエラー内容を表示 -->
<!--
<property name="clientMode" value="DEBUG" />
-->
<!-- ContentDispositionの出力設定 -->
<!-- default -->
<property name="contentDispositionPolicy" class="org.iplass.mtp.impl.web.ContentDispositionPolicy">
<property name="userAgentKey" value="*" />
<property name="contentDispositionTypeName" value="*" />
<property name="unescapeCharacter" value="-._~" />
<property name="defaultContentDispositionTypeName" value="ATTACHMENT" />
<property name="useBothFilenameAttributes" value="false" />
</property>
<!-- IE11 -->
<!-- IE11の場合、INLINEではブランクをエスケープしない -->
<property name="contentDispositionPolicy" class="org.iplass.mtp.impl.web.ContentDispositionPolicy">
<property name="userAgentKey" value="Trident" />
<property name="contentDispositionTypeName" value="INLINE" />
<property name="unescapeCharacter" value="-._~ " />
<property name="useBothFilenameAttributes" value="false" />
<!--
<property name="defaultContentDispositionTypeName" value="" />
-->
</property>
<!--
追加する場合、userAgentKey、contentDispositionTypeNameごとにエスケープしない文字を指定。
contentDispositionTypeName: * | ATTACHMENT | INLINE
unescapeCharacter: アルファベット、数字以外で除外する文字
-->
<!--
<property name="contentDispositionPolicy" class="org.iplass.mtp.impl.web.ContentDispositionPolicy">
<property name="userAgentKey" value="XXXX" />
<property name="contentDispositionTypeName" value="INLINE" />
<property name="unescapeCharacter" value="-._~" />
</property>
-->
<!-- ウィルススキャン実行 -->
<property name="uploadFileScanner" class="org.iplass.mtp.impl.web.fileupload.DefaultVirusScanner" >
<property name="commandPath" value="path/to/virusScanner ${file}" />
<property name="timeout" value="15" />
</property>
<!--
FileUpload機能用の Tika アダプタ。
TikaFileTypeDetector、TikaMagicByteChecker でインスタンスを共有することを想定。
tikaConfigXml を指定しない場合は、apache tika のデフォルト設定で動作します。
-->
<!--
<bean name="tikaAdapter" class="org.iplass.mtp.impl.web.fileupload.FileUploadTikaAdapterImpl">
<property name="tikaConfigXml" value="/tika-config.xml" />
</bean>
-->
<!-- ファイルタイプ(MIME Type・メディアタイプ)検出機能 -->
<!-- デフォルト。未指定の場合も以下のインスタンスが設定される -->
<!--
<property name="uploadFileTypeDetector" class="org.iplass.mtp.impl.web.fileupload.DefaultFileTypeDetector" />
-->
<!-- Apache Tika を利用したファイルタイプ(MIME Type・メディアタイプ)検出機能。bean tikaAdapter を有効化すること。 -->
<!--
<property name="uploadFileTypeDetector" class="org.iplass.mtp.impl.web.fileupload.TikaFileTypeDetector">
<property name="fileUploadTikaAdapter" ref="tikaAdapter" />
</property>
-->
<!-- MagicByteCheck実行するか -->
<property name="isExecMagicByteCheck" value="true" />
<!-- MagicByteCheck実行 -->
<property name="magicByteChecker" class="org.iplass.mtp.impl.web.fileupload.DefaultMagicByteChecker" >
<property name="magicByteRule" >
<property name="mimeType" >
<property name="pattern" value="image/gif" />
</property>
<property name="magicByte" value="474946383761" />
<property name="magicByte" value="474946383961" />
</property>
<property name="magicByteRule" >
<property name="mimeType" >
<property name="pattern" value="image/bmp" />
</property>
<property name="magicByte" value="424d" />
</property>
<property name="magicByteRule" >
<property name="mimeType" >
<property name="pattern" value="image/jpeg" />
</property>
<property name="magicByte" value="ffd8" />
</property>
<property name="magicByteRule" >
<property name="mimeType" >
<property name="pattern" value="image/png" />
</property>
<property name="magicByte" value="89504e470d0a1a0a" />
</property>
<property name="magicByteRule" >
<property name="mimeType" >
<property name="pattern" value="application/x-shockwave-flash" />
</property>
<property name="magicByte" value="465753" />
<property name="magicByte" value="435753" />
</property>
<property name="magicByteRule" >
<property name="mimeType" >
<property name="pattern" value="application/pdf" />
</property>
<property name="magicByte" value="25504446" />
</property>
<property name="magicByteRule" >
<property name="mimeType" >
<property name="useRegex" value="true" />
<property name="pattern" value="^application/vnd[.]ms-.*|^application/msword.*" />
</property>
<property name="extension" class="org.iplass.mtp.impl.web.fileupload.MagicByteRuleCondition" >
<property name="pattern" value="csv" />
</property>
</property>
<property name="magicByteRule" >
<property name="mimeType" >
<property name="useRegex" value="true" />
<property name="pattern" value="^application/vnd[.]ms-.*|^application/msword.*" />
</property>
<property name="magicByte" value="504b030414000600" />
<property name="magicByte" value="d0cf11e0a1b11ae1" />
<property name="magicByte" value="7b5c72746631" />
</property>
<property name="magicByteRule" >
<property name="extension" >
<property name="pattern" value="xls" />
</property>
<property name="magicByte" value="d0cf11e0a1b11ae1" />
</property>
<property name="magicByteRule" >
<property name="mimeType" >
<property name="useRegex" value="true" />
<property name="pattern" value="^application/vnd[.]openxmlformats-officedocument.*" />
</property>
<property name="magicByte" value="504b030414000600" />
<property name="magicByte" value="d0cf11e0a1b11ae1" />
<property name="magicByte" value="504b030414000808" />
<property name="magicByte" value="504B03040A000000" />
<property name="magicByte" value="504B030414000000" />
</property>
</property>
<!--
Apache Tika を利用した MagicByteCheck 処理。bean tikaAdapter を有効化する。
本チェック機能を利用する場合は、MimeType検出とMagicByteチェック処理を Tika を利用することを推奨する。
MimeType検出機能で tika を利用する為には property uploadFileTypeDetector を TikaFileTypeDetector に変更する。
-->
<!--
<property name="magicByteChecker" class="org.iplass.mtp.impl.web.fileupload.TikaMagicByteChecker" >
<property name="fileUploadTikaAdapter" ref="tikaAdapter" />
<property name="checkExtension" value="true" />
<property name="readMagicLength" value="65536" />
<property name="throwExceptionIfMimeTypeIsNull" value="false" />
<property name="throwExceptionIfFileCannotRead" value="false" />
<property name="substitutionMediaType">
<property name="application/vnd.apple.keynote.13" value="application/vnd.apple.keynote" />
</property>
</property>
-->
<!-- MDC設定 -->
<property name="mdc">
<property name="traceId" class="org.iplass.mtp.impl.web.mdc.awsv2.AmznTraceIdMdcValueResolver">
<property name="field" value="Root" />
</property>
<property name="ipaddress" value="remoteAddr" />
<property name="ua" value="header.User-Agent" />
</property>
</service>
3.85. WebhookService
WebhookTemplateの定義(メタデータ)の管理と、Webhookを実行する為のサービスです。
インタフェース名
org.iplass.mtp.impl.webhook.WebhookService
実装クラス名
org.iplass.mtp.impl.webhook.WebhookServiceImpl
WebhookServiceの設定
Webhookを利用する場合、WebhookServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
retry |
boolean |
通信失敗時にリトライを行うか否かを指定します。 |
retryMaximumAttempts |
int |
(リトライを行う場合)最大何回リトライを行うかを設定します。 |
retryInterval |
int |
(リトライを行う場合)リトライ間隔をミリ秒単位で指定します。 |
hmacHashAlgorithm |
String |
HMAC認証でキーを生成する際のハッシュアルゴリズムを指定します。未指定の場合のデフォルト値は "HmacSHA256"です。 |
hmacDefaultHeaderName |
String |
HMACの値をセットするヘッダ名を指定します。未指定の場合のデフォルト値は"X-IPLASS-HMAC"です。WebhookTemplate定義でも、HMACの値をセットするヘッダ名を指定した場合は、WebhookTemplate定義の設定が優先されます。 |
httpClientConfig |
Webhookを送る時のHTTPコネクションに関する設定です。 |
classはorg.iplass.mtp.impl.http.HttpClientConfigを指定します。 以下の項目を設定可能です。
| 項目 | 値 | 説明 |
|---|---|---|
connectionTimeout |
int |
HTTPコネクションを確立する際のタイムアウト(ミリ秒)。デフォルト値は30000(30秒)です。 |
soTimeout |
int |
HTTP通信時のsocket timeout (SO_TIMEOUT)(ミリ秒)。デフォルト値は30000(30秒)です。 |
poolingMaxTotal |
int |
httpコネクションのプールの最大数。デフォルト値は20です。 |
poolingDefaultMaxPerRoute |
int |
ドメイン単位のhttpコネクションの最大数。デフォルト値は2です。 |
poolingTimeToLive |
int |
プールされているhttpコネクションの生存期間(ミリ秒)。デフォルトは無制限です。 |
proxyHost |
String |
プロキシサーバのホスト。 |
proxyPort |
int |
プロキシサーバのポート番号。 |
httpClientBuilderFactory |
カスタムのHttpClientBuilderを生成したい場合に指定します。 |
classはorg.iplass.mtp.impl.http.HttpClientBuilderFactoryを実装するクラスを指定します。
標準で以下のHttpClientBuilderFactoryを提供します。
設定例
<!-- Webhook -->
<service>
<interface>org.iplass.mtp.impl.webhook.WebhookService</interface>
<class>org.iplass.mtp.impl.webhook.WebhookServiceImpl</class>
<property name="retry" value="true" />
<property name="retryMaximumAttempts" value="10" />
<property name="retryInterval" value="500" />
<property name="hmacHashAlgorithm" value="HmacSHA256" />
<property name="hmacDefaultHeaderName" value="X-IPLASS-HMAC" />
<!-- <property name="httpClientConfig" class="org.iplass.mtp.impl.http.HttpClientConfig"> -->
<!-- <property name="proxyHost" value="localhost" /> -->
<!-- <property name="proxyPort" value="8080" /> -->
<!-- <property name="poolingMaxTotal" value="20" /> -->
<!-- <property name="poolingDefaultMaxPerRoute" value="20" /> -->
<!-- <property name="poolingTimeToLive" value="50000" /> -->
<!-- </property> -->
</service>
<!-- WebhookEndpoint -->
<service>
<interface>org.iplass.mtp.impl.webhook.endpoint.WebhookEndpointService</interface>
<class>org.iplass.mtp.impl.webhook.endpoint.WebhookEndpointServiceImpl</class>
</service>
3.86. WorkflowService
ワークフローの動作を管理するサービスです。
インタフェース名
org.iplass.mtp.impl.workflow.WorkflowService
実装クラス名
org.iplass.mtp.impl.workflow.WorkflowService
WorkflowServiceの設定
WorkflowServiceを設定します。
設定項目
| 項目 | 値 | 説明 |
|---|---|---|
workflowInstanceStore |
ワークフローインスタンスの管理方法。 |
|
historyLogStore |
ワークフロー履歴の管理方法。 |
|
queueForWorkflow |
String |
ワークフロー用のキュー名。 |
classにorg.iplass.mtp.impl.workflow.WorkflowInstanceStoreの実装クラスを指定します。
標準でorg.iplass.mtp.impl.workflow.store.EntityWorkflowInstanceStoreを提供します。 ワークフローインスタンスをEntityとして管理します。 設定可能な項目はありません。
classにorg.iplass.mtp.impl.workflow.HistoryLogStoreの実装クラスを指定します。
標準で以下のHistoryLogStoreを提供します。
ワークフロー履歴をログとして管理します。
classはorg.iplass.mtp.impl.workflow.store.LoggerHistoryLogStoreを指定します。 設定可能な項目はありません。
ワークフロー履歴をEntityとして管理します。
classはorg.iplass.mtp.impl.workflow.store.EntityHistoryLogStoreを指定します。 設定可能な項目はありません。
設定例
<service final="true">
<interface>org.iplass.mtp.impl.workflow.WorkflowService</interface>
<class>org.iplass.mtp.impl.workflow.WorkflowService</class>
<property name="workflowInstanceStore" class="org.iplass.mtp.impl.workflow.store.EntityWorkflowInstanceStore" />
<property name="historyLogStore" class="org.iplass.mtp.impl.workflow.store.EntityHistoryLogStore" />
</service>
4. ログ(Slf4j/Logback)
iPLAssではログ出力にSlf4j/Logbackを利用しています。
4.1. ロガー名
iPLAssでは以下のログが標準で出力されます。 必要に応じログファイル等に出力したいログのロガー名をlogback.xmlに指定してください。
-
監査に関するログ
ロガー名 出力内容 mtp.audit
データの操作に関するログが出力されます。
mtp.audit.admin
AdminConsoleでの操作に関するログが出力されます。 ファイルのダウンロード操作(
mtp.audit.admin.download)、AuditLogデータのメンテナンス操作(mtp.audit.admin.auditlog)に関するログが出力されます。mtp.audit.download
ファイルのダウンロード操作に関するログが出力されます。
mtp.audit.porting.entity
エンティティの操作に関するログが出力されます。
mtp.audit.porting.metadata
メタデータの操作に関するログが出力されます。
mtp.audit.porting.pack
パッケージの操作に関するログが出力されます。
-
認証に関するログ
ロガー名 出力内容 mtp.auth
認証に関するログが出力されます。
-
実行ログ
ロガー名 出力内容 mtp.action
Actionを呼び出した際の実行ログです。実行時間、クエリー発行回数、エラー内容などが出力されます。
mtp.webapi
Web APIを呼び出した際の実行ログです。実行時間、クエリー発行回数、エラー内容などが出力されます。
mtp.async
非同期実行した際の実行ログです。実行時間、エラー内容などが出力されます。
-
致命的なエラーに関するログ
ロガー名 出力内容 mtp.fatal
致命的なエラーに関するログが出力されます。
mtp.fatal.cube
Cube機能で発生したエラーのログが出力されます。
mtp.fatal.async
非同期実行で発生したエラーのログが出力されます。
mtp.fatal.async.rdb
非同期実行が中断またはリトライ回数を超えた場合にログが出力されます。
mtp.fatal.async.rdb.processworker
非同期実行中に発生したエラーのログが出力されます。
mtp.fatal.asynctask
非同期タスクの実行が中断された場合にログが出力されます。
mtp.fatal.mail
メール送信で発生したエラーのログが出力されます。
mtp.fatal.cluster
クラスタ間通信で発生したエラーのログが出力されます。
mtp.fatal.classloader
GroovyScriptのClassLoaderで発生したエラーのログが出力されます。
-
GroovyScriptに関するログ
ロガー名 出力内容 mtp.script.out
バインド変数outのprintln()メソッドによりログが出力されます。
-
SQLに関するログ
ロガー名 出力内容 org.iplass.mtp.impl.rdb.connection
SQLの実行時間、警告ログが出力されます。
4.2. 診断コンテキスト
iPLAssでは以下の情報が診断コンテキスト(MDC)によりログ出力されます。
| キー名 | ログ出力書式 | 出力値 |
|---|---|---|
taskId |
%X{taskId} |
タスクID |
user |
%X{user} |
ユーザー(クライアントID) |
tenant |
%X{tenant} |
テナントID |
tenantName |
%X{tenantName} |
テナント名 |
action |
%X{action} |
アクション名 |
command |
%X{command} |
コマンド名 |
webapi |
%X{webapi} |
WebApi名 |
traceId |
%X{traceId} |
iplass-ee-awsモジュール 適用の場合、X-Amzn-Trace-IdのRootを出力 |
impersonatedUser |
%X{impersonatedUser} |
代理ログインユーザー |
infinispanRequestId |
%X{infinispanRequestId} |
iplass-infinispan, iplass-ee-infinispan モジュール適用の場合に利用可能。 |
scimDistributeId |
%X{scimDistributeId} |
iplass-ee-web モジュール適用の場合に利用可能。 |
4.3. フィルター
iPLAssでは org.iplass.mtp.impl.logging.logback.LogConditionTurboFilter を提供します。このTurboFilterを適用することにより、テナント単位にて動的にログ出力する条件を変更可能となります。
<configuration>
<turboFilter class="org.iplass.mtp.impl.logging.logback.LogConditionTurboFilter" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %X{tenant} %X{user} %X{command} %X{taskId} %logger{36} - %replace(%msg){'\r|\n', ' '}%n</pattern>
</encoder>
</appender>
:
:
<logger name="org.iplass" level="INFO">
<appender-ref ref="STDOUT" />
</logger>
<logger name="mtp" level="INFO">
<appender-ref ref="STDOUT" />
</logger>
<root level="OFF" />
</configuration>
4.4. 構造化ログ
Logstash Logback Encoderを利用してログをJSON形式で出力可能です。 Action/WebAPIの実行時間、クエリー発行回数などに関しては属性としても出力しています。
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>
:
:
<logger name="org.iplass" level="INFO">
<appender-ref ref="STDOUT" />
</logger>
<logger name="mtp" level="INFO">
<appender-ref ref="STDOUT" />
</logger>
<root level="OFF" />
</configuration>