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 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の機能を管理するためのサービスです。 |
|
OpenID Connect Relying Partyの機能を管理するためのサービスです。 |
|
帳票出力を管理するサービスです。 |
|
SAML認証を行うためのサービスです。 |
|
テナントの稼動状態を管理するサービスです。 |
|
WebApiを管理するサービスです。 |
|
WebApiのJAXBでの変換対象のクラス定義を行うサービスです。 |
|
Webアプリケーション全般の動作を管理するサービスです。 |
|
ODataサービスの動作を管理するサービスです。 |
2.3. Gem services
Gem(Generic Entity Manager)画面に関するサービス群です。
名前 | 概要 |
---|---|
集計機能のサービスです。 |
|
Cube集計のカスタムメジャーのテンプレートを管理するサービスです。 |
|
EntityListing機能のサービスです。 |
|
汎用画面全般の設定を行うサービスです。 |
|
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の実装クラスを指定します。
org.iplass.mtp.impl.auth.authenticate.builtin.BuiltinAuthenticationProvider org.iplass.mtp.impl.auth.authenticate.simpletoken.SimpleAuthTokenAuthenticationProvider org.iplass.mtp.impl.auth.oauth.AccessTokenAuthenticationProvider org.iplass.mtp.impl.auth.authenticate.configfile.ConfigFileAuthenticationProvider org.iplass.mtp.impl.auth.authenticate.jaas.JaasAuthenticationProvider org.iplass.mtp.impl.auth.authenticate.jee.JeeContainerManagedAuthenticationProvider org.iplass.mtp.impl.auth.authenticate.ldap.LdapAuthenticationProvider org.iplass.mtp.impl.auth.authenticate.preexternal.PreExternalAuthenticationProvider org.iplass.mtp.impl.auth.authenticate.x509.X509AuthenticationProvider org.iplass.mtp.impl.auth.authenticate.saml.SamlAuthenticationProvider org.iplass.mtp.impl.auth.authenticate.twostep.TwoStepAuthenticationProvider org.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeAuthenticationProvider org.iplass.mtp.impl.auth.authenticate.knowledgebased.KnowledgeBasedAuthenticationProvider org.iplass.mtp.impl.auth.authenticate.timebased.TimeBasedAuthenticationProvider org.iplass.mtp.impl.auth.authenticate.rememberme.RememberMeTokenAuthenticationProvider
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の値がユニークキーとして設定されます。 userAttributeLDAPから取得するユーザー属性名。複数の設定が可能です。 未指定の場合は、すべての属性を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>
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です。 |
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を利用している場合は、
|
設定例
<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"/>
</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ログに出力する |
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.openserarch.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.openserarch.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.openserarch.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の設定
コミュニティエディション用の動作を設定します。
設定項目
項目 | 値 | 説明 | ||
---|---|---|---|---|
loadWithReference |
boolean |
リクエストのパラメータを基に参照データをロードする際、参照プロパティも合わせてロードするか。デフォルト値は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です。 |
||
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 を参照してください。 |
||
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の設定
エンタープライズエディション用の動作を設定します。 コミュニティエディション用の設定と併せて設定してください。
設定項目
項目 | 値 | 説明 |
---|---|---|
savedListCsvDownloadInterval |
int |
SavedList一覧のCSVダウンロードのインターバル。0を設定した場合は無期限となります。デフォルト値は60000(1分)です。 |
entitylistingSearchInterval |
int |
EntityListingの検索処理のインターバル。0を設定した場合は無期限となります。デフォルト値は60000(1分)です。 |
entitylistingCsvDownloadInterval |
int |
EntityListingのCSVダウンロードのインターバル。0を設定した場合は無期限となります。デフォルト値は60000(1分)です。 |
aggregationCsvDownloadInterval |
int |
AggregationのCSVダウンロードのインターバル。0を設定した場合は無期限となります。デフォルト値は60000(1分)です。 |
aggregationRawdataCsvDownloadInterval |
int |
AggregationのローデータCSVダウンロードのインターバル。0を設定した場合は無期限となります。デフォルト値は60000(1分)です。 |
showBothAggregationCsvDownloadButton |
boolean |
AggregationのCSVダウンロードを集計表の上下に表示するか。デフォルト値はfalseです。 |
dividingTableSideAtCrosstabCsvDownload |
boolean |
Aggregation(Crosstab)のCSVダウンロードで表側を分割して出力するか。デフォルト値はfalseです。 |
dividingTableHeadAtCrosstabCsvDownload |
boolean |
Aggregation(Crosstab)のCSVダウンロードで表頭を分割して出力するか。デフォルト値はfalseです。 |
outputItemLabelCrosstabCsvDownload |
boolean |
Aggregation(Crosstab)のCSVダウンロードで表頭/表側のアイテム名を表示するか。デフォルト値はfalseです。 |
entitylistingSearchLimit |
int |
EntityListingの検索Limit。デフォルト値は10です。 |
entitylistingCsvDownloadWithFooter |
boolean |
EntityListingのCSVダウンロードでフッターを出力するか。デフォルト値はfalseです。 |
entitylistingCsvDownloadFooter |
String |
EntityListingのCSVダウンロードのフッター文言。 |
aggregationCsvDownloadWithFooter |
boolean |
集計のCSVダウンロードでフッターを出力するか。デフォルト値はfalseです。 |
aggregationCsvDownloadFooter |
String |
集計のCSVダウンロードのフッター文言。 |
aggregationRawdataCsvDownloadWithFooter |
boolean |
集計のローデータCSVダウンロードでフッターを出力するか。デフォルト値はfalseです。 |
aggregationRawdataCsvDownloadFooter |
String |
集計のローデータのCSVダウンロードのフッター文言。 |
confirmUserTaskSubmit |
boolean |
ワークフローのタスク編集画面でタスク確認ダイアログを表示するか。デフォルト値はfalseです。 |
confirmUserTaskCancel |
boolean |
ワークフローのタスク編集画面でキャンセル確認ダイアログを表示するか。デフォルト値はfalseです。 |
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"/>
<!-- EntityListingの検索処理のインターバル、無期限(0)/指定ミリ秒(1以上) -->
<property name="entitylistingSearchInterval" value="60000"/>
<!-- EntityListingのCSVダウンロードのインターバル、無期限(0)/指定ミリ秒(1以上) -->
<property name="entitylistingCsvDownloadInterval" value="60000"/>
<!-- AggregationのCSVダウンロードのインターバル、無期限(0)/指定ミリ秒(1以上) -->
<property name="aggregationCsvDownloadInterval" value="60000"/>
<!-- AggregationのローデータCSVダウンロードのインターバル、無期限(0)/指定ミリ秒(1以上) -->
<property name="aggregationRawdataCsvDownloadInterval" value="60000"/>
<!-- AggregationのCSVダウンロードを集計表の上下に表示するか -->
<property name="showBothAggregationCsvDownloadButton" value="false"/>
<!-- Aggregation(Crosstab)のCSVダウンロードで表側を分割して出力するか -->
<property name="dividingTableSideAtCrosstabCsvDownload" value="false"/>
<!-- Aggregation(Crosstab)のCSVダウンロードで表頭を分割して出力するか -->
<property name="dividingTableHeadAtCrosstabCsvDownload" value="false"/>
<!-- Aggregation(Crosstab)のCSVダウンロードで表頭/表側のアイテム名を表示するか -->
<property name="outputItemLabelCrosstabCsvDownload" 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のCSVダウンロードでフッターを出力するか -->
<property name="entitylistingCsvDownloadWithFooter" value="false"/>
<!-- EntityListingのCSVダウンロードのフッター文言 -->
<property name="entitylistingCsvDownloadFooter" value=""/>
<!-- 集計のCSVダウンロードでフッターを出力するか -->
<property name="aggregationCsvDownloadWithFooter" value="false"/>
<!-- 集計のCSVダウンロードのフッター文言 -->
<property name="aggregationCsvDownloadFooter" value=""/>
<!-- 集計のローデータCSVダウンロードでフッターを出力するか -->
<property name="aggregationRawdataCsvDownloadWithFooter" value="false"/>
<!-- 集計のローデータのCSVダウンロードのフッター文言 -->
<property name="aggregationRawdataCsvDownloadFooter" value=""/>
<!-- ワークフローのタスク編集画面でタスク確認ダイアログを表示するか
デフォルトで表示するに設定されています。非表示にしたい場合はfalseを設定してください。
-->
<property name="confirmUserTaskSubmit" value="false"/>
<!-- ワークフローのタスク編集画面でキャンセル確認ダイアログを表示するか
デフォルトで表示するに設定されています。非表示にしたい場合はfalseを設定してください。
-->
<property name="confirmUserTaskCancel" value="false"/>
<!-- アップロード非同期設定 -->
<!-- true(非同期)を設定する場合は、 RdbQueueServiceのuseQueueプロパティをtrueに設定してください。 -->
<property name="csvUploadAsync" value="false"/>
<!-- アップロードステータスポーリングのインターバル、指定ミリ秒 -->
<property name="csvUploadStatusPollingInterval" value="10000"/>
<!-- プルダウンの「選択してください」を表示するか -->
<property name="showPulldownPleaseSelectLabel" 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" <