iPLAss全体に対する設定はXMLベースの設定ファイルにて行います。 設定ファイルはservice-configファイルと呼称します。 本ドキュメントでは、service-configファイルの形式の説明、および設定可能な項目について説明します。

1. service-configファイルについて

service-configファイルはxml形式で記述されます。 また、複数に分割定義されたファイルをマージすることが可能です。

service-configファイルの記述例
<?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>
  • コード上から
    ServiceRegistryInitializerクラスのreplaceConfigFileName(String)メソッドにてservice-configファイルを指定します。 指定後は、ServiceRegistryクラスのreInit()メソッドを呼び出しサービス定義の再初期化を行ってください。

    if (ServiceRegistryInitializer.replaceConfigFileName("/app-service-config.xml")) {
        ServiceRegistry.getRegistry().reInit();
    }

1.3. service-configファイルの分割

service-configファイルは、定義の一部を別ファイルに分割して管理することが可能です。 例えば、環境依存部分の設定を別ファイルとして切り出し管理することが可能です。 また、iPLAssが定義するデフォルト値が設定されたservice-configファイルが提供されているので、それをベースにすることも出来ます。

分割されたファイルは、実行時に1つのservice-configファイルとしてマージされます。 同一Serviceの定義が複数のファイルに存在した場合のマージのされ方は、設定ファイルで指定が可能です。

詳しくはservice-configファイルの構成の説明を参照ください。

1.4. service-configファイルの構成

serviceDefinition要素

service-configのルート要素です。

  • 属性

    属性名 説明

    preprocess

    boolean

    このservice-configファイルの プリプロセス 処理を実施する場合trueを指定します。

  • 子要素

    要素名 説明

    inherits

    String、複数指定可

    この設定ファイルが継承元とする設定ファイルを指定します。 継承元のService定義が読み込まれた後、本体のservice-configファイルに記述された定義が適用されます。

    includes

    String、複数指定可

    この設定ファイルに取り込む設定ファイルを設定します。 本体のservice-configファイルの設定をincludeした設定ファイルで上書きします。

    service

    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、複数指定可

    サービスのプロパティを設定します。

property要素

サービスのプロパティを定義する要素です。
プロパティの要素がjavaBeans形式の場合、再帰的にproperty要素を設定することが可能です。

  • 属性

    属性名 説明

    name

    String

    プロパティ名を設定します。

    value

    String

    プロパティの値を設定します。

    class

    String

    プロパティがjavaBeansの場合、そのクラス名を設定します。クラス名は完全修飾名を設定してください。

    ifnone

    boolean

    このプロパティが継承元または取り込み先に存在しない場合にのみ定義します。デフォルト値はfalseです。

    inherit

    boolean

    このプロパティが継承元または取り込み先に存在する場合は元のプロパティ定義を継承します。デフォルト値はtrueです。

    final

    boolean

    このプロパティ定義の上書きを禁止します。デフォルト値はfalseです。

    encrypted

    boolean

    暗号化された値であるかを設定します。デフォルト値はfalseです。

    additional

    boolean

    このプロパティと同一名のプロパティが継承元または取り込み先に存在する場合、継承や上書きせずに追加するかを設定します。デフォルト値はfalseです。

  • 子要素

    要素名 説明

    value

    String

    プロパティの値を設定します。設定可能な値は文字列型です。属性のvalueの両方が設定された場合は属性のvalueが優先されます。

    property

    property、複数指定可

    ネストされたプロパティの定義を設定します。

    arg

    property、複数指定可

    Beanのコンストラクタにインジェクションする値を指定可能です。 指定可能な属性、要素はproperty型と同様です。 コンストラクタインジェクションする際のnameは、 arg0arg1 のようにarg[引数順]を指定します。

  • 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;
    
        //constructor with args
        public ChildBean2(int age, String name) {
            this.age = age;
            this.name = name;
        }
    
        :
        :
    }

    次のように値を設定するすることが可能です。

    <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>
        </property>
    
    </service>

1.5. 設定値の難読化

service-configファイルに記載される値を難読化出来ます。 難読化する手順は以下の通りです。

難読化方法の設定

難読化方式の設定を記述した暗号化プロパティファイル(crypt.properties)を作成します。

以下の項目を設定できます。

項目名 設定値

keyFactoryAlgorithm

暗号化のための鍵生成アルゴリズム。 未指定の場合はデフォルト値(PBKDF2WithHmacSHA256)

keySalt

鍵生成時のsalt。 未指定の場合はデフォルト値

keyStretch

鍵生成時のストレッチ回数。 未指定の場合はデフォルト値

keyLength

鍵のbit長。 未指定の場合はデフォルト値(128)

cipherAlgorithm

暗号化アルゴリズム。 未指定の場合はデフォルト値(AES)

passphraseSupplier

org.iplass.mtp.impl.core.config.PassphraseSupplierを実装するクラス名を指定する。 PassphraseSupplierには鍵生成時のパスフレーズを取得する処理を実装する。 以下の実装をデフォルトで提供。

org.iplass.mtp.impl.core.config.PropertyFilePassphraseSupplier

プロパティファイルよりパスフレーズを取得

org.iplass.mtp.impl.core.config.ConsolePassphraseSupplier

標準入力よりパスフレーズを入力

org.iplass.mtp.impl.core.config.SystemEnvironmentVariablePassphraseSupplier

システム環境変数(MTP_CONFIG_PASSPHRASE)にてパスフレーズを指定。 (javaシステム変数ではない)

未指定の場合はPropertyFilePassphraseSupplierが適用される。

passphrase

PropertyFilePassphraseSupplierを利用する場合、パスフレーズを指定。

例として、デフォルトの難読化設定を利用する場合、以下のように設定します。

crypt.propertiesの設定例
passphrase=hogehoge
プロパティファイルの指定

VM引数、もしくはweb.xmlのcontext-paramでpropertiesファイルへのパス(fileパス、もしくはClassLoaderのResourceとしてのパス)を指定します。

パラメータ名

mtp.config.crypt

VM引数での設定例
-Dmtp.config.crypt=/crypt.properties
web.xmlでの設定例
<context-param>
  <param-name>mtp.config.crypt</param-name>
  <!-- ■ crypt config file ■ -->
  <param-value>/crypt.properties</param-value>
</context-param>
難読化対象テキストの難読化

Encoderを利用して難読化を行います。 難読化の際にcrypt.propertiesを利用します。 passphraseについてはコンソールから直接入力で指定します。

service-configへ設定

難読化したテキストをservice-configファイルに設定します。 併せてpropertyの属性としてencrypted="true"を指定します。

<property name="password" value="39y04KVcitPsSAQtXgvc=" encrypted="true" />

1.6. プリプロセッサ

service-configファイルのプリプロセス処理を実行することが可能です。 プリプロセス処理を有効化(serviceDefinition要素の属性preprocessにtrueを指定)した場合、service-configファイルは読み込み前にGroovyTemplateとして実行されます。

プリプロセス処理の記述例
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE serviceDefinition>
<serviceDefinition preprocess="true">
    <!-- <%
    // プロパティファイルから制御フラグを取得
    def props = new Properties()
    getClass().getResource('/dev.properties').withInputStream {
        props.load(it)
    }

    def rdb = props.getProperty('rdb', 'mysql')
    def includeAdmin = props.getProperty('includeAdmin', 'true')

    %> -->

    <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>

なお、 $ はGroovyTemplateでは予約語となるため、プリプロセス処理内で利用する場合は \$ のようにエスケープが必要になります。

2. Service一覧

設定ファイルにて設定可能なServiceの一覧と概要を示します。

2.1. Core services

iPLAssの中心となる機能に関するサービス郡です。

名前 概要

AsyncTaskService

基盤内部でタスクを非同期実行するためのサービスです。

AsyncTaskServiceForHttpMessageChannel

クラスタ通信にHttpMessageChannelを利用して非同期実行を行うサービスです。

AuditLoggingService

Entityに対する登録・更新・削除を操作ログとして出力するサービスです。

AuthLoggerService

認証関連のロガーを管理するサービスです。

AuthService

認証を行うためのサービスです。

AuthTokenService

認証トークンを管理するためのサービスです。

AutoNumberTypeCounter

AutoNumber型の採番を行うサービスです。

BinaryMetaDataService

バイナリ形式のメタデータをバイト配列でメモリ内に保持しない仕組みを提供する為のサービスです。

CacheService

キャッシュのサービスです。

ClusterService

クラスタ間通信のサービスです。

ConnectionFactory

データベース接続を行うためのサービスです。

CubeService

Cube集計のサービスです。

DefaultQueueBaseAsyncTaskService

RDBによるキューを利用した標準の非同期実行のサービスです。

EntityService

エンティティを管理するサービスです。

FulltextSearchService

全文検索のサービスです。

I18nService

国際化のサービスです。

InterceptorService

コマンド実行時に呼び出されるインターセプターを管理するサービスです。

LobStoreService

LOBデータの永続化を行うサービスです。

MailService

メール送信を行うためのサービスです。

MessageService

リソースバンドルを管理するためのサービスです。

MetaDataRepository

メタデータの管理を行うためのサービスです。

OidCounter

oidの採番を行うサービスです。

OnetimeCodeGeneratorService

二段階認証のワンタイム認証コードを生成するサービスです。

PropertyService

プロパティを管理するサービスです。

PropertyEncryptionService

プロパティ単位の暗号化を行うサービスです。

PushNotificationService

モバイル端末へのプッシュ通知を行うためのサービスです。

QueryService

EQLの外部ヒント句を管理するサービスです。

RdbAdapterService

各種RDBとのインターフェースとなるRdbAdapterを管理するサービスです。

RdbQueueService

RDBを利用したキューのサービスです。

ScheduleService

スケジュールタスクの定義(メタデータ)を管理するサービスです。

ScriptService

動的スクリプトの実行を管理するサービスです。

SecureRandomService

ランダム文字列を生成するための設定を管理するサービスです。

SmsService

SMS送信を行うためのサービスです。

StoreService

Entityデータの永続化を行うサービスです。

SyntaxService

構文解析のためのサービスです。

TaskIdCounter

タスクIDの採番を行うサービスです。

TenantContextService

テナント全体の振る舞いを設定するサービスです。

ValidationService

入力チェックを行うためのサービスです。

WorkflowService

ワークフローの動作を管理するサービスです。

2.2. Web services

ActionやWebApi、Web全般に関するサービス郡です。

名前 概要

ActionMappingService

ブラウザからのリクエスト時に呼び出されるインターセプターを管理するサービスです。

CsvUploadService

CSVアップロードを管理するサービスです。

EntityWebApiService

EntityWebApiを管理するサービスです。

IPAddressHistoryStoreService

過去にアクセスされたIPアドレスの保持を行うためのサービスです。

ReportingEngineService

帳票出力を管理するサービスです。

SamlService

SAML認証を行うためのサービスです。

TenantAvailableService

テナントの稼動状態を管理するサービスです。

WebApiService

WebApiを管理するサービスです。

WebApiJaxbService

WebApiのJAXBでの変換対象のクラス定義を行うサービスです。

WebFrontendService

Webアプリ全般の動作を管理するサービスです。

2.3. Gem services

Gem(Generic Entity Manager)画面に関するサービス郡です。

名前 概要

AggregationService

集計機能のサービスです。

CubeTemplateService

Cube集計のカスタムメジャーのテンプレートを管理するサービスです。

EntityListingService

EntityListing機能のサービスです。

GemConfigService

汎用画面全般の設定を行うサービスです。

2.4. Admin services

管理画面(AdminConsole)に関するサービス郡です。

名前 概要

AdminAuditLoggingService

AdminConsoleの操作ログに関するサービスです。

AdminConsoleService

AdminConsoleService全般のサービスです。

2.5. Tools services

各種ツール類(AdminConsoleのTools、バッチ等)に関するサービス郡です。

名前 概要

AuditLogToolService

操作ログツールに関するサービスです。

StorageSpaceService

StorageSpaceの移行ツールに関するサービスです。

TenantToolService

テナント管理ツールに関するサービスです。

2.6. Other services

その他のプラグインとなるモジュールに関するサービス郡です。

名前 概要

AWSSetting

AWSの設定を管理する サービスです。

InfinispanService

InfinispanServiceを管理する サービスです。

CaptchaService

reCAPTCHAによるロボット排除を管理するためのサービスです。

OutOfBandVerificationService

メールやSMSを利用して検証を行うためのサービスです。

WamService

Web会員管理機能のサービスです。

3. Serviceの詳細

3.1. AsyncTaskService

基盤内部でタスクを非同期実行するためのサービスです。

インタフェース名

org.iplass.mtp.impl.async.AsyncTaskService

実装クラス名

org.iplass.mtp.impl.async.thread.ThreadingAsyncTaskService

ThreadingAsyncTaskServiceの設定

ThreadingAsyncTaskServiceを設定します。

設定項目
項目 説明

corePoolSize

int

非同期処理のためのスレッドプールのサイズ。 アイドル状態であってもプール内に維持されるスレッドの数です。デフォルト値は4です。

threadPoolType

String

スレッドプールのタイプ。 未指定の場合、threadPoolTypeは cached に設定され、maximumPoolSize以上のリクエストがあるとRejectedExecutionExceptionが発生します。

fixed

corePoolSizeで指定された固定数のスレッドを再利用するスレッドプールを使用します。

single

単一のワーカー・スレッドを使用します。

cached

maximumPoolSizeで指定された可変数のスレッドを再利用するスレッドプールを使用します。

maximumPoolSize

int

スレッドプール内で使用可能なスレッドの最大数。 -1が設定された場合はintの最大値が設定されます。デフォルト値は-1です。

keepAliveTime

long

threadPoolTypeが cached で、スレッドの数がcorePoolSizeよりも多い場合に、余分なアイドル状態のスレッドが終了する前に新しいタスクを立ち上げるまでに待機する最大時間(ミリ秒)です。 デフォルト値は60000(1分)です。

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.2. 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は cached に設定され、maximumPoolSize以上のリクエストがあるとRejectedExecutionExceptionが発生します。

fixed

corePoolSizeで指定された固定数のスレッドを再利用するスレッドプールを使用します。

single

単一のワーカー・スレッドを使用します。

cached

maximumPoolSizeで指定された可変数のスレッドを再利用するスレッドプールを使用します。

maximumPoolSize

int

スレッドプール内で使用可能なスレッドの最大数。 -1が設定された場合はintの最大値が設定されます。デフォルト値は-1です。

keepAliveTime

long

threadPoolTypeが cached で、スレッドの数がcorePoolSizeよりも多い場合に、余分なアイドル状態のスレッドが終了する前に新しいタスクを立ち上げるまでに待機する最大時間(ミリ秒)です。 デフォルト値は60000(1分)です。

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.3. AuditLoggingService

Entityに対する登録・更新・削除を操作ログとして出力するサービスです。

インタフェース名

org.iplass.mtp.impl.entity.auditlog.AuditLoggingService

実装クラス名

ロガーを利用した操作ログ出力
org.iplass.mtp.impl.entity.auditlog.LoggerAuditLoggingService
RDBとロガーを利用した操作ログ出力
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です。

RdbAuditLoggingServiceの設定

RDBとロガーへの出力内容を設定します。

設定項目

LoggerAuditLoggingServiceの設定項目を参照してください。

設定例
<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" />

    <!-- log出力時、SelectValueのコードとラベルを出力する場合はtrue -->
    <property name="logSelectValueWithLabel" value="true" />
    <!-- log出力時、Referenceのoidとnameを出力する場合はtrue -->
    <property name="logReferenceWithLabel" value="true" />

</service>

3.4. AuthLoggerService

認証関連のロガーを管理するサービスです。

インタフェース名

org.iplass.mtp.impl.auth.log.AuthLoggerService

実装クラス名

org.iplass.mtp.impl.auth.log.AuthLoggerService

AuthLoggerServiceの設定

AuthLoggerServiceを設定します。

設定項目
項目 説明

loggers

AuthLogger、複数指定可

ロガーの設定。 ロガー名(loggerName)が default のロガーが標準のロガーとなります。 未設定の場合はSlf4jAuthLoggerが標準のロガーとして使用されます。

AuthLogger

classはorg.iplass.mtp.impl.auth.log.AuthLoggerの実装クラスを指定します。

標準で、以下のAuthLoggerを提供します。

Slf4jAuthLogger

classはorg.iplass.mtp.impl.auth.log.Slf4jAuthLoggerを指定します。

SLF4Jを利用して認証のログ出力を行うロガーです。以下の項目を設定可能です。

項目 説明

loggerName

String

ロガー名。

slf4LoggerName

String

SLF4Jのロガー名。デフォルト値は mtp.auth です。

MultiAuthLogger

classはorg.iplass.mtp.impl.auth.log.MultiAuthLoggerを指定します。

複数のロガーを保持します。以下の項目を設定可能です。

項目 説明

loggerName

String

ロガー名。

logger

AuthLogger、複数指定可

標準のロガーの設定。

EnterpriseSlf4jAuthLogger

classはorg.iplass.mtp.impl.auth.log.EnterpriseSlf4jAuthLoggerを指定します。

SLF4Jを利用して認証のログ出力を行うロガーです。 設定可能はSlf4jAuthLoggerを参照してください。

設定例
<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.5. AuthService

認証を行うためのサービスです。 認証プロバイダを切り替えることにより、様々な認証を行うことができます。

インタフェース名

org.iplass.mtp.impl.auth.AuthService

実装クラス名

コミュニティエディション版
org.iplass.mtp.impl.auth.AuthService
エンタープライズエディションエディション版
org.iplass.mtp.impl.auth.EnterpriseAuthService

AuthServiceの設定

AuthServiceを設定します。

設定項目
項目 説明

userSessionStore

UserSessionStore

ユーザのセッションを管理するストアオブジェクトの設定。

authorizationProvider

AuthorizationProvider

認可処理を行うプロバイダの設定。

authenticationProvider

AuthenticationProvider、複数指定可

認証処理を行うプロバイダの設定。

EnterpriseAuthServiceの設定

AuthServiceを設定します。

設定項目

AuthServiceの設定を参照してください。

UserSessionStore

classはorg.iplass.mtp.impl.auth.authenticate.UserSessionStoreの実装クラスを指定します。

実装クラス名
org.iplass.mtp.impl.auth.authenticate.DefaultUserSessionStore
DefaultUserSessionStore

標準で提供しているUserSessionStoreです。

classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserSessionStoreを指定します。 以下の項目を指定可能です。

項目 説明

shareLoginSession

boolean

セッションに保持するログイン情報を複数テナントで共有するか。

AuthorizationProvider

classはorg.iplass.mtp.impl.auth.authorize.AuthorizationProviderの実装クラスを指定します。

実装クラス名
org.iplass.mtp.impl.auth.authorize.builtin.BuiltinAuthorizationProvider
BuiltinAuthorizationProvider

iPLAssの標準認可プロバイダです。

classはorg.iplass.mtp.impl.auth.authorize.builtin.BuiltinAuthorizationProviderを指定します。 以下の項目を設定可能です。

項目 説明

authorizationContextHandler

AuthorizationContextHandler、複数指定可

Permission毎の処理を表現するクラスの設定。

grantAllPermissionsToAdmin

boolean

Adminユーザに対し全権限を与えるか。 falseが設定された場合はAdminユーザに対しロール制御が適用されます。 デフォルト値はtrueです。

AuthorizationContextHandler

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
ActionAuthContextHandler

WebAPI権限の処理を行うクラスです。

classはorg.iplass.mtp.impl.auth.authorize.builtin.action.ActionAuthContextHandlerを指定します。

CubeAuthContextHandler

WebAPI権限の処理を行うクラスです。

classはorg.iplass.mtp.impl.auth.authorize.builtin.cube.CubeAuthContextHandlerを指定します。

EntityAuthContextHandler

Entity権限の処理を行うクラスです。

classはorg.iplass.mtp.impl.auth.authorize.builtin.entity.EntityAuthContextHandlerを指定します。 以下の項目を指定可能です。

項目 説明

useCorrelatedSubqueryOnEntityLimitCondition

boolean

Entity権限による限定条件を付与する際、相関サブクエリにするか否か。 デフォルト値はtrueです。

WebAPIAuthContextHandler

WebAPI権限の処理を行うクラスです。

classはorg.iplass.mtp.impl.auth.authorize.builtin.webapi.WebAPIAuthContextHandlerを指定します。

WorkflowAuthContextHandler

Workflow権限の処理を行うクラスです。

classはorg.iplass.mtp.impl.auth.authorize.builtin.workflow.WorkflowAuthContextHandlerを指定します。

AuthenticationProvider

classはorg.iplass.mtp.impl.auth.authenticate.AuthenticationProviderの実装クラスを指定します。

実装クラス名
org.iplass.mtp.impl.auth.authenticate.builtin.BuiltinAuthenticationProvider
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.rememberme.RememberMeTokenAuthenticationProvider
BuiltinAuthenticationProvider

iPLAssの標準認証プロバイダです。 DBに保存されたユーザ情報を元にid/password認証します。 パスワードの複雑度、ロックアウト設定など、認証ポリシーにて設定可能です。

classはorg.iplass.mtp.impl.auth.authenticate.builtin.BuiltinAuthenticationProviderを指定します。 以下の項目を設定可能です。

項目 説明

providerName

String

プロバイダ名称。 複数のプロバイダを設定する場合は、それぞれ一意となる名称を設定してください。 デフォルト値は default です。

updatable

boolean

アカウント管理モジュールの使用可否。 デフォルト値はtrueです。

true

アカウントの管理が可能となります。 本認証プロバイダにてユーザのパスワード更新、リセットを有効化します。 通常はtrueを設定してください。

false

アカウント管理不能となります。

passwordHashSetting

PasswordHashSetting

パスワードHashアルゴリズム。 複数定義することにより既存アルゴリズムを動作させつつ、新規のパスワード更新時には新しいバージョンのアルゴリズムにて動作させることが可能です。

PasswordHashSetting

パスワードHashアルゴリズムに関する設定です。 以下の項目を設定可能です。

項目 説明

version

String

パスワードHashアルゴリズムのバージョン値。 アルゴリズム設定を変更する場合は、世代順にインクリメントし、重複しない値を設定してください。 デフォルト値は1です。

passwordHashAlgorithm

String

設定可能なアルゴリズムについては MessageDigest アルゴリズム を参照して下さい。 デフォルト値は SHA-256 です。

systemSalt

String

システムで取り扱うソルト値。 新しいversionを追加する度に新しい値を設定することを推奨します。 デフォルト値は iPLAssSystemSalt です。

stretchCount

int

パスワードのHashを行う際のストレッチ回数。 デフォルト値は1000です。

ConfigFileAuthenticationProvider

設定ファイルに記載されたアカウント情報から認証するプロバイダです。 全テナントを管理する開発者用の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、複数指定可

accounts で指定したアカウントがログイン可能なテナント。

AccountConfig

以下の項目が設定可能です。

項目 説明

id

String

アカウントのID。

password

String

アカウントのパスワード。

admin

boolean

このアカウントが管理者権限を持つか。

attrributeMap

String

任意のキー名(name)と値(value)。 attrributeMap で指定した属性情報は、GroovyScript等でユーザ情報としてバインドした際に、ユーザの属性として参照することができます。

JaasAuthenticationProvider

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

jaas.cfg
mtplogin {
    com.sun.security.auth.module.LdapLoginModule REQUIRED
    userProvider="ldap://example.isid.co.jp:389/dc=mtp,dc=isid,dc=co,dc=jp" (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の取得方法を設定します。 次のいずれかを指定可能です。 実際に指定するclassはリンク先を参照してください。

userEntityResolverの定義エントリ自体がない場合は、ユーザEntityはaccountIdで検索されます。 DefaultUserEntityResolverの定義エントリがあり、unmodifiableUniqueKeyPropertyの定義が未設定の場合はoidで検索されます。

DefaultUserEntityResolver

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

ユーザ検索時のフィルター条件を指定可能です。

AccountBaseUserEntityResolver

classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。

UserエンティティがDB上に存在せずともログイン可能とします。 oidにJAAS認証モジュールより返却された[ユニークID](uniquePrincipalTypeで指定したPrincipalの値)、accountId、nameに認証時に入力したidがセットされたUserエンティティを疑似的に生成します。

UserEntityResolverを実装する独自クラス

classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。

org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。

JeeContainerManagedAuthenticationProvider

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で検索されます。

DefaultUserEntityResolver

classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolverを指定します。

詳細はJaasAuthenticationProviderを参照してください。

AccountBaseUserEntityResolver

classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。

UserエンティティがDB上に存在せずともログイン可能とします。 oid、accountId、nameにJEEコンテナが返却したPrincipalオブジェクトのnameをセットしたUserエンティティを疑似的に生成します。 roleAsGroupが指定されている場合、当該roleはグループコードとして設定されます。

UserEntityResolverを実装する独自クラス

classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。

org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。

LdapAuthenticationProvider

LDAPサーバ(Active Directory含む)を利用してid/password認証するプロバイダです。 設定により、iPLAssのDB内にUserエンティティが存在していなくとも認証を可能とすることができます。 その際、LDAPサーバ上で管理されているユーザの属性値、所属グループを取得することも可能です。

classはorg.iplass.mtp.impl.auth.authenticate.ldap.LdapAuthenticationProviderを指定します。 以下の項目を設定可能です。

項目 説明

providerName

String

BuiltinAuthenticationProviderを参照してください。

jndiEnv

JNDIEnv

LDAP接続用のJNDI環境プロパティ。

userDn

String

認証時のユーザのDNのパターン。 認証要求されたユーザのID、テナント名はそれぞれ${userName}、${tenantName}で埋め込まれます。

cn=${userName},cn=Users,ou=${tenantName}

${userName}@example.isid.co.jp ※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で検索されます。

JNDIEnv

設定可能な項目は、以下に説明している基本的な項目以外にも設定可能です。 詳細はこちらの内容を参照下さい。

項目 説明

java.naming.factory.initial

String

JNDIのInitialContextFactoryの指定です。 デフォルト値はcom.sun.jndi.ldap.LdapCtxFactoryです。

java.naming.provider.url

String

LDAP接続先を指し示すURL。URLには検索ルートとなるbaseDNを含むことも可能です。

ldap://example.isid.co.jp:389/dc=mtp,dc=isid,dc=co,dc=jp

java.naming.security.principal

String

ユーザ検索、グループ検索が可能な管理用ユーザのID。 未設定の場合、ユーザ検索、グループ検索の際には、認証時のユーザアカウントを利用します。 認証ユーザに検索権限がない場合は設定してください。

java.naming.security.credentials

String

ユーザ検索、グループ検索が可能な管理用ユーザのパスワード。

DefaultUserEntityResolver

classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolverを指定します。

詳細はJaasAuthenticationProviderを参照してください。

AccountBaseUserEntityResolver

UserエンティティがDB上に存在せずともログイン可能とします。 LDAP認証モジュールの場合は、LDAPより返却されたユーザ属性値とUserエンティティのプロパティをマッピングすることが可能です。 attributeMappingUserエンティティのプロパティとLDAPから取得した属性とのマッピングを定義します。 プロパティ名単位に複数件の設定が可能です。

classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。 以下の項目を設定可能です。

項目 説明

propertyName

String

マッピング先のUserエンティティのプロパティ名。

accountAttributeName

String

マッピング元のLDAPから取得した属性値の名前。 LDAP上に定義される属性名の他、以下の設定値を利用可能です。

id

ユーザ認証時に入力されたユーザIDです

unmodifiableUniqueKey

上記uniqueKeyAttribute定義で設定した属性値です

また、${属性値}形式を利用したGroovyTemplate形式で複数の属性を結合することが可能です。

${sn ?:''} ${givenName ?:''} ※snとgivenNameをスペースで結合

type

Class

LDAPから取得した値を変換する際の型(java.lang.String、java.lang.Booleanなど)。 未指定の場合は、LDAPより返却された型のままセットします。

defaultValue

Object

LDAPより値が取得出来なかった際のデフォルト値。 未指定の場合、かつ値が取得できなかった場合はnullがセットされます。

UserEntityResolverを実装する独自クラス

classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。

org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。

Active Directoryで認証する際の注意点

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.isid.co.jp:389/DC=example,DC=isid,DC=co,DC=jp" />
      <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.isid.co.jp" />
    <property name="userFilter" value="(&amp;(objectClass=user)(userPrincipalName=${userName}@example.isid.co.jp))" />
    <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="(&amp;(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>
PreExternalAuthenticationProvider

OpenAM、IceWallなどの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

SourceType

外部認証機構から渡されるユーザ情報が格納されている場所。

accountIdAttribute

String

外部認証機構から渡されるユーザ情報のうちアカウントIDが格納されているキー名。

uniqueKeyAttribute

String

外部認証機構から渡されるユーザ情報のうちユニークキー(OIDに相当)が格納されているキー名。 未指定の場合は、accoutIdAttributeに指定された値がユニークキーとして利用されます。

userAttribute

String、複数指定可

外部認証機構から渡されるユーザ情報のうちユーザの属性として扱う値のキー名。

logoutUrl

String

外部認証機構のログアウト処理を行うURL。 iPLAssの標準画面でログアウトが呼び出された場合、当該画面へリダイレクトします。

userEntityResolver

UserEntityResolver

認証成功後のユーザEntityの取得方法。 次のいずれかを指定可能です。 実際に指定するclassはリンク先を参照してください。

userEntityResolverの定義エントリ自体がない場合、かつuniqueKeyAttributeが未指定の場合ユーザEntityはaccountIdで検索されます。 上記以外の場合、unmodifiableUniqueKeyPropertyの定義が未設定の場合はoidで検索されます。

SourceType

外部認証機構から渡されるユーザ情報が格納されている場所を指定します。

HEADER

ヘッダーからgetHeader(String)にてユーザ情報を取得します

REQUEST

HttpServletRequestからgetAttribute(String)にてユーザ情報を取得します

SESSION

HttpSessionからgetAttribute(String)にてユーザ情報を取得します

DefaultUserEntityResolver

classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolverを指定します。

詳細はJaasAuthenticationProviderを参照してください。

AccountBaseUserEntityResolver

classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。

詳細はLdapAuthenticationProviderを参照してください。 外部認証機構から渡されたuserAttributeの値をUserエンティティのプロパティにマッピング可能です。

UserEntityResolverを実装する独自クラス

classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。

org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。

X509AuthenticationProvider

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で検索されます。

DefaultUserEntityResolver

classはorg.iplass.mtp.impl.auth.authenticate.DefaultUserEntityResolverを指定します。

詳細はJaasAuthenticationProviderを参照してください、

AccountBaseUserEntityResolver

classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。

UserエンティティがDB上に存在せずともログイン可能とします。 oid、accountId、nameに証明書内のCNをセットしたUserエンティティを疑似的に生成します。

UserEntityResolverを実装する独自クラス

classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。

org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。

SamlAuthenticationProvider

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はリンク先を参照してください。

SamlUserEntityResolver

メタデータとして設定されたSAML定義のNameIDのマッピングに従いユーザEntityを検索します。

classはorg.iplass.mtp.impl.auth.authenticate.saml.SamlUserEntityResolverを指定します。 以下の項目を設定可能です。

項目 説明

eagerLoadReferenceProperty

String、複数指定可

ログイン後のUserエンティティ検索時に同時に取得する参照プロパティ。 デフォルトの設定では、Userの参照プロパティであるrankおよびgroupsが指定されています。

filterCondition

String

ユーザ検索時のフィルター条件。

AccountBaseUserEntityResolver

classはorg.iplass.mtp.impl.auth.authenticate.AccountBaseUserEntityResolverを指定します。

詳細はLdapAuthenticationProviderを参照してください、 SAML経由で渡されたユーザ属性値をUserエンティティのプロパティにマッピング可能です。

UserEntityResolverを実装する独自クラス

classはorg.iplass.mtp.impl.auth.authenticate.UserEntityResolverを実装する独自クラスを指定します。

org.iplass.mtp.impl.auth.authenticate.UserEntityResolverの実装クラスにてUserエンティティを取得するロジックを記述します。

TwoStepAuthenticationProvider

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.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は複数指定可能です。 次のいずれかの認証プロバイダを指定可能(※)です。

※ iPLAss gemモジュール提供のログイン認証処理を利用する場合

OnetimeCodeAuthenticationProvider

ワンタイムの認証コードを用いて認証を行うプロバイダです。 通常、2step認証時のセカンダリの認証プロバイダとして利用します。 ワンタイムコードの生成方式は、別途OnetimeCodeGeneratorServiceにて定義します。 ワンタイムコード生成方式のうちいずれを利用するかの設定は認証ポリシーに定義します。 詳細は認証機能の2段階認証を参照してください。

OnetimeCodeAuthenticationProvider自体にて設定可能な項目はありません。

classはorg.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeAuthenticationProviderを指定します。

KnowledgeBasedAuthenticationProvider

ナレッジベース認証(秘密の質問に答えることで認証する)を行うプロバイダです。 通常、2step認証時のセカンダリの認証プロバイダとして利用します。 Userエンティティに保持するプロパティを質問項目として利用することが可能です。 どのプロパティを質問項目とするか、質問の数などの設定は、認証ポリシーにて行います。 詳細は認証機能の2段階認証を参照してください。

KnowledgeBasedAuthenticationProvider自体にて設定可能な項目はありません。

classはorg.iplass.mtp.impl.auth.authenticate.knowledgebased.KnowledgeBasedAuthenticationProviderを指定します。

RememberMeTokenAuthenticationProvider

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。

設定例
<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.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.6. AuthTokenService

認証トークンを管理するためのサービスです。

インタフェース名

org.iplass.mtp.impl.auth.authenticate.token.AuthTokenService

実装クラス名

org.iplass.mtp.impl.auth.authenticate.token.AuthTokenService

AuthTokenServiceの設定

AuthTokenServiceを設定します。

設定項目
項目 説明

storeMap

AuthTokenStore、複数指定可

AuthTokenStoreの設定。

handler

AuthTokenHandler、複数指定可

AuthTokenHandlerの設定。

AuthTokenStore

classはorg.iplass.mtp.impl.auth.authenticate.token.AuthTokenStoreの実装クラスを指定します。

標準で、org.iplass.mtp.impl.auth.authenticate.token.RdbAuthTokenStoreを提供します。

RDBで認証トークンを管理します。

項目 説明

name

String

このストアの名前。ストアを設定する際は、nameに default を設定したストアを必ず設定してください。

AuthTokenHandler

classはorg.iplass.mtp.impl.auth.authenticate.token.AuthTokenHandlerの実装クラスを指定します。

標準で、以下のAuthTokenHandlerを提供します。

CookieRiskEvaluationTokenHandler

classはorg.iplass.mtp.impl.auth.authenticate.builtin.policy.riskevals.web.CookieRiskEvaluationTokenHandlerを指定します。

Cookieにある認証成功時に付与されたトークンを取り扱います。以下の項目を設定可能です。

項目 説明

store

String

使用するストアの名前。

type

String

種別。未設定の場合、 RBA となります。

visible

boolean

可視かどうか。デフォルト値はtrueです。

RememberMeTokenHandler

classはorg.iplass.mtp.impl.auth.authenticate.rememberme.RememberMeTokenHandlerを指定します。

リメンバーミートークンを取り扱います。以下の項目を設定可能です。

項目 説明

store

String

使用するストアの名前。

type

String

種別。未設定の場合、 REMME となります。

visible

boolean

可視かどうか。デフォルト値はtrueです。

設定例
<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>
    <property name="handler" class="org.iplass.mtp.impl.auth.authenticate.rememberme.RememberMeTokenHandler">
        <property name="type" value="REMME" />
        <property name="store" value="default" />
    </property>
</service>

3.7. 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

採番タイプの名前。デフォルト値は defaultCounter です

CachableRdbTableCounterServiceの設定

CachableRdbTableCounterServiceを設定します。

設定項目
項目 説明

separateTransaction

boolean

採番時にトランザクションを分けるか。デフォルト値はfalseです。

retryCount

int

採番失敗時にリトライする回数。デフォルト値は3です。

counterTypeName

String

採番タイプの名前。デフォルト値は defaultCounter です

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.8. 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="tempFileDirPath" value="/tmp" />
    -->
</service>

3.9. CacheService

キャッシュストアを管理するサービスです。

インタフェース名

org.iplass.mtp.impl.cache.CacheService

実装クラス名

org.iplass.mtp.impl.cache.CacheService

CacheServiceの設定

CacheServiceを設定します。

設定項目
項目 説明

defaultFactory

CacheStoreFactory

標準のCacheStoreFactoryの設定。

"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です。

RdbCacheStoreFactory

Rdbを利用するCacheStoreFactoryです。 以下の項目を設定可能です。

項目 説明

cacheKeyResolver

CacheKeyResolver

CacheKeyResolverの設定。

cacheIndexResolver

CacheKeyResolver、複数指定可

インデックスのCacheKeyResolverの設定。

connectionFactoryName

String

接続ファクトリ名。

rdbArapterName

String

RdbAdapter名。

tableName

String

キャッシュを保存するテーブル名。デフォルト値は CACHE_STORE です。

retryCount

int

キャッシュ保存失敗時にリトライする回数。デフォルト値は0です。

timeToLive

long

キャッシュの生存時間(ミリ秒)。-1が設定された場合は無期限となります。デフォルト値は-1です。

SimpleCacheStoreFactory

内部メモリを利用するCacheStoreFactoryです。 以下の項目を設定可能です。

項目 説明

initialCapacity

int

キャッシュの初期容量。デフォルト値は16です。

loadFactor

float

負荷係数。初期値は0.75です。

concurrencyLevel

int

並行して更新しているスレッドの推定数。デフォルト値は16です。

timeToLive

int

キャッシュの生存時間(ミリ秒)。-1が設定された場合は無期限となります。デフォルト値は-1です。

size

int

キャッシュのサイズ。-1が設定された場合は無制限となります。デフォルト値は-1です。

multiThreaded

boolean

マルチスレッドに対応するか。デフォルト値はtrueです。

evictionInterval

long

キャッシュの有効期限(ミリ秒)。-1が設定された場合は無期限となります。デフォルト値は-1です。

SyncServerCacheStoreFactory

信頼性の低い、サーバ間のキャッシュを同期するCacheStoreFactoryです。 実ストアのtimeToLiveの設定で一定間隔でキャッシュがリフレッシュされる前提で利用してください。 他のサーバがキャッシュの更新処理中にダウンした場合などは、そのtimeToLiveの間、キャッシュと実データの間で不整合が発生する可能性あります。 以下の項目を設定可能です。

項目 説明

cacheKeyResolver

CacheKeyResolver

CacheKeyResolverの設定。

cacheIndexResolver

CacheKeyResolver、複数指定可

インデックスのCacheKeyResolverの設定。

store

CacheStoreFactory

CacheStoreFactoryの設定。

listener

SyncServerCacheEventListener

同期メッセージ受信時に実行するリスナーの設定。

TransactionLocalCacheStoreFactory

トランザクションが有効な間はバックエンドのCacheStoreに反映を遅延するCacheStoreFactoryです。 以下の項目を設定可能です。

項目 説明

backendStore

CacheStoreFactory

バックエンドのCacheStoreFactoryの設定。

InfinispanCacheStoreFactory

Infinispanを利用するCacheStoreFactoryです。 以下の項目を設定可能です。

項目 説明

createOnStartup

boolean

スタートアップ時にCacheStoreを生成するか。デフォルト値はfalseです。

cacheConfigrationName

String

キャッシュ名。

CacheKeyResolver

classにorg.iplass.mtp.impl.cache.store.keyresolver.CacheKeyResolverの実装クラスを指定します。

標準で、以下のCacheKeyResolverを提供します。

CounterCacheKeyResolver

classにorg.iplass.mtp.impl.counter.CachableRdbTableCounterServicea$CounterCacheKeyResolverを指定します。

CounterKey型のCacheKeyResolverです。設定変更可能な項目はありません。

IntegerCacheKeyResolver

classにorg.iplass.mtp.impl.cache.store.keyresolver.IntegerCacheKeyResolverを指定します。

Integer型のCacheKeyResolverです。設定変更可能な項目はありません。

QueryCacheKeyResolver

classにorg.iplass.mtp.impl.entity.cache.QueryCacheKeyResolverを指定します。

Query型のCacheKeyResolverです。設定変更可能な項目はありません。

StringCacheKeyResolver

classにorg.iplass.mtp.impl.cache.store.keyresolver.StringCacheKeyResolverを指定します。

文字列型のCacheKeyResolverです。設定変更可能な項目はありません。

SyncServerCacheEventListener

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">
                <!-- 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.10. ClusterService

クラスタ間通信を行うためのサービスです。

インタフェース名

org.iplass.mtp.impl.cluster.ClusterService

実装クラス名

org.iplass.mtp.impl.cluster.ClusterService

ClusterServiceの設定

ClusterServiceを設定します。

設定項目
項目 説明

messageChannel

MessageChannel

クラスタ間の通信に利用するメッセージチャネルの設定。

MessageChannel

classはorg.iplass.mtp.impl.cluster.channel.MessageChannelの実装クラスを指定します。

標準で、以下のMessageChannelを提供します。

HttpMessageChannel

classはorg.iplass.mtp.impl.cluster.channel.http.HttpMessageChannelを指定します。

Httpを介してメッセージ送受信するメッセージチャネルです。以下の項目を設定可能です。

項目 説明

serverUrl

String、複数指定可

他のクラスタメンバの通信用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)。デフォルト値は3です。

InfinispanMessageChannel

classはorg.iplass.mtp.impl.infinispan.cluster.channel.InfinispanMessageChannelを指定します。

Infinispanを利用してメッセージの送受信を行うメッセージチャネルです。以下の項目を設定可能です。

項目 説明

sync

boolean

メッセージの送信を同期して行うかを設定します。

設定例
<service>
    <interface>org.iplass.mtp.impl.cluster.ClusterService</interface>
    <property name="messageChannel"
        class="org.iplass.mtp.impl.cluster.channel.http.HttpMessageChannel">
        <!--
            serverUrl:他のクラスタメンバの通信用URLを指定(自分も含めることも可)
            certKey:通信時の認証用のキー。クラスタメンバで同一のものを定義。
            connectionTimeout:http通信確立時のConnectionTimeout値(ms)。省略時デフォルト30000ms。
            soTimeout:http通信確立時のSoTimeout値(ms)。省略時デフォルト30000ms。
            proxyHost:http通信する際のproxyHost。省略可。
            proxyPort:http通信する際のproxyPort。省略可。

            ※serverUrlに自分を含めた場合、次の形で自身のサーバと判断する形になる

            1.システムプロパティに以下が設定されていた場合、その値を自身のサーバ名、ポートと判断する
                mtp.cluster.http.myservername = [server名]
                mtp.cluster.http.myportno = [portNo]
                ※クラスタ設定のserverUrlで同一サーバ名のURLが複数ある場合、ポート指定が必要

            2.動作環境から自身のサーバ名を自動解決する
                以下のいずれかの方法でネットワークインタフェースを特定する
                (1) 明示的にネットワークインタフェースを指定する場合
                    システムプロパティでネットワークインタフェースを指定する
                    mtp.cluster.http.myinterfacename = [networkInterface名]

                (2) 最初に定義されている(LoopBackでなく現在利用可能な)ネットワークインタフェースを利用

                    特定されたネットワークインタフェースに定義されているサーバ名(FQDN/サーバ名)/IPAdressを自身のサーバ名と判断する。
                    もしそれでも見つからない場合は、LoopBackを自身のサーバ名と判断する。 

                ※1.と同様、クラスタ設定のserverUrlで同一サーバ名のURLが複数ある場合、ポート指定が必要

            また、必要にあわせてhttp通信非同期実行用スレッドの最適化の設定をする。
            下記の
         -->
        <!--
        <property name="serverUrl" value="http://xxx1.xxx.xxx/app/cmcs" />
        <property name="serverUrl" value="http://xxx2.xxx.xxx/app/cmcs" />
        <property name="certKey" value="yourOwnCertKey" />
        <property name="connectionTimeout" value="30000" />
        <property name="soTimeout" value="30000" />
        <property name="proxyHost" value="proxy.xxx.xxx" />
        <property name="proxyPort" value="8080" />
         -->
    </property>
</service>

3.11. ConnectionFactory

データベース接続を行うためのサービスです。 データベース接続の実装として、DriverManagerを利用した接続と、DataSourceを利用した接続のモジュールを標準提供します。

インタフェース名

org.iplass.mtp.impl.rdb.connection.ConnectionFactory

実装クラス名

DriverManagerを利用した接続
org.iplass.mtp.impl.rdb.connection.DriverManagerConnectionFactory
DataSourceを利用した接続
org.iplass.mtp.impl.rdb.connection.DataSourceConnectionFactory

DriverManagerConnectionFactoryの設定

DriverManagerを利用したデータベースの接続情報を設定します。

設定項目
項目 説明

url

String

データベース接続文字列のURL。

user

String

ログインに使用されるユーザー名。

password

String

接続するユーザーのパスワード。

driver

String

JDBCドライバの完全修飾クラス名。

warnLogThreshold

int

警告ログを出力する処理時間(ミリ秒)の閾値。
デフォルト値は0です。
閾値を越えるスロークエリーが実行された場合、ログ出力されます。

warnLogBefore

boolean

事前警告ログを出力するか否かを指定します。
デフォルトはtrueです。
現状、当該フラグがtrueの場合は、INDEXを利用しないEQLクエリーが発行される場合に、事前警告ログが出力されます。

transactionIsolationLevel

String

トランザクションの分離レベル。以下が設定可能。

NONE

ConnectionのTRANSACTION_NONEに対応

READ_UNCOMMITTED

ConnectionのTRANSACTION_READ_UNCOMMITTEDに対応

READ_COMMITTED

ConnectionのTRANSACTION_READ_COMMITTEDに対応

REPEATABLE_READ

ConnectionのTRANSACTION_REPEATABLE_READに対応

SERIALIZABLE

ConnectionのTRANSACTION_SERIALIZABLEに対応

設定例
<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" />
</service>

DataSourceConnectionFactoryの設定

DataSourceを利用したデータベースの接続情報を設定します。

設定項目
項目 説明

dataSourceName

String

データソース名。デフォルト値は java:comp/env/jdbc/defaultDS です。

jndienv.<キー名>

String、複数指定可

JNDIの環境プロパティ。

warnLogThreshold

int

警告ログを出力する処理時間(ミリ秒)の閾値。
デフォルト値は0です。
閾値を越えるスロークエリーが実行された場合、ログ出力されます。

warnLogBefore

boolean

事前警告ログを出力するか否かを指定します。
デフォルトはtrueです。
現状、当該フラグがtrueの場合は、INDEXを利用しないEQLクエリーが発行される場合に、事前警告ログが出力されます。

transactionIsolationLevel

String

トランザクションの分離レベル。以下が設定可能。

NONE

ConnectionのTRANSACTION_NONEに対応

READ_UNCOMMITTED

ConnectionのTRANSACTION_READ_UNCOMMITTEDに対応

READ_COMMITTED

ConnectionのTRANSACTION_READ_COMMITTEDに対応

REPEATABLE_READ

ConnectionのTRANSACTION_REPEATABLE_READに対応

SERIALIZABLE

ConnectionのTRANSACTION_SERIALIZABLEに対応

設定例
<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="oracle.j2ee.server.ApplicationClientInitialContextFactory" />
    <property name="jndienv.java.naming.provider.url"
        value="opmn:ormi://opmnhost:6004:oc4j_inst1/ejbsamples" />

    <property name="warnLogThreshold" value="0" />
</service>

3.12. 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です。

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

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。

LoadStrategy

classはorg.iplass.mtp.impl.aggregation.cube.engine.inmemory.fact.load.LoadStrategyの実装クラスを指定します。

標準で、以下のLoadStrategyを提供します。

AllPartitionDirectLoadStrategy

classはorg.iplass.mtp.impl.aggregation.cube.engine.inmemory.fact.load.AllPartitionDirectLoadStrategyを指定します。

直接ダイレクトにメモリに読み込む方式です。設定変更可能な項目はありません。
メモリを大量消費しますが高速です。

PerPartitionLoadStrategy

classはorg.iplass.mtp.impl.aggregation.cube.engine.inmemory.fact.load.PerPartitionLoadStrategyを指定します。

パーティション単位でデータを読み込む方式です。設定変更可能な項目はありません。
パーティションタイプがMOD,LISTの場合、またはCubeの読み込み元がCSVの場合で、あらかじめパーティション単位でデータが分けられている場合、これを指定するとメモリ消費抑えつつ高速ロードが期待できます。

SaveMemoryLoadStrategy

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.13. 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.14. EntityService

エンティティを管理するサービスです。

インタフェース名

org.iplass.mtp.impl.entity.EntityService

実装クラス名

org.iplass.mtp.impl.entity.EntityService

EntityServiceの設定

エンティティハンドラを設定します。

設定項目
項目 説明

limitOfReferences

int

エンティティの参照数の制限値。デフォルト値は1000です。

purgeTargetDate

int

ごみ箱データのクリーナー対象日数。クリーナー対象日数よりも前にごみ箱へ削除されたデータが物理削除されます。

interceptor

EntityInterceptor、複数指定可

エンティティに対する操作の前に挿む処理。

additionalStoreMaintainer

AdditionalStoreMaintainer、複数指定可

データ削除、デフラグ実行時に、併せてストア内をメンテナンスする処理。

EntityInterceptor

classはorg.iplass.mtp.entity.interceptor.EntityInterceptorの実装クラスを指定します。

AdditionalStoreMaintainer

classはorg.iplass.mtp.impl.entity.AdditionalStoreMaintainerの実装クラスを指定します。

設定例
<service>
    <interface>org.iplass.mtp.impl.entity.EntityService</interface>
    <property name="limitOfReferences" value="1000" />

    <!--
        ごみ箱データのクリーナー用日付です。日数を指定して下さい。
        下記の場合、実行時より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.15. FulltextSearchService

全文検索のサービスです。 全文検索の実装として、Luceneを利用した全文検索と、Solrを利用した全文検索を標準提供します。

インタフェース名

org.iplass.mtp.impl.fulltextsearch.FulltextSearchService

実装クラス名

Luceneを利用した全文検索
org.iplass.mtp.impl.fulltextsearch.FulltextSearchLuceneService
Solrを利用した全文検索
org.iplass.mtp.impl.fulltextsearch.FulltextSearchSolrService

FulltextSearchServiceの設定

全文検索の共通項目を設定します。

設定項目
項目 説明

useFulltextSearch

boolean

全文検索を利用するか。デフォルト値はfalseです。

maxRows

int

全文検索の結果件数の上限。デフォルト値は1000です。

throwExceptionWhenOverLimit

boolean

maxRows以上の件数がヒットした場合の挙動。 trueの場合、件数以上取得できたことのメッセージを表示し、検索結果は出しません。 falseの場合、件数以上取得できたことのメッセージを表示し、検索結果も出します。デフォルト値はtrueです。

FulltextSearchLuceneServiceの設定

Luceneを利用した全文検索の項目を設定します。

設定項目
項目 説明

indexWriterRAMBufferSizeMB

double

Index作成時のメモリのキャッシュサイズ。デフォルト値は64.0です。

indexWriterCommitLimit

int

Index作成時のコミット単位。

redundantTimeMinutes

long

前回Index更新日時-redundantTimeMinutes より後のデータに対してIndexの処理を行います。デフォルト値は10です。

directory

String

Index情報(検索対象値)の保存先。

analyzer

Analyzer

利用するanalyzer。

analyzerSetting

AnalyzerSetting、省略可能

analyzerを初期化する設定クラスです。

binaryParser

BinaryReferenceParser、複数指定可

BinaryReference解析用のParser。

binaryParseLimitLength

int

BinaryReferenceのParse可能な最大文字数。

defaultOperator

Operator

演算子。設定可能な演算子は`AND` または OR です。

luceneFSDirectory

org.apache.lucene.store.SimpleFSDirectoryorg.apache.lucene.store.MMapDirectoryorg.apache.lucene.store.NIOFSDirectory

ファイルシステムにINDEXファイルを保存するLucene Directoryの実装クラス。
LuceneのドキュメントによりWindowsの環境で NIOFSDirectory の利用は推薦しません。
※ 未設定の場合、org.apache.lucene.store.SimpleFSDirectory をデフォルト値として利用されます。

luceneFSDirectoryMaxChunkSizeMB

int

org.apache.lucene.store.MMapDirectory クラスが利用するメモリマッピング用maxChunkSizeです。
未設定の場合、maximum chunk size (default is 1 GiBytes for 64 bit JVMs and 256 MiBytes for 32 bit JVMs) used for memory mapping.
org.apache.lucene.store.MMapDirectory 以外が選択されている場合、この設定値は無視されます。

searcherAutoRefreshTimeMinutes

int

iPLAssが保持しているLuceneのIndexSearcher( ≒ IndexReader)が自動的に更新される時間間隔(分)です。
デフォルト値が「-1」となっています、「0」以下の値を設定している場合、自動更新処理は実行されません。

AnalyzerSetting

analyzerを初期化する設定クラスです。

classはorg.iplass.mtp.impl.fulltextsearch.AnalyzerSettingの実装クラスを指定します。

標準で以下のAnalyzerSettingを提供します。

JapaneseAnalyzerSetting

日本語用アナライザーを初期化する設定クラス。
org.iplass.mtp.impl.fulltextsearch.JapaneseAnalyzerSetting を利用することで、org.apache.lucene.analysis.ja.JapaneseAnalyzer を初期化する時に、 以下の初期化項目が設定可能です。

userDictionary

ユーザ定義辞書。クラスパス上に配置する必要があります。
未設定の場合、ユーザ定義辞書を利用しないと同じようになります。

mode

トークナイゼーションモード。org.apache.lucene.analysis.ja.JapaneseTokenizer.Mode を参照してください。
未設定の場合、デフォルト値 SEARCH が適用されます。

stopwords

ストップワード定義ファイル。クラスパス上に配置する必要があります。
未設定の場合、lucene-analyzers-kuromoji-XXX.jar 内の定義ファイルが適用されます。

stoptags

ストップタグ定義ファイル。クラスパス上に配置する必要があります。
未設定の場合、lucene-analyzers-kuromoji-XXX.jar 内の定義ファイルが適用されます。

BinaryReferenceParser

apache tikaを利用してBinaryReferenceの内容を解析します。

classはorg.iplass.mtp.impl.fulltextsearch.parser.BinaryReferenceParserの実装クラスを指定します。

標準で以下のBinaryReferenceParserを提供します。

BinaryAutoDetectParser

tikaのAutoDetectParserを利用して全てのタイプを対象に解析します。 ただし解析に必要となる依存ライブラリが存在しない場合はスキップします。

classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryAutoDetectParserを指定します。 設定変更可能な項目はありません。

BinaryHtmlParser

HTML用Parser。 tikaのHtmlParserを利用して解析します。

classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryHtmlParserを指定します。 設定変更可能な項目はありません。

BinaryOfficeParser

OfficeDocument(2003以前の形式)用Parser。 tikaのOfficeParserを利用して解析します。

classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryOfficeParserを指定します。 設定変更可能な項目はありません。

BinaryOOXMLParser

OfficeDocument(OOXML形式)用Parser。 tikaのOOXMLParserを利用して解析します。

classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryOOXMLParserを指定します。 設定変更可能な項目はありません。

BinaryPDFParser

PDF用Parser。 tikaのPDFParserを利用して解析します。

classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryPDFParserを指定します。 設定変更可能な項目はありません。

BinaryTextParser

PlainText用Parser。 tikaのTXTParserを利用して解析します。

classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryTextParserを指定します。 設定変更可能な項目はありません。

BinaryXMLParser

XML用Parser。 tikaのXMLParserを利用して解析します。

classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryXMLParserを指定します。 設定変更可能な項目はありません。

BinaryNameTypeParser

全てのバイナリファイルを対象に、nameとtypeを返します。

classにorg.iplass.mtp.impl.fulltextsearch.parser.BinaryNameTypeParserを指定します。 設定変更可能な項目はありません。

FulltextSearchSolrServiceの設定

Solrを利用した全文検索の項目を設定します。

設定項目
項目 説明

solrUrl

String、複数指定可

用意したsolrサーバのURL。

solrMasterUrl

String

レプリケーション機能利用時のマスターサーバのURL。

highlightPreTag

String

ハイライト用の開始タグ。

highlightPostTag

String

ハイライト用の終了タグ。

設定例
<!--
    ■全文検索で利用するService

    useFulltextSearch:              全文検索を利用する場合は、tureへ変更してください。
    maxRows:                        全文検索の結果件数の上限を設定してください。
    throwExceptionWhenOverLimit:    maxRows以上の件数がヒットした場合の挙動を切り替えます。
                                    true  -> 件数以上取得できたことのメッセージを表示し、検索結果は出さない。
                                    false -> 件数以上取得できたことのメッセージを表示し、検索結果も出す。
    indexWriterRAMBufferSizeMB: Index作成時のメモリのキャッシュサイズを設定します。
    redundantTimeMinutes:           「前回Index更新日時-redundantTimeMinutes」より後のデータに対してIndexの処理を行います。

    □ solr利用の場合
    solrUrl:
        用意したsolrサーバのURLを指定してください。

    □ lunece利用の場合
    directory:
        Index情報(検索対象値)の保存先を指定してください。
    analyzer:
        利用する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 solr
    solrUrl:
        Set url of solr server.

    □ use to lunece
    directory:
        Set save directory of the index information.
    analyzer:
        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="&lt;b style=&quot;background:aquamarine&quot;&gt;" />
    <property name="highlightPostTag" value="&lt;/b&gt;" />
    <property name="throwExceptionWhenOverLimit" value="true"/>

    <!-- solr利用 -->
    <!--
    <class>org.iplass.mtp.impl.fulltextsearch.FulltextSearchSolrService</class>
    <property name="solrUrl" value="http://ADDRESS:PORT/solr/coreName/" />
     -->

    <!-- lucene利用 -->
    <class>org.iplass.mtp.impl.fulltextsearch.FulltextSearchLuceneService</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"/>

    <!-- 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" />
    <!-- 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" />

</service>

3.16. InterceptorService

コマンド実行時に呼び出されるインターセプターを管理するサービスです。

インタフェース名

org.iplass.mtp.impl.command.InterceptorService

実装クラス名

org.iplass.mtp.impl.command.InterceptorService

InterceptorServiceの設定

コマンドを実行する機能単位で呼び出すインターセプターを設定します。

設定項目
項目 説明

invoker

CommandInterceptor、複数指定可

コマンドのインターセプター。

web

CommandInterceptor、複数指定可

Actionのインターセプター。

webApi

CommandInterceptor、複数指定可

WebApiのインターセプター。

soap

CommandInterceptor、複数指定可

SOAP通信のインターセプター。

CommandInterceptor

classはorg.iplass.mtp.command.interceptor.CommandInterceptorの実装クラスを指定します。

標準で、以下のCommandInterceptorを提供します。

InitialInterceptor

classはorg.iplass.mtp.impl.webapi.interceptors.InitialInterceptorを指定します。

リクエストの初期処理として言語とプレビュー時刻を設定するインターセプターです。設定変更可能な項目はありません。

AuthInterceptor(WebApi)

classはorg.iplass.mtp.impl.webapi.interceptors.AuthInterceptorを指定します。

カスタムヘッダーによる認証処理を行うインターセプターです。設定変更可能な項目はありません。

AuthInterceptor(SOAP)

classはorg.iplass.mtp.impl.webapi.soap.interceptors.AuthInterceptorを指定します。

カスタムヘッダーによる認証処理を行うインターセプターです。設定変更可能な項目はありません。

LoggingInterceptor(Command)

classはorg.iplass.mtp.impl.command.interceptors.LoggingInterceptorを指定します。

コマンドの実行結果をログ出力するインターセプターです。設定変更可能な項目は有りません。

LoggingInterceptor(WebApi)

classはorg.iplass.mtp.impl.webapi.interceptors.LoggingInterceptorを指定します。

WebApiの実行結果をログ出力するインターセプターです。設定変更可能な項目は有りません。

TokenInterceptor(Web)

classはorg.iplass.mtp.impl.web.interceptors.TokenInterceptorを指定します。

Actionのリクエスト時にトークンのチェックを行うインターセプターです。設定変更可能な項目はありません。

TokenInterceptor(WebApi)

classはorg.iplass.mtp.impl.web.interceptors.TokenInterceptorを指定します。

WebApiのリクエスト時にトークンのチェックを行うインターセプターです。設定変更可能な項目はありません。

UnavailableInterceptor

classはorg.iplass.mtp.impl.webapi.interceptors.UnavailableInterceptorを指定します。

トランザクションの処理を行うインターセプターです。設定変更可能な項目はありません。

設定例
<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.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>
<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" />

</service>

3.17. I18nService

国際化の設定を管理するサービスです。

インタフェース名

org.iplass.mtp.impl.i18n.I18nService

実装クラス名

org.iplass.mtp.impl.i18n.I18nService

I18nServiceの設定

I18nServiceを設定します。

設定項目
項目 説明

enableLanguages

EnableLanguages、複数指定可

利用可能言語の設定。

defaultLocaleFormat

LocaleFormat

標準のロケール書式の設定。

localeFormat

LocaleFormat、複数指定可

各ロケールの書式の設定。

languageFonts

LanguageFonts、複数指定可

各言語のフォントの設定。

EnableLanguages

classはorg.iplass.mtp.impl.i18n.EnableLanguagesを指定します。

設定可能言語です。以下の項目を設定可能です。

項目 説明

languageKey

String

言語キー。

languageName

String

言語名。

otherLanguageKey

String、複数指定可

その他の言語キー。

LocaleFormat

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

苗字を先頭にするか。

LanguageFonts

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="languageFonts" class="org.iplass.mtp.impl.i18n.LanguageFonts">
        <property name="language" value="ja" />
        <property name="fonts" value="Meiryo" />
        <property name="fonts" value="MS PGothic" />
        <property name="fonts" value="Hiragino Kaku Gothic Pro" />
        <property name="fonts" value="ヒラギノ角ゴ Pro W3" />
        <property name="fonts" value="sans-serif" />
    </property>
    <property name="languageFonts" class="org.iplass.mtp.impl.i18n.LanguageFonts">
        <property name="language" value="en" />
        <property name="fonts" value="Segoe UI" />
        <property name="fonts" value="Helvetica Neue" />
        <property name="fonts" value="Arial" />
        <property name="fonts" value="Helvetica" />
        <property name="fonts" value="sans-serif" />
    </property>
    <property name="languageFonts" class="org.iplass.mtp.impl.i18n.LanguageFonts">
        <property name="language" value="zh-CN" />
        <property name="fonts" value="Microsoft Yahei" />
        <property name="fonts" value="PingHei" />
        <property name="fonts" value="sans-serif" />
    </property>
    <property name="languageFonts" class="org.iplass.mtp.impl.i18n.LanguageFonts">
        <property name="language" value="zh-TW" />
        <property name="fonts" value="Microsoft Yahei" />
        <property name="fonts" value="PingHei" />
        <property name="fonts" value="sans-serif" />
    </property>
    <property name="languageFonts" class="org.iplass.mtp.impl.i18n.LanguageFonts">
        <property name="language" value="th" />
        <property name="fonts" value="Leelawadee" />
        <property name="fonts" value="Tahoma" />
        <property name="fonts" value="sans-serif" />
    </property>
</service>

3.18. LobStoreService

LOBデータの永続化を行うサービスです。

インタフェース名

org.iplass.mtp.impl.lob.LobStoreService

実装クラス名

org.iplass.mtp.impl.lob.LobStoreService

LobStoreServiceの設定

LobStoreServiceを設定します。

設定項目
項目 説明

binaryStore

LobStore

バイナリデータのLobStore。

longTextStore

LobStore

LongTextのLobStore。

defaultLobStoreName

String

デフォルトとするLobストアの名前。デフォルト値は default です。

manageLobSizeOnRdb

boolean

LobサイズをRdb(lob_store)で管理するか。デフォルト値はfalse(管理しない)です。

LobStore

classはorg.iplass.mtp.impl.lob.lobstore.LobStoreの実装クラスを指定します。

標準で、Rdbに保存するRdbLobStore、ファイルに保存するFileLobStore、AWS S3を利用するS3LobStore、 複数のLobStoreを合わせて単一のLobStoreと設定することが可能なAddableMultiLobStoreを提供します。 各LobStoreの設定可能な項目は以下になります。

RdbLobStore

classはorg.iplass.mtp.impl.lob.lobstore.rdb.RdbLobStoreを指定します。

RDBに保存するLobStoreです。 以下の項目を設定可能です。

項目 説明

lobValidator

LobValidator

Lobに対するチェック処理。

FileLobStore

classはorg.iplass.mtp.impl.lob.lobstore.file.FileLobStoreを指定します。

ファイルに保存するLobStoreです。 以下の項目を設定可能です。

項目 説明

rootDir

String

保存先のルートディレクトリ。

overwriteFile

boolean

ファイルの上書きを行うか。デフォルト値はfalse(上書きしない)です。

lobValidator

LobValidator

Lobに対するチェック処理。

S3LobStore

classはorg.iplass.mtp.impl.aws.lobstore.s3.S3LobStoreを指定します。

S3に保存するLobStoreです。 以下の項目を設定可能です。

項目 説明

region

String

S3のリージョン

endpoint

String

S3のendpoint

bucketName

String

S3のバケット名

encryption

S3Encryption

S3オブジェクトを暗号化する場合に指定

overwriteFile

boolean

既にS3オブジェクトが存在した場合に上書きを行うか否か。
デフォルト値はfalse(上書きしない)です。

lobValidator

LobValidator

Lobに対するチェック処理。

S3Encryption

classはorg.iplass.mtp.impl.aws.lobstore.s3.S3Encryptionの実装クラスを指定します。

標準で、以下のS3Encryptionを提供しています。

SseS3Encryption

classはorg.iplass.mtp.impl.aws.lobstore.s3.SseS3Encryptionを設定します。

SSE-S3方式で暗号化します。設定変更可能な項目は有りません。

SseKmsEncryption

classはorg.iplass.mtp.impl.aws.lobstore.s3.SseKmsEncryptionを設定します。

SSE-KMS方式で暗号化します。 以下の項目を設定可能です。

項目 説明

awsKmsKeyId

String

AWS Key Management Service (KMS)S3のKey Id

AddableMultiLobStore

classはorg.iplass.mtp.impl.lob.lobstore.multi.AddableMultiLobStoreを指定します。

複数のLobStoreを合わせて単一のLobStoreと設定することが可能なLobStoreです。 以下の項目を設定可能です。

項目 説明

lobStore

LobStore、複数指定可

LobStoreの設定。

lobValidator

LobValidator

Lobに対するチェック処理。

LobValidator

classにorg.iplass.mtp.impl.lob.lobstore.LobValidatorの実装クラスを設定します。

標準で、以下のLobValidatorを提供しています。

LogLobValidator

classはorg.iplass.mtp.impl.lob.lobstore.LogLobValidatorを設定します。

単純にログを出力のみを行います。設定変更可能な項目は有りません。

ProcessLobValidator

classはorg.iplass.mtp.impl.lob.lobstore.ProcessLobValidatorを設定します。

外部プロセスを起動します。 以下の項目を設定可能です。

項目 説明

command

String、複数指定可

外部プロセスとパラメータを指定します。

checksumAlgorithm

String

checksumのアルゴリズムを指定します。 Adler-32/CRC-32/MD5/SHA-1/SHA-256のいずれかを指定してください。

設定例
<service>
    <interface>org.iplass.mtp.impl.lob.LobStoreService</interface>
    <property name="lobDao" class="org.iplass.mtp.impl.lob.EncryptLobDao" />

    <property name="defaultLobStoreName" value="defaultStore" />
    <property name="defaultStore" class="org.iplass.mtp.impl.lob.lobstore.rdb.RdbLobStore">
    </property>
    <!--
    <property name="binaryStore" class="org.iplass.mtp.impl.lob.lobstore.file.FileLobStore">
        <property name="rootDir" value="D:\tmp\fileLobStore" />
        <property name="overwriteFile" value="false" />
    </property>
    <property name="longTextStore" class="org.iplass.mtp.impl.lob.lobstore.rdb.RdbLobStore">
    </property>
     -->

    <!--
        複数のLobStoreを合わせて単一のLobStoreと設定することが可能。
        新規追加は先頭に定義されているlobStoreに対して行われる。
        参照はすべてのlobStoreにから検索する。
        削除もすべてのlobStoreに対して実行される。
     -->
    <!--
    <property name="binaryStore" class="org.iplass.mtp.impl.lob.lobstore.multi.AddableMultiLobStore">
        <property name="lobStore" class="org.iplass.mtp.impl.lob.lobstore.file.FileLobStore">
            <property name="rootDir" value="D:\tmp\fls2" />
        </property>
        <property name="lobStore" class="org.iplass.mtp.impl.lob.lobstore.file.FileLobStore">
            <property name="rootDir" value="D:\tmp\fls1" />
        </property>
        <property name="lobStore" class="org.iplass.mtp.impl.lob.lobstore.rdb.RdbLobStore" />
    </property>
     -->

     <!--
        LobサイズをRdb(lob_store)で管理するかを指定する。
        ver1.5.2でサイズ管理制御のためにlob_storeテーブルのレイアウトを変更。
        既存システムでlob_storeテーブルが変更できない場合は、falseを指定することで回避可能。 -->
    <property name="manageLobSizeOnRdb" value="false" />
</service>

3.19. MailService

メールテンプレートの定義(メタデータ)の管理と、メール送信を行うためのサービスです。

インタフェース名

org.iplass.mtp.impl.mail.MailService

実装クラス名

JavaMailを利用したメール送信
org.iplass.mtp.impl.mail.MailServiceImpl
Amazon SESを利用したメール送信
org.iplass.mtp.impl.mail.AWSMailService
SendGridを利用したメール送信
org.iplass.mtp.impl.sendgrid.SendGridMailServiceImpl

MailServiceImplの設定

標準のメール送信(JavaMail)を利用する場合、MailServiceImplを設定します。
JavaMailで定義される標準のプロパティ、各プロバイダ実装のプロパティ、およびiPLAssで拡張したプロパティを設定可能です。

設定項目
項目 説明

mail.smtp.host

String、必須

SMTPサーバのホスト名。

mail.smtp.port

int

SMTPサーバのポート番号。デフォルト値は25です。

mail.smtp.connectiontimeout

int

SMTPコネクションを確立する際のタイムアウト(ミリ秒)。 デフォルト値は60000(1分)です。

mail.smtp.timeout

int

SMTP通信時のタイムアウト(ミリ秒)。 デフォルト値は60000(1分)です。

mail.pop3.connectiontimeout

int

POP3コネクションを確立する際のタイムアウト(ミリ秒)。 デフォルト値は60000(1分)です。

mail.pop3.timeout

int

POP3通信時のタイムアウト(ミリ秒)。 デフォルト値は60000(1分)です。

mail.*

-

その他JavaMailで定義される標準のプロパティ、各プロバイダ実装のプロパティを設定可能です。

mail.host
mail.smtp.from
mail.smtp.auth
mail.transport.protocol
など

mail.smtp.popbeforesmtp

boolean

POP before SMTPにより認証する場合trueを設定します。デフォルト値はfalseです。
iPLAssにて拡張されたプロパティです。

mail.pop3.auth.id

String

POP before SMTP認証する際のユーザのIDです。
この設定はmail.smtp.popbeforesmtpがtrueの場合に有効です。
iPLAssにて拡張されたプロパティです。

mail.pop3.auth.password

String

POP before SMTP認証する際のユーザのパスワードです。
この設定はmail.smtp.popbeforesmtpがtrueの場合に有効です。
iPLAssにて拡張されたプロパティです。

mail.smtp.auth.id

String

SMTP認証する際のユーザIDです。
この設定はmail.smtp.authがtrueの場合に有効です。
iPLAssにて拡張されたプロパティです。

mail.smtp.auth.password

String

SMTP認証する際のパスワードです。
この設定はmail.smtp.authがtrueの場合に有効です。
iPLAssにて拡張されたプロパティです。

mail.charset

String

メールのデフォルトのcharsetです。
例えば ISO-2022-JP を指定します。
iPLAssにて拡張されたプロパティです。

mail.encoding

String

メールのデフォルトのencodingです。
例えば 7bit を指定します。
iPLAssにて拡張されたプロパティです。

debug

boolean

デバッグを有効にした場合、標準出力にトレースを出力します。

listener

SendMailListener、複数指定可

メール送信時のListener。

retryIntervalMillis

long

メール送信失敗時のリトライ間隔(ミリ秒)。

retryCount

int

メール送信失敗時のリトライ回数。

SendMailListener

classはorg.iplass.mtp.mail.SendMailListenerの実装クラスを指定します。

標準で送信メールのログ出力を行うorg.iplass.mtp.dev.mail.LoggingSendMailListenerを提供します。 LoggingSendMailListenerは設定変更可能な項目はありません。

設定例
<service>
    <interface>org.iplass.mtp.impl.mail.MailService</interface>
    <class>org.iplass.mtp.impl.mail.MailServiceImpl</class>

    <!-- SMTP設定  -->
    <!-- SMTPサーバホスト -->
    <property name="mail.smtp.host" value="XXXXXXXX"/>
    <!-- SMTPサーバポート  通常:25 / サブミッションポート:587 / SSL:465 -->
    <property name="mail.smtp.port" value="25"/>
    <!-- タイムアウト設定 -->
    <property name="mail.smtp.connectiontimeout" value="60000"/>
    <property name="mail.smtp.timeout" value="60000"/>

    <!--
        mail.smtp.hostプロパティはmail.hostプロパティに優先して認識されるため、2つの値が同一ならば、
        mail.smtp.hostプロパティを設定するだけでもメール送信は可能です。
        しかし、mail.hostプロパティは内部的にMessage-ID ヘッダを生成するのに利用されます。
        mail.hostプロパティを明示的に指定していない場合、Message-IDヘッダが正しく生成できない可能性があります。
     -->
    <property name="mail.host" value="XXXXXXXX"/>

    <!-- デフォルトCharset -->
    <property name="mail.charset" value="ISO-2022-JP"/>

    <!--
        Content-Transfer-Encoding
        これは、一部のケータイメールが quoted-printable を処理できないことへの対策となります。
     -->
    <property name="mail.encoding" value="7bit"/>

    <!-- ■ for develop only (additional="true) ■ -->
    <!-- 送信メールをデバッグ出力する場合、以下を有効にしてください。 -->
    <!--
    <property name="listener" class="org.iplass.mtp.mail.listeners.LoggingSendMailListener" additional="true"/>
     -->
</service>

AWSMailServiceの設定

Amazon SESを利用する場合、AWSMailServiceを設定します。
AWSMailServiceを利用する場合、AWSSettingにてAWSの認証設定が行われている必要があります。

設定項目
項目 説明

mail.charset

String

メールのデフォルトのcharsetです。
例えば ISO-2022-JP を指定します。

mail.encoding

String

メールのデフォルトのencodingです。
例えば 7bit を指定します。

mail.aws.host

String

SESのendpointを指定可能です。
未指定の場合はデフォルトのendpointが利用されます。

debug

boolean

デバッグを有効にした場合、標準出力にトレースを出力します。

listener

SendMailListener、複数指定可

メール送信時のListener。

retryIntervalMillis

long

メール送信失敗時のリトライ間隔(ミリ秒)。

retryCount

int

メール送信失敗時のリトライ回数。

SendMailListener

MailServiceImplのSendMailListenerと同様です。

設定例

MailServiceImplと同様です。

SendGridMailServiceImplの設定

SendGridを利用する場合、SendGridMailServiceImplを設定します。

設定項目
項目 説明

checkBounce

boolean

送信前にバウンスリスト、ブロックリストチェックを行うか。デフォルト値はtrueです。

httpClientConfig

HttpClientConfig

HTTPクライアントの設定。

httpTransport

HttpTransport

WebApiへのHTTPリクエストの設定。

mailApiClient

MailClient

メールクライアントの設定。

deleteBouncePattern

String

SendGridのバウンス、ブロックリストにアドレスが載った際にリストから削除対象とするアドレス。ドメイン.正規表現の形式で指定します。

bounce

BounceClient

バウンスクライアント。

block

BlockClient

ブロッククライアント。

listener

SendMailListener、複数指定可

メール送信時のListener。

retryIntervalMillis

long

送信失敗時のリトライ間隔(ミリ秒)。

retryCount

int

送信失敗時のリトライ回数。

HttpClientConfig

classはorg.iplass.mtp.impl.http.HttpClientConfigを指定します。

以下の項目を設定可能です。

項目 説明

connectionTimeout

int

HTTPコネクションを確立する際のタイムアウト(ミリ秒)。デフォルト値は30000(30秒)です。

soTimeout

int

HTTP通信時のsocket timeout (SO_TIMEOUT)(ミリ秒)。デフォルト値は30000(30秒)です。

poolingMaxTotal

int

httpコネクションのプールの最大数。デフォルト値は20です。

poolingDefaultMaxPerRoute

int

ドメイン単位のhttpコネクションの最大数。デフォルト値は2です。

poolingTimeToLive

int

プールされているhttpコネクションの生存期間(ミリ秒)。デフォルトは無制限です。

proxyHost

String

プロキシサーバのホスト。

proxyPort

int

プロキシサーバのポート番号。

HttpTransport

classはorg.iplass.mtp.impl.sendgrid.apiclient.HttpTransportImplを指定します。

以下の項目を設定可能です。

項目 説明

apiUser

String、必須

SendGridのAPIユーザー。

apiKey

String、必須

SendGridのAPIキー。

webApiRoot

String、必須

SendGridのAPIのURL。

MailClient

classはorg.iplass.mtp.impl.sendgrid.apiclient.MailClientImplを指定します。

以下の項目を設定可能です。

項目 説明

charset

String

メールの文字コード。

BounceClient

classはorg.iplass.mtp.impl.sendgrid.apiclient.BounceClientImplを指定します。

BounceClientImplは設定変更可能な項目はありません。

BlockClient

classはorg.iplass.mtp.impl.sendgrid.apiclient.BlockClientImplを指定します。

BlockClientImplは設定変更可能な項目はありません。

SendMailListener

MailServiceImplのSendMailListenerと同様です。

設定例
<service>
    <interface>org.iplass.mtp.impl.mail.MailService</interface>
    <class>org.iplass.mtp.impl.sendgrid.SendGridMailServiceImpl</class>
    <!-- 送信前にバウンスリスト、ブロックリストチェックを行わない場合、checkBounceをfalseに設定 -->
    <!--
    <property name="checkBounce" value="false" />
    -->
    <property name="httpClientConfig" class="org.iplass.mtp.impl.http.HttpClientConfig">
        <property name="connectionTimeout" value="30000" />
        <property name="soTimeout" value="30000" />
        <!-- ■ for develop only ■ -->
        <!--
        <property name="proxyHost" value="proxyhost.isid.co.jp" />
        <property name="proxyPort" value="8080" />
         -->
    </property>
    <property name="httpTransport" class="org.iplass.mtp.impl.sendgrid.apiclient.HttpTransportImpl">
        <!-- SendGridの認証用キー -->
        <property name="apiUser" value="yourOwnApiUser" />
        <property name="apiKey" value="yourOwnApiKey" />
        <!-- SendGridエンドポイント -->
        <property name="webApiRoot" value="https://api.sendgrid.com/api" />
    </property>

    <property name="mailApiClient" class="org.iplass.mtp.impl.sendgrid.apiclient.MailClientImpl">
        <!-- メールの文字コード -->
        <property name="charset" value="UTF-8" />
    </property>

    <!-- SendGridのバウンス、ブロックリストにアドレスが載った際、リストから削除対象とするドメイン.正規表現で指定. -->
    <property name="deleteBouncePattern" value=".*@ldap.isid.jp|.*@contract.isid.co.jp" />

    <property name="bounce" class="org.iplass.mtp.impl.sendgrid.apiclient.BounceClientImpl" />
    <property name="block" class="org.iplass.mtp.impl.sendgrid.apiclient.BlockClientImpl" />

    <!-- ■ for develop only (additional="true") ■ -->
    <!--
    <property name="listener" class="org.iplass.mtp.dev.mail.LoggingSendMailListener" additional="true"/>
     -->
</service>

3.20. MessageService

リソースバンドルを管理するためのサービスです。

インタフェース名

org.iplass.mtp.impl.message.MessageService

実装クラス名

org.iplass.mtp.impl.message.MessageService

MessageServiceの設定

MessageServiceを設定します。

設定項目
項目 説明

resourceBundle

ResourceBundleConfig、複数指定可

ResourceBundleConfigの設定。

ResourceBundleConfig

classはorg.iplass.mtp.impl.message.ResourceBundleConfigを指定します。

標準でorg.iplass.mtp.impl.query.QuerySyntaxRegisterを提供しています。 以下の項目を設定可能です。

項目 説明

baseBundleNamePattern

String

バンドル名のパターン。

formats

String、複数指定可

ファイルのフォーマット。mtp.message を指定した場合はMessage定義をリソースバンドルとして扱います。

fallbackToSystemLocale

boolean

リソースバンドルを検索する際にシステムロケールをフォールバックするか。

設定例

<service>
    <interface>org.iplass.mtp.impl.message.MessageService</interface>
    <class>org.iplass.mtp.impl.message.MessageService</class>
    <property name="resourceBundle">
        <property name="baseBundleNamePattern" value="^org/iplass/.*$" />
        <property name="formats" value="java.class" />
        <property name="formats" value="java.properties" />
        <property name="fallbackToSystemLocale" value="false" />
    </property>
    <property name="resourceBundle">
        <property name="formats" value="mtp.message" />
        <property name="formats" value="java.class" />
        <property name="formats" value="java.properties" />
        <property name="fallbackToSystemLocale" value="false" />
    </property>
</service>

3.21. MetaDataRepository

メタデータの管理を行うためのサービスです。

インタフェース名

org.iplass.mtp.impl.metadata.MetaDataRepository

実装クラス名

org.iplass.mtp.impl.metadata.MetaDataRepository

MetaDataRepositoryの設定

メタデータの管理方法を設定します。

設定項目
項目 説明

resourcePath

String、複数指定可

メタデータをXMLで定義したリソースファイルのパス。

filePath

String、複数指定可

メタデータをXMLで定義したファイルのパス。

annotatedClass

String、複数指定可

メタデータをアノテーションで定義したJavaクラス。 MetaDataSeeAlso、CommandClass、AsyncCommand、AsyncCommands、ActionMapping、ActionMappings、Template、Templates、WebApi、WebApisの各アノテーションが対象です。

tenantLocalStore

MetaDataStore

テナントのローカルメタデータを管理するためのMetaDataStore。

sharedStore

MetaDataStore

複数のテナントで共有するメタデータを管理するためのMetaDataStore。

MetaDataStore

各種メタデータを管理するための仕組みを提供します。

classはorg.iplass.mtp.impl.metadata.MetaDataStoreの実装クラスを指定します。

標準で以下のMetaDataStoreを提供します。

AnnotationMetaDataStore

MetaDataRepositoryのannotatedClassで指定されたJavaクラスのアノテーションからメタデータを読み込みます。

JavaクラスのアノテーションがMetaDataSeeAlsoの場合、MetaDataSeeAlsoに指定されたJavaクラスのアノテーションを読み込みます。 その他のアノテーション場合、annotatableMetaDataFactoryに指定されたクラスからアノテーションに対応するメタデータを作成します。

読み込み専用で、メタデータの登録/更新/削除は出来ません。

classにorg.iplass.mtp.impl.metadata.annotation.AnnotationMetaDataStoreを指定します。

項目 説明

annotatableMetaDataFactory

AnnotatableMetaDataFactory、複数指定可

アノテーションを読み込むためのクラス。

XmlResourceMetaDataStore

MetaDataRepositoryのresourcePathで指定されたクラスパス内に存在するXMLファイルからメタデータを読み込みます。 同様にfilePathで指定されたXMLファイルからXMLファイル絡めたデータを読み込みます。

読み込み専用で、メタデータの登録/更新/削除は出来ません。

classにorg.iplass.mtp.impl.metadata.xmlresource.XmlResourceMetaDataStoreを指定します。 設定変更可能な項目はありません。

RdbMetaDataStore

データベースを利用してメタデータを管理します。 MetaDataRepositoryのtenantLocalStoreでデフォルト設定になっており、各テナントで追加/編集したメタデータはデータベースで管理されます。

classにorg.iplass.mtp.impl.metadata.rdb.RdbMetaDataStoreを指定します。 設定変更可能な項目はありません。

CompositeMetaDataStore

メタデータを種類毎にMetaDataStoreを切り替えて管理します。

ブランクプロジェクトのservice-configにコメント化された状態で定義されています。 メタデータのバージョン管理をソース管理サーバで行う場合はコメント化を解除してください。 一部のメタデータを除いて、ローカルファイルとして管理できるようになります。

classにorg.iplass.mtp.impl.metadata.composite.CompositeMetaDataStoreを指定します。

項目 説明

defaultStoreClass

String

デフォルトのMetaDataStoreクラスのクラス名。 pathMappingで指定されたメタデータ以外のメタデータを管理するstoreになります。

pathMapping

MetaDataStorePathMapping、複数指定可

defaultStoreClassとは別のMetaDataStoreで管理するメタデータ。

store

MetaDataStore、複数指定可

defaultStoreClass及びpathMappingのstoreに指定しているクラス。

XmlFileMetaDataStore

XMLファイルベースでメタデータを管理します。

相対パスを指定する場合、EclipseのTomcat起動構成の引数タブで、作業ディレクトリをプロジェクトのルートディレクトリにしてください。

${workspace_loc:mtp-blank}

classにorg.iplass.mtp.impl.metadata.xmlfile.XmlFileMetaDataStoreを指定します。

項目 説明

rootPath

String

メタデータの保存先のルートパス。

fileStorePath

String

テナントメタデータの保存先。

groovySourceStorePath

String

UtilityClassのGroovyソースファイルの保存先。 未指定の場合はfileStorePathに保存されます。

localTenantId

int

管理対象のテナントID。

suffix

String

メタデータファイルの拡張子。デフォルト値は「.xml」です。

VersioningXmlFileMetaDataStore

XMLファイルベースでメタデータを管理します。 メタデータはバージョンを付与し、世代管理を行います。

classにorg.iplass.mtp.impl.metadata.xmlfile.VersioningXmlFileMetaDataStoreを指定します。

項目 説明

fileStorePath

String

テナントメタデータの保存先。

versionFormat

String

メタデータファイル名に付与されるバージョンのフォーマット。 未指定の場合 000 形式になります。

suffix

String

メタデータファイルの拡張子。デフォルト値は「.xml」です。

TypeConversionMetaDataStore

古いモジュールなどで提供されていたメタデータを現在のモジュールに変換し、利用できるようにするための機構です。

classにorg.iplass.mtp.impl.metadata.typeconversion.TypeConversionMetaDataStoreを指定します。

項目 説明

store

MetaDataStore

変換対象のメタデータを管理しているMetaDataStore。

converters

TypeConverter 、複数指定可

メタデータの型変換を行うコンバータ。

AnnotatableMetaDataFactory

アノテーションからメタデータを作成します。

classにorg.iplass.mtp.impl.metadata.annotation.AnnotatableMetaDataFactoryの実装クラスを指定します。

標準で以下のAnnotatableMetaDataFactoryを提供します。

MetaCommandClassFactory

CommandからCommandClassアノテーションを読み込みます。

classにorg.iplass.mtp.impl.command.MetaCommandClassFactoryを指定します。 設定変更可能な項目はありません。

MetaAsyncCommandFactory

CommandからAsyncCommandアノテーションを読み込みます。

classにorg.iplass.mtp.impl.command.async.MetaAsyncCommandFactoryを指定します。 設定変更可能な項目はありません。

MetaAsyncCommandsFactory

CommandからAsyncCommandsアノテーションを読み込みます。

classにorg.iplass.mtp.impl.command.async.MetaAsyncCommandsFactoryを指定します。 設定変更可能な項目はありません。

MetaActionMappingFactory

CommandからActionMappingアノテーションを読み込みます。

classにorg.iplass.mtp.impl.web.actionmapping.MetaActionMappingFactoryを指定します。 設定変更可能な項目はありません。

MetaActionMappingsFactory

CommandからActionMappingsアノテーションを読み込みます。

classにorg.iplass.mtp.impl.web.actionmapping.MetaActionMappingsFactoryを指定します。 設定変更可能な項目はありません。

MetaTemplateFactory

CommandからTemplateアノテーションを読み込みます。

org.iplass.mtp.impl.web.template.MetaTemplateFactoryを指定します。 設定変更可能な項目はありません。

MetaTemplatesFactory

CommandからTemplatesアノテーションを読み込みます。

org.iplass.mtp.impl.web.template.MetaTemplatesFactoryを指定します。 設定変更可能な項目はありません。

MetaWebApiFactory

CommandからWebApiアノテーションを読み込みます。

classにorg.iplass.mtp.impl.webapi.MetaWebApiFactoryを指定します。 設定変更可能な項目はありません。

MetaWebApisFactory

CommandからWebApisアノテーションを読み込みます。

classにorg.iplass.mtp.impl.webapi.MetaWebApisFactoryを指定します。 設定変更可能な項目はありません。

MetaDataStorePathMapping

CompositeMetaDataStoreでdefaultStoreClass以外のMetaDataStoreを利用する場合に利用します。 pathPrefixで指定したメタデータとstoreで指定したMetaDataStoreをマッピングします。

classにorg.iplass.mtp.impl.metadata.composite.MetaDataStorePathMappingを指定します。

項目 説明

pathPrefix

String

メタデータのパスのプレフィックス。

store

String

pathPrefixで指定したメタデータを管理するstoreのクラス名。

TypeConverter

新旧メタデータの変換処理を実装するためのインターフェースです。

classにorg.iplass.mtp.impl.metadata.typeconversion.TypeConverterの実装クラスを指定してください。

設定例
<service>
    <interface>org.iplass.mtp.impl.metadata.MetaDataRepository</interface>

    <!-- ■ your app metadata xml file name (additional="true) ■ -->
    <!--
    <property name="resourcePath" value="/xxx-metadata.xml" additional="true" />
     -->

    <!-- ■ your app command list class (additional="true) ■ -->
    <!--
    <property name="annotatedClass" value="xxx.command.CommandList" additional="true" />
     -->

    <!-- ■ your tenantLocalStore ■ -->
    <!--
        テナントメタデータの保存先を指定します。 UtilityClassのGroovyソースファイルは別の保存先を指定できます。
        相対パスを指定する場合、EclipseのTomcat起動構成で作業ディレクトリをプロジェクトのルートディレクトリにしてください。
        (例: ${workspace_loc:mtp-blank})
    -->
    <!--
    <property name="tenantLocalStore" class="org.iplass.mtp.impl.metadata.composite.CompositeMetaDataStore" >
        <property name="pathMapping" class="org.iplass.mtp.impl.metadata.composite.MetaDataStorePathMapping">
            <property name="pathPrefix" value="/entity/"/>
            <property name="store" value="org.iplass.mtp.impl.metadata.rdb.RdbMetaDataStore"/>
        </property>
        <property name="pathMapping" class="org.iplass.mtp.impl.metadata.composite.MetaDataStorePathMapping">
            <property name="pathPrefix" value="/staticresource/"/>
            <property name="store" value="org.iplass.mtp.impl.metadata.rdb.RdbMetaDataStore"/>
        </property>

        <property name="store" class="org.iplass.mtp.impl.metadata.rdb.RdbMetaDataStore" />
        <property name="store" class="org.iplass.mtp.impl.metadata.xmlfile.XmlFileMetaDataStore" >
            <property name="fileStorePath" value="src/main/tenantLocalStore/" />
            <property name="groovySourceStorePath" value="src/main/groovy/" />
            <property name="localTenantId" value="XXX"/>
        </property>
        <property name="defaultStoreClass" value="org.iplass.mtp.impl.metadata.xmlfile.XmlFileMetaDataStore"/>
    </property>
     -->

    <!-- WebAPI(旧メタデータ)をWebApi(新メタデータ)として利用します。 -->
    <!--
    <property name="tenantLocalStore" class="org.iplass.mtp.impl.metadata.typeconversion.TypeConversionMetaDataStore">
        <property name="store" class="org.iplass.mtp.impl.metadata.rdb.RdbMetaDataStore" />
        <property name="converters" class="org.iplass.mtp.impl.webapi.classic.metadata.MetaWebAPITypeConverter" />
        <property name="converters" class="org.iplass.mtp.impl.webapi.classic.metadata.MetaEntityWebApiDefinitionTypeConverter" />
    </property>
    -->
</service>

3.22. OidCounter

oidの採番を行うサービスです。 採番を行うCounterServiceを利用します。 RDBのシーケンス採番機能の有無で設定を変える必要があります。 シーケンス機能が有る場合(デフォルト設定)は RdbSequenceCounterService を、 無い場合(MySQL)は CachableRdbTableCounterService を利用します。

インタフェース名

org.iplass.mtp.impl.counter.CounterService

実装クラス名

シーケンス機能が有る
org.iplass.mtp.impl.counter.RdbSequenceCounterService
シーケンス機能が無い
org.iplass.mtp.impl.counter.CachableRdbTableCounterService

RdbSequenceCounterService

RdbSequenceCounterServiceを設定します。

設定項目
項目 説明

sequenceNameMap

SequenceNameMap

キャッシュサイズ。デフォルト値は20です。

SequenceNameMap

採番を行う単位と採番テーブルのマッピングを設定します。 以下の項目が設定できます。

項目 説明

name

String

採番を行う単位の名前。

value

String

RDBのシーケンス名。

CachableRdbTableCounterServiceの設定

CachableRdbTableCounterServiceを設定します。

設定項目
項目 説明

separateTransaction

boolean

採番時にトランザクションを分けるか。デフォルト値はfalseです。

retryCount

int

採番失敗時にリトライする回数。デフォルト値は3です。

counterTypeName

String

採番タイプの名前。デフォルト値は defaultCounter です

cacheSize

int

キャッシュサイズ。デフォルト値は20です。

設定例
<!-- デフォルト設定 -->
<service name="OidCounter">
    <interface>org.iplass.mtp.impl.counter.CounterService</interface>
    <class>org.iplass.mtp.impl.counter.RdbSequenceCounterService</class>
    <property name="sequenceNameMap">
        <property name="oid" value="SEQ_OBJ_ID" />
        <property name="rbid" value="SEQ_RB_ID" />
        <property name="lobid" value="SEQ_LOB_ID" />
        <property name="logid" value="SEQ_LOG_ID" />
    </property>
</service>

<!-- MySQL -->
<service name="OidCounter">
    <interface>org.iplass.mtp.impl.counter.CounterService</interface>
    <class>org.iplass.mtp.impl.counter.CachableRdbTableCounterService</class>
    <property name="counterTypeName" value="OidCounter" />
    <property name="cacheSize" value="20" />
    <property name="retryCount" value="3" />
</service>

3.23. OnetimeCodeGeneratorService

二段階認証のワンタイム認証コードを生成するサービスです。

インタフェース名

org.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeGeneratorService

実装クラス名

org.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeGeneratorService

OnetimeCodeGeneratorServiceの設定

ワンタイム認証コードの生成について設定します。

設定項目
項目 説明

generator

OnetimeCodeGenerator、複数指定可

ワンタイム認証コードの生成器の設定。

OnetimeCodeGenerator

classはorg.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeGeneratorの実装クラスを指定します。

標準で、外部送信するワンタイム認証コードを生成するorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.OutOfBandOnetimeCodeGeneratorを提供します。 OutOfBandOnetimeCodeGeneratorの設定可能な項目は以下になります。

OutOfBandOnetimeCodeGenerator

外部送信するワンタイム認証コードを生成するワンタイム認証コード生成器です。 以下の項目を設定可能です。

項目 説明

name

String

ワンタイム認証コード生成器の名前。

maxFailureCount

int

最大認証失敗回数。デフォルト値は5です。

lifetimeSeconds

long

ワンタイム認証コードの有効時間。デフォルト値は180(3分)です。

store

OnetimeCodeStore

ワンタイム認証コードの保持方式。

sender

OutOfBandSender

ワンタイム認証コードの外部送信方式。

strategy

GenerateStrategy

ワンタイム認証コードの生成方式。

OnetimeCodeStore

classはorg.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeStoreの実装クラスを指定します。

標準で、ワンタイム認証コードをセッションに格納するorg.iplass.mtp.impl.auth.authenticate.onetime.SessionOntimeCodeStoreを提供します。 SessionOntimeCodeStoreは設定変更可能な項目はありません。

OutOfBandSender

classはorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.OutOfBandSenderの実装クラスを指定します。

標準で、ワンタイム認証コードをメール送信するorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.MailOutOfBandSenderと、 SMS送信するorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.SmsOutOfBandSenderを提供します。

MailOutOfBandSender

classはorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.MailOutOfBandSenderを指定します。

以下の項目を設定可能です。

項目 説明

mailTemplate

String

ワンタイム認証コードを送信するメールのテンプレート。

fromAddress

String

送信元メールアドレス。 テナントのメール送信設定で設定されているFromアドレスとは別のメールアドレスを使用する場合に設定します。

SmsOutOfBandSender

classはorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.SmsOutOfBandSenderを指定します。

以下の項目を設定可能です。

項目 説明

smsTemplate

String

ワンタイム認証コードを送信するSMSのテンプレート。

fromPhoneNumber

String

送信元電話番号。SmsServiceで設定されているdefaultFromとは別の電話番号を使用する場合に設定します。

GenerateStrategy

classはorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.GenerateStrategyの実装クラスを指定します。

標準で、数値のワンタイム認証コードを生成するorg.iplass.mtp.impl.auth.authenticate.onetime.outofband.NumberGenerateStrategyを提供します。 NumberGenerateStrategyは以下の項目を設定可能です。

項目 説明

numberOfDigits

int

数値の桁数。デフォルト値は6です。

設定例
<service>
    <interface>org.iplass.mtp.impl.auth.authenticate.onetime.OnetimeCodeGeneratorService</interface>
    <property name="generator"
       class="org.iplass.mtp.impl.auth.authenticate.onetime.outofband.OutOfBandOnetimeCodeGenerator">
        <property name="name" value="outOfBandByMail" />
        <property name="maxFailureCount" value="5" />
        <property name="lifetimeSeconds" value="180" />
        <property name="store"
            class="org.iplass.mtp.impl.auth.authenticate.onetime.SessionOntimeCodeStore" />
        <property name="sender"
            class="org.iplass.mtp.impl.auth.authenticate.onetime.outofband.MailOutOfBandSender">
            <property name="mailTemplate" value="mtp/auth/onetime/SendCode" />
            <!-- if use another "from address" instead of tenant default "from address".
            <property name="fromAddress" value="noreply@xxx.isid.co.jp" />
             -->
        </property>
        <property name="strategy"
            class="org.iplass.mtp.impl.auth.authenticate.onetime.outofband.NumberGenerateStrategy">
            <property name="numberOfDigits" value="6" />
        </property>
    </property>
    <property name="generator"
        class="org.iplass.mtp.impl.auth.authenticate.onetime.outofband.OutOfBandOnetimeCodeGenerator">
        <property name="name" value="outOfBandBySms" />
        <property name="maxFailureCount" value="5" />
        <property name="lifetimeSeconds" value="180" />
        <property name="store"
            class="org.iplass.mtp.impl.auth.authenticate.onetime.SessionOntimeCodeStore" />
        <property name="sender"
            class="org.iplass.mtp.impl.auth.authenticate.onetime.outofband.SmsOutOfBandSender">
            <property name="smsTemplate" value="mtp/auth/onetime/SendCodeSms" />
            <!-- if use another "from phone number" instead of SMSService's defaultFrom.
            <property name="fromPhoneNumber" value="+1234..." />
             -->
        </property>
        <property name="strategy"
            class="org.iplass.mtp.impl.auth.authenticate.onetime.outofband.NumberGenerateStrategy">
            <property name="numberOfDigits" value="6" />
        </property>
    </property>
</service>

3.24. PropertyEncryptionService

プロパティ単位の暗号化を行うサービスです。

インタフェース名

org.iplass.mtp.impl.properties.extend.crypt.PropertyEncryptionService

実装クラス名

org.iplass.mtp.impl.properties.extend.crypt.PropertyEncryptionService

PropertyEncryptionServiceの設定

PropertyEncryptionServiceを設定します。

設定項目
項目 説明

encryptionSettings

EncryptionSetting、複数指定可

暗号化の方式。 標準で提供するクラス、もしくはEncryptionSettingインタフェースを実装するカスタムのEncryptionSetting。 異なるversionのencryptionSettingsを複数定義することにより、暗号化ロジックのロールオーバーが可能です。 新規に保存される値は最後に定義されたencryptionSettingsを利用して暗号化されます。

cachePrivateKeyInMemory

boolean

シークレットキーをメモリにキャッシュするか。デフォルト値はfalseです。

logEncryptProperty

boolean

暗号化したプロパティを暗号化前の値でログ出力するか。デフォルト値はtrueです。

encryptValueLogExpression

String

暗号化した際に出力される文字列。デフォルト値は "***" です。

EncryptionSetting

暗号化の方式を定義します。

classはorg.iplass.mtp.impl.properties.extend.crypt.EncryptionSettingの実装クラスを指定します。

標準で以下のEncryptionSettingを提供します。

PBKDF2EncryptionSetting

PBKDF2(Password-Based Key Drivation Function 2)を用いた暗号化を行います。

classにorg.iplass.mtp.impl.properties.extend.crypt.PBKDF2EncryptionSettingを指定します。

項目 説明

version

String

暗号化アルゴリズム設定のバージョン。 複数のencryptionSettings定義でそれぞれ一意な番号を指定する。

keyFactoryAlgorithm

String

鍵生成アルゴリズム。 デフォルト値は PBKDF2WithHmacSHA256

keySalt

String

鍵生成時のSalt。 未指定の場合はシステムのデフォルト値を利用。

keyStretch

int

鍵生成時のストレッチ回数。 デフォルト値は2048。

cipherAlgorithm

String

ブロック暗号化のアルゴリズム。 デフォルト値は AES

keyLength

int

鍵長。デフォルト値は128。

keyPassword

String

鍵生成の元となるパスワード文字列。

KeyStoreEncryptionSetting

KeyStoreファイルを用いた暗号化を行います。

classにorg.iplass.mtp.impl.properties.extend.crypt.KeyStoreEncryptionSettingを指定します。

項目 説明

version

String

暗号化アルゴリズム設定のバージョン。 複数のencryptionSettings定義でそれぞれ一意な番号を指定する。

cipherAlgorithm

String

ブロック暗号化のアルゴリズム。 デフォルト値は AES

keyLength

int

鍵長。デフォルト値は128。

keyStoreType

String

秘密鍵を保存するkeyStoreのタイプ。 デフォルト値は JCEKS

keyStoreFilePath

String

keyStoreファイルのファイルパス。

keyStorePassword

String

keyStoreのパスワード。

keyAlias

String

keyStore内に格納されている秘密鍵のエイリアス名。

keyPassword

String

keyStore内に格納されている秘密鍵取得のためのパスワード。

設定例
<service>
    <interface>org.iplass.mtp.impl.properties.extend.crypt.PropertyEncryptionService</interface>
    <property name="encryptionSettings" class="org.iplass.mtp.impl.properties.extend.crypt.PBKDF2EncryptionSetting">
        <property name="version" value="1" />
        <property name="keyPassword" value="yourOwnPass" />
    </property>
    <property name="encryptionSettings" class="org.iplass.mtp.impl.properties.extend.crypt.KeyStoreEncryptionSetting">
        <property name="version" value="2" />
        <property name="keyStoreFilePath" value="yourOwnKeyStoreFilePass" />
        <property name="keyStorePassword" value="yourOwnKeyStorePassword" />
        <property name="keyAlias" value="yourOwnKeyAliasName" />
        <property name="keyPassword" value="yourOwnKeyPassword" />
    </property>
    <!--
        By default the secret key is cached in memory.
        For enhanced security,
        set cachePrivateKeyInMemory to false if you do not want to cache secret keys in memory.
     -->
    <property name="cachePrivateKeyInMemory" value="true" />
</service>

keyPassword、keyStorePasswordは秘匿情報なので、取り扱いに注意してください。 設定ファイルのアクセス権を厳重にする、または設定ファイルの難読化を施すなどの対策をしてください。

3.25. PropertyService

プロパティを管理するサービスです。

インタフェース名

org.iplass.mtp.impl.entity.property.PropertyService

実装クラス名

org.iplass.mtp.impl.entity.property.PropertyService

PropertyServiceの設定

PropertyServiceを設定します。

設定項目
項目 説明

longTextInlineStoreMaxLength

int

LongText型の文字列を内部で保持する場合の最大サイズ(バイト)。デフォルト値は1024です。文字列の先頭から設定された最大サイズ分が内部に保持されます。

remainInlineText

boolean

LongText型の文字列を内部で保持するか。デフォルト値はfalseです。内部で保持された文字列は検索に使用出来ます。

設定例
<service>
    <interface>org.iplass.mtp.impl.entity.property.PropertyService</interface>

    <!-- if longtext property value length is over this byte, offstorage to LOB -->
    <property name="longTextInlineStoreMaxLength" value="1024" />
    <!-- To enable search long text property, this flag set to true. note:Search text limit is longTextInlineStoreMaxLength. And storage space more consume. -->
    <property name="remainInlineText" value="false" />
</service>

3.26. PushNotificationService

プッシュ通知テンプレートの定義(メタデータ)の管理と、モバイル端末へのプッシュ通知を行うためのサービスです。 プッシュ通知サービスの実装としてFirebase Cloud Messaging(FCM)を利用したモジュールを標準提供します。

インタフェース名

org.iplass.mtp.impl.pushnotification.PushNotificationService

実装クラス名

org.iplass.mtp.impl.pushnotification.fcm.FCMPushNotificationService

FCMPushNotificationServiceの設定

FCMを利用する場合、FCMPushNotificationServiceを設定します。

設定項目
項目 説明

authorizationKey

String、必須

FCMで発行される認証のためのサーバキー。

enableRetry

boolean

FCM呼び出しに失敗しリトライ可能なエラーであった場合、リトライするかどうか。 未指定の場合のデフォルト値はtrueです。

exponentialBackoff

ExponentialBackoff

ExponentialBackoffクラスのプロパティにてリトライ処理する際の 指数バックオフ の設定。

registrationIdHandler

RegistrationIdHandler

registrationIdが存在しなかった場合や正規のRegistrationIdが存在するとFCMから通知された場合、その通知を処理するためのRegistrationIdHandlerの実装クラス。 未指定の場合は何も処理しません。

httpClientConfig

HttpClientConfig

WebApi呼び出し時のHTTPコネクションに関する設定。

listener

PushNotificationListener、複数指定可

PushNotificationを送信した際のListener。

dryRun

boolean

FCM呼び出し時、このパラメータがtrueに設定されている場合、FCMは実際にメッセージを送信せず、リクエストをテストすることができます。未指定の場合のデフォルト値はfalseです。

endpoint

String

FCM呼び出しを行うエンドポイントのURL。未指定の場合のデフォルト値は https://fcm.googleapis.com/fcm/send です。

ExponentialBackoff

classはorg.iplass.mtp.impl.pushnotification.fcm.ExponentialBackoffを指定します。 以下の項目を設定可能です。

項目 説明

retryIntervalMillis

int

リトライ間隔をミリ秒で指定します。デフォルト値は500です。

randomizationFactor

double

リトライ時のランダム要素。 0.5の場合、retryIntervalMillisに指定した値が上下25%の範囲で変動します。デフォルト値は0.5です。

multiplier

double

リトライ時のリトライ間隔の指数要素。 1.5の、retryIntervalMillisが500の場合、2回目のリトライは750ms、3回目のリトライは1125msのリトライ間隔で行われます。デフォルト値は1.5です。

maxIntervalMillis

int

最大リトライ間隔です。 デフォルト値は60000(1分)です。

maxElapsedTimeMillis

int

最大のリトライ実行時間。 この時間の間にリトライ処理が成功しなかった場合は、リトライ処理を完了し、アプリケーション側にその時点までの結果を返却します。 デフォルト値は300000(5分)です。

RegistrationIdHandler

classはorg.iplass.mtp.pushnotification.fcm.RegistrationIdHandlerの実装クラスを指定します。

標準で、単純にログ出力を行うorg.iplass.mtp.impl.pushnotification.fcm.LoggingRegistrationIdHandlerを提供します。 LoggingRegistrationIdHandlerは設定変更可能な項目はありません。

HttpClientConfig

classはorg.iplass.mtp.impl.http.HttpClientConfigを指定します。 以下の項目を設定可能です。

項目 説明

proxyHost

String

proxyを利用する場合のHost名。

proxyPort

int

proxyを利用する場合のport。

connectionTimeout

int

HTTPコネクションを確立する際のタイムアウト(ミリ秒)。デフォルト値は30000(30秒)です。

soTimeout

int

HTTP通信時のsocket timeout (SO_TIMEOUT)をミリ秒で指定します。デフォルト値は30000(30秒)です。

poolingMaxTotal

int

httpコネクションのプールの最大数。デフォルト値は20です。

poolingDefaultMaxPerRoute

int

ドメイン単位のhttpコネクションの最大数。デフォルト値は2です。

poolingTimeToLive

int

プールされているhttpコネクションの生存期間(ミリ秒)。デフォルトは無制限です。

PushNotificationListener

classはorg.iplass.mtp.pushnotification.PushNotificationListenerの実装クラスを指定します。

設定例
<service>
    <interface>org.iplass.mtp.impl.pushnotification.PushNotificationService</interface>
    <class>org.iplass.mtp.impl.pushnotification.fcm.FCMPushNotificationService</class>
    <property name="authorizationKey" value="AA...." />
    <property name="enableRetry" value="true" />
    <property name="exponentialBackoff"
            class="org.iplass.mtp.impl.pushnotification.fcm.ExponentialBackoff">
        <property name="retryIntervalMillis" value="500" />
        <property name="randomizationFactor" value="0.5" />
        <property name="multiplier" value="1.5" />
        <property name="maxIntervalMillis" value="60000" />
        <property name="maxElapsedTimeMillis" value="300000" />
    </property>
    <property name="registrationIdHandler"
            class="org.iplass.mtp.impl.pushnotification.fcm.LoggingRegistrationIdHandler" />
    <property name="httpClientConfig"
            class="org.iplass.mtp.impl.http.HttpClientConfig">
        <property name="proxyHost" value="xxxxxx.isid.co.jp" />
        <property name="proxyPort" value="8080" />
    </property>
    <property name="listener"
            class="org.iplass.mtp.sample.SampleCustomListener1" />
    <property name="listener"
            class="org.iplass.mtp.sample.SampleCustomListener2">
        <property name="customConfigVal" value="test" />
    </property>
</service>

3.27. QueryService

EQLの外部ヒント句を管理するサービスです。

インタフェース名

org.iplass.mtp.impl.query.QueryService

実装クラス名

org.iplass.mtp.impl.query.QueryService

QueryServiceの設定

QueryServiceを設定します。

設定項目
項目 説明

externalHintFile

String

ヒント句の外だし機能を利用する場合、ヒント句を設定するプロパティファイルのパス(もしくはclasspath上のリソースパス)。

externalHints

HintComment、複数指定可

nameに外部ヒント名、valueにヒント句。

externalHintFileにプロパティファイルのパスを設定した場合、キー名と対応するヒント句を指定します。

hint1=native(q0t0, 'FORCE INDEX(obj_store__USER_ISTR_index_3)')
hint2=native(q0t0, 'FORCE INDEX(obj_store__USER_ISTR_index_1)')
:
:

EQLにて外部ヒントを利用するには、EQL文で@hint(keyName)を指定することで、プロパティファイルやexternalHintsで指定したヒント句を読み込めます。

EQL例

以下のようにEQL文の中に@hintを指定します。

select /*+ @hint(hint1) */ propA, propB, refX.name from HogeEntity where refX.propFuga='piyo'

内部では@hintの内容が展開され、以下のようになります。

select /*+ native(q0t0, 'FORCE INDEX(obj_store__USER_ISTR_index_3)') */ propA, propB, refX.name from HogeEntity where refX.propFuga='piyo'

また、org.iplass.mtp.entity.query.hint.Hint#externalHint(String key)メソッドを呼び出すことで、Hint句をJavaインスタンスとして取得できます。

設定例
<service>
    <interface>org.iplass.mtp.impl.query.QueryService</interface>
        <!--
            if use external hint, set propertyFile path(file path or classpath's resource path) or add inline.
         -->
         <!--
        <property name="externalHintFile" value="/externalHint.properties" />

        <property name="externalHints">
            <property name="hint1" value="native(...)" />
            <property name="hint2" value="index(...)" />
        </property>
          -->
</service>

3.28. RdbAdapterService

各種RDBとのインターフェースとなるRdbAdapterを管理するサービスです。

インタフェース名

org.iplass.mtp.impl.rdb.adapter.RdbAdapterService

実装クラス名

org.iplass.mtp.impl.rdb.adapter.RdbAdapterService

RdbAdapterServiceの設定

RdbAdapterを設定します。

設定項目
項目 説明

adapter

RdbAdapter

標準のRdbAdapterの設定。

"adapter"以外の任意の文字列

RdbAdapter、複数指定可

RdbAdapterの設定。

RdbAdapter

classはorg.iplass.mtp.impl.rdb.adapter.RdbAdapterの実装クラスを指定します。

標準で

  • Oracleを利用するorg.iplass.mtp.impl.rdb.oracle.OracleRdbAdapter

  • MySQLを利用するorg.iplass.mtp.impl.rdb.mysql.MysqlRdbAdapter

  • PostgreSQLを利用するorg.iplass.mtp.impl.rdb.postgresql.PostgreSQLRdbAdapter

  • SQL Serverを利用するorg.iplass.mtp.impl.rdb.sqlserver.SqlServerRdbAdapter

を提供します。各々のRdbAdapterの設定可能な項目は以下になります。

OracleRdbAdapter

Oracleを利用するRdbAdapterです。 以下の項目を設定可能です。

項目 説明

lockTimeout

int

行レベルロックが解放されるまでのタイムアウト(秒)。0が設定された場合はロックの解放を待ちません(FOR UPDATE NOWAIT)。マイナスの値が設定された場合はロックが解放されるまで待機します。デフォルト値は0です。

timestampFunction

String

タイムスタンプを取得するFunction。デフォルト値は CURRENT_TIMESTAMP(3) です。

addMonthsFunction

String

月を加算するFunction。デフォルト値は ADD_MONTHS です。

monthsBetweenFunction

String

2つの日付の差を取得するFunction。デフォルト値は MONTHS_BETWEEN です。

isUseSubQueryForIndexJoin

boolean

相関副問い合わせを使ってIndexテーブルを利用した結合を行うか。デフォルト値はtrueです。

optimizerHint

String

オプティマイザ・ヒント。デフォルト値は FIRST_ROWS(100) です。

enableInPartitioning

boolean

IN演算子の1000件制限を緩和する変換処理を行うか。デフォルト値はfalseです。 緩和する変換処理とは、IN(1,2,…​)を1000件単位で(IN(1,2,…​) OR IN(1001, 1002,…​))とORで分割することです。

escapeFullwidthWildcard

boolean

全角文字 _ をエスケープ処理するか。デフォルト値はfalseです。 利用するバージョンが11gR2patch2以前の場合はワイルドカードとして扱われるためtrueを設定してください。

enableBindHint

boolean

bindヒント句を有効にするか。デフォルト値はtrueです。

alwaysBind

boolean

EQLをSQLに変換する際に常にバインド変数化するか。デフォルト値はtrueです。

thresholdCountOfUsePrepareStatement

int

複数の更新(追加)を一括で処理する際の、PrepareStatementを利用するかを判断するための閾値。デフォルト値は50です。

batchSize

int

バッチ更新を利用する際の推奨バッチサイズ。デフォルト値は100です。

maxFetchSize

int

フェッチする際の最大サイズ。デフォルト値は100です。

defaultQueryTimeout

int

クエリ実行時のタイムアウト(秒)。0が指定された場合はタイムアウトしません。デフォルト値は0です。

useFetchFirstClause

boolean

Oracle 12cから利用可能なFETCH FIRST句を使うか。デフォルト値はfalseです。

MysqlRdbAdapter

MySQLを利用するRdbAdapterです。 以下の項目を設定可能です。

項目 説明

useFractionalSecondsOnTimestamp

boolean

タイムスタンプにミリ秒含めるか。デフォルト値はtrueです。

supportOptimizerHint

boolean

オプティマイズヒントをサポートするか。デフォルト値はfalseです。

localTemporaryTableManageOutsideTransaction

boolean

ローカル一時テーブルをトランザクションの外で管理するかを指定します。デフォルト値はfalseです。

localTemporaryTableCreatedByDataSource

boolean

ローカル一時テーブルがデータソースで作成されるかを指定します。デフォルト値はfalseです。

timestampMethod

String

タイムスタンプ取得関数。デフォルト値は NOW(3) です。

seqAnotherTransaction

boolean

oidの採番を別トランザクションで行うか。デフォルト値はtrueです。

enableBindHint

boolean

bindヒント句を有効にするか。デフォルト値はfalseです。

batchSize

int

バッチ更新を利用する際の推奨バッチサイズ。デフォルト値は100です。

thresholdCountOfUsePrepareStatement

int

複数の更新(追加)を一括で処理する際の、PrepareStatementを利用するかを判断するための閾値。デフォルト値は-1です。

maxFetchSize

int

フェッチする際の最大サイズ。デフォルト値は100です。

defaultQueryTimeout

int

クエリ実行時のタイムアウト(秒)。0が指定された場合はタイムアウトしません。デフォルト値は0です。

PostgreSQLRdbAdapter

PostgresSQLを利用するRdbAdapterです。 以下の項目を設定可能です。

項目 説明

supportOptimizerHint

boolean

オプティマイズヒントをサポートするか。デフォルト値はfalseです。

timestampFunction

String

タイムスタンプを取得するFunction。デフォルト値は CURRENT_TIMESTAMP(3) です。

escapeBackslash

boolean

バックスラッシュをエスケープするか。デフォルト値はfalseです。

enableBindHint

boolean

bindヒント句を有効にするか。デフォルト値はfalseです。

maxFetchSize

int

フェッチする際の最大サイズ。デフォルト値は100です。

defaultQueryTimeout

int

クエリ実行時のタイムアウト(秒)。0が指定された場合はタイムアウトしません。デフォルト値は0です。

lockTimeout

int

ロック時のタイムアウト(秒)。0が指定された場合はタイムアウトしません。デフォルト値は0です。

SQLServerRdbAdapter

SQL Serverを利用するRdbAdapterです。 以下の項目を設定可能です。

項目 説明

timestampFunction

String

タイムスタンプを取得するFunction。デフォルト値は GETDATE() です。

addMonthsFunction

String

月を加算するFunction。デフォルト値は DATEADD です。

monthsBetweenFunction

String

2つの日付の差を取得するFunction。デフォルト値は DATEDIFF です。

isUseSubQueryForIndexJoin

boolean

相関副問い合わせを使ってIndexテーブルを利用した結合を行うか。デフォルト値はtrueです。

enableBindHint

boolean

bindヒント句を有効にするか。デフォルト値はfalseです。

alwaysBind

boolean

EQLをSQLに変換する際に常にバインド変数化するか。デフォルトはfalseです。 SQL Serverではプロシージャが持つことのできるパラメーター数の最大が2,100個のためtrueに設定する場合はこの最大数を超えないようにしてください。

batchSize

int

バッチ更新を利用する際の推奨バッチサイズ。デフォルト値は100です。

thresholdCountOfUsePrepareStatement

int

複数の更新(追加)を一括で処理する際の、PrepareStatementを利用するかを判断するための閾値。デフォルト値は50です。

maxFetchSize

int

フェッチする際の最大サイズ。デフォルト値は100です。

defaultQueryTimeout

int

クエリ実行時のタイムアウト(秒)。0が指定された場合はタイムアウトしません。デフォルト値は0です。

lockTimeout

int

行レベルロックが解放されるまでのタイムアウト(秒)。0が設定された場合はロックの解放を待ちません(NOWAIT)。 マイナスの値が設定された場合はロックが解放されるまで待機します。デフォルト値は0です。

optimizerHint

String

オプティマイザ・ヒント。デフォルト値は FAST 100 です。

設定例
<service>
    <interface>org.iplass.mtp.impl.rdb.adapter.RdbAdapterService</interface>

    <!--
        for oracle
        ::configable property::
            lockTimeout :
                (seconds), 0=for update no wait, -1=for update
            enableInPartitioning :
                enables IN clause's limitation avoidance (do partition IN clause by 1000 items unit).
            escapeFullwidthWildcard :
                when use oracle11gR2patch2(11.2.0.2.0) or before, set true this property
            optimizerHint :
                default hint clause of SQL generated by EQL.
            useFetchFirstClause :
                use FETCH FIRST clause rather than use ROWNUM (on oracle 12c).
    -->
    <property name="adapter" class="org.iplass.mtp.impl.rdb.oracle.OracleRdbAdapter" inherit="false">
        <property name="lockTimeout" value="0" />
        <property name="enableInPartitioning" value="false" />
        <property name="escapeFullwidthWildcard" value="false" />
        <property name="optimizerHint" value="FIRST_ROWS(100)" />
        <property name="alwaysBind" value="true" />
        <property name="thresholdCountOfUsePrepareStatement" value="50" />
        <property name="batchSize" value="100" />
        <property name="defaultQueryTimeout" value="0" />
        <property name="useFetchFirstClause" value="false" />
    </property>

    <!--
        for mysql
        ::configable property::
            timestampMethod :
                 タイムスタンプ取得関数。(Aws RDSインスタンスの場合 日付がUTC固定のため変換処理を組み込む)
                 設定例
                <property name="timestampMethod" value="CONVERT_TZ(NOW(),'+00:00','+09:00')" />
            seqAnotherTransaction :
                oidの採番を別トランザクションで行うか
                設定例
                <property name="seqAnotherTransaction" value="true" />
            supportOptimizerHint :
                mysql5.7から利用可能なOptimizer Hintsを利用する場合trueを設定
    -->
    <property name="adapter" class="org.iplass.mtp.impl.rdb.mysql.MysqlRdbAdaptor" inherit="false">
        <property name="timestampMethod" value="NOW(3)" />
        <property name="seqAnotherTransaction" value="true" />
        <property name="defaultQueryTimeout" value="0" />
        <property name="supportOptimizerHint" value="false" />
    </property>

    <!-- for postgresql -->
    <property name="postgresql"
        class="org.iplass.mtp.impl.rdb.postgresql.PostgreSQLRdbAdapter" inherit="false" />

    <!--
        for sqlserver
        ::configable property::
            lockTimeout :
                (seconds), 0=for update no wait, -1=for update
            optimizerHint :
                default hint clause of SQL generated by EQL.
    -->
    <property name="adapter" class="org.iplass.mtp.impl.rdb.sqlserver.SqlServerRdbAdapter" inherit="false">
        <property name="alwaysBind" value="false" />
        <property name="defaultQueryTimeout" value="0" />
        <property name="lockTimeout" value="0" />
        <property name="optimizerHint" value="FAST 100" />
    </property>
</service>

3.29. RdbQueueService

RDBを利用したキューのサービスです。

インタフェース名

org.iplass.mtp.impl.async.rdb.RdbQueueService

実装クラス名

org.iplass.mtp.impl.async.rdb.RdbQueueService

RdbQueueServiceの設定

RdbQueueServiceを設定します。

設定項目
項目 説明

useQueue

boolean

キューを使用するか。デフォルトはfalseです。

queue

QueueConfig

非同期処理を実行するためのキュー。 標準で以下のキューが定義されています。

default

非同期タスク側でキューを指定しない場合に利用されるキュー

csvupload

汎用画面のCSVアップロードで利用するキュー

cleanupHistoryOnInit

boolean

サービス初期化時に履歴を削除するか。デフォルトはfalseです。

historyHoldDay

int

履歴を削除する際に何日分の履歴を残すか。デフォルトは1です。

QueueConfig

classはorg.iplass.mtp.impl.async.rdb.QueueConfigを指定します。

項目 説明

id

int

一意なID。 0、1は既に定義されているのでそれ以外を設定してください。

name

String

キューの名前。 非同期タスクがキューを選択する際に表示されます。

resultRemainingTime

long

タスクを履歴に移動する時間(ミリ秒)。現在から設定した時間より以前のタスクが移動の対象になります。デフォルト値は86400000(1日)です。

strictSequence

boolean

タスクにGroupingKeyが設定され、strictSequenceがtrueの場合、タスクIDはグループ毎にシーケンシャルに設定されます。

selectWorkerOnSubmit

boolean

GroupingKeyが未設定のタスクにワーカーを割り振るか。デフォルト値はfalseです。

worker

WorkerConfig

キューを処理するワーカー。

WorkerConfig

classはorg.iplass.mtp.impl.async.rdb.WorkerConfigを指定します。

項目 説明

pollingInterval

long

キューをポーリングする間隔(ミリ秒)。デフォルト値は30000です。

actualWorkerSize

int

キューを並列で処理するワーカーの数。デフォルト値は1です。

virtualWorkerSize

int

キューに割り当てるワーカーの数。デフォルト値は16です。

executionTimeout

long

処理のタイムアウト時間(ミリ秒)。デフォルト値は180000です。

restartDelay

long

タスクのリトライ間隔(ミリ秒)。デフォルト値は30000です。

maxRetryCount

int

タスクのリトライ回数。デフォルトは100です。

wakeupOnSubmit

boolean

タスクがサブミットされた後、即座に次のタスクを起動するか。デフォルト値はtrueです。 現状 local をtrueにした場合のみ有効です。

trace

boolean

ログを出力するか。デフォルト値はtrueです。

local

boolean

タスクをローカルで処理するか、リモートで処理するか。デフォルト値はtrueです。

newProcessPerTask

boolean

新しいプロセスで実行するか。デフォルト値はfalseです。

javaCommand

String

タスクで実行するJavaコマンド。

vmArgs

String、複数指定可

javaCommand に渡すVM引数。

redirectFile

String

プロセスの標準出力先、標準エラー出力先となるファイル。

設定例
<service>
    <interface>org.iplass.mtp.impl.async.rdb.RdbQueueService</interface>
    <!-- if use async rdb service set to true -->
    <property name="useQueue" value="true" />

    <property name="queue" class="org.iplass.mtp.impl.async.rdb.QueueConfig" additional="true">
        <property name="id" value="2" />
        <property name="name" value="customQueue" />
        <property name="worker" class="org.iplass.mtp.impl.async.rdb.WorkerConfig">
            <property name="pollingInterval" value="60000" />
            <property name="actualWorkerSize" value="1" />
        </property>
    </property>
</service>

3.30. ScheduleService

スケジュールタスクの定義(メタデータ)を管理するサービスです。

インタフェース名

org.iplass.mtp.impl.scheduling.ScheduleService

実装クラス名

org.iplass.mtp.impl.scheduling.ScheduleService

ScheduleServiceの設定

ScheduleServiceを設定します。

設定項目
項目 説明

systemUserId

String

スケジュールタスクを実行するシステムユーザのID。 デフォルト値は scheduler です。

設定例
<service>
    <interface>org.iplass.mtp.impl.scheduling.ScheduleService</interface>
    <class>org.iplass.mtp.impl.scheduling.ScheduleService</class>
    <property name="systemUserId" value="id000001" />
</service>

3.31. ScriptService

動的スクリプトの実行を管理するサービスです。

インタフェース名

org.iplass.mtp.impl.script.ScriptService

実装クラス名

org.iplass.mtp.impl.script.GroovyScriptService

ScriptServiceの設定

ScriptServiceを設定します。

設定項目
項目 説明

debug

boolean

スクリプトのデバッグログの出力可否。

initScript

String、複数指定可

初期化用のGroovyScript。

staticImport

String、複数指定可

GroovyScriptにstaticインポートするメソッド。

設定例
<service>
    <interface>org.iplass.mtp.impl.script.ScriptService</interface>
    <class>org.iplass.mtp.impl.script.GroovyScriptService</class>
    <property name="initScript" value="/org/iplass/mtp/impl/script/InitScript.gr" />
    <property name="initScript" value="/org/iplass/mtp/impl/script/EnterpriseInitScript.gr" />
</service>

3.32. SecureRandomService

ランダム文字列を生成するための設定を管理するサービスです。

インタフェース名

org.iplass.mtp.impl.util.random.SecureRandomService

実装クラス名

org.iplass.mtp.impl.util.random.SecureRandomService

SecureRandomServiceの設定

SecureRandomServiceを設定します。

設定項目
項目 説明

default

SecureRandomGeneratorConfig

標準のSecureRandomGeneratorConfigの設定。

authTokenGenerator

SecureRandomGeneratorConfig

認証トークン生成時に使用するSecureRandomGeneratorConfigの設定。

SecureRandomGeneratorConfig

ランダム文字列を生成するための設定です。

項目 説明

numBitsOfSecureRandomToken

int

ランダム文字列のbit。デフォルトは128(bit)です。

radixOfSecureRandomToken

int

ランダム文字列化する際の基数。デフォルトは16です。 maxはCharacter.MAX_RADIXです。

useStrongSecureRandom

boolean

ランダム生成時のSecureRandomをSecureRandom.getInstanceStrong()するか否か。 デフォルトはfalseです。algorithm指定ある場合は、そちらを優先します。

algorithm

String

SecureRandom生成時のalgorithm。デフォルトは未指定です。

provider

String

SecureRandom生成時のprovider。デフォルトは未指定です。

設定例
<service>
    <interface>org.iplass.mtp.impl.util.random.SecureRandomService</interface>
    <class>org.iplass.mtp.impl.util.random.SecureRandomService</class>
    <property name="default">
        <property name="numBitsOfSecureRandomToken" value="128" />
        <property name="radixOfSecureRandomToken" value="16" />
        <property name="useStrongSecureRandom" value="false" />
    </property>
    <property name="authTokenGenerator">
        <property name="numBitsOfSecureRandomToken" value="192" />
        <property name="radixOfSecureRandomToken" value="32" />
        <property name="useStrongSecureRandom" value="false" />
    </property>
</service>

3.33. SmsService

SMSテンプレートの定義(メタデータ)の管理と、SMS送信を行うためのサービスです。 SMS送信の実装として、Twilioを利用したSMS送信のモジュールを標準提供します。

インタフェース名

org.iplass.mtp.impl.sms.SmsService

実装クラス名

Twilioを利用したSMS送信
org.iplass.mtp.impl.sms.twilio.TwilioSmsService

TwilioSmsServiceの設定

TwilioによるSMS送信を利用する場合、TwilioSmsServiceを設定します。

設定項目
項目 説明

accountSid

String、必須

ACCOUNT SID。

authToken

String、必須

AUTH TOKEN。

defaultFrom

String

デフォルトの送信元アドレス。

httpClientConfig

HttpClientConfig

HTTPクライアントに関する設定。

listener

SendSmsMailListener、複数指定可

SMS送信時のListener。

SendSmsMailListener

classはorg.iplass.mtp.sms.SendSmsMailListenerの実装クラスを指定します。

SendSmsMailListenerの実装クラスの標準提供はありません。

設定例
<service>
    <interface>org.iplass.mtp.impl.sms.SmsService</interface>
    <class>org.iplass.mtp.impl.sms.twilio.TwilioSmsService</class>
    <property name="accountSid" value="yourOwnAccountSid"/>
    <property name="authToken" value="yourOwnAuthToken"/>
    <property name="defaultFrom" value="+1234......."/>

    <!-- Development
    <property name="httpClientConfig" class="org.iplass.mtp.impl.http.HttpClientConfig">
        <property name="connectionTimeout" value="30000" />
        <property name="soTimeout" value="30000" />
        <property name="proxyHost" value="proxyhost.isid.co.jp" />
        <property name="proxyPort" value="8080" />
    </property>
    -->
</service>

3.34. StoreService

Entityデータの永続化を行うサービスです。

インタフェース名

org.iplass.mtp.impl.datastore.StoreService

実装クラス名

org.iplass.mtp.impl.datastore.StoreService

StoreServiceの設定

StoreServiceを設定します。

設定項目
項目 説明

dataStore

DataStore

DataStoreの設定。

DataStore

classはorg.iplass.mtp.impl.datastore.DataStoreの実装クラスを指定します。

標準で、以下のDataStoreをを提供します。

GRdbDataStore

classはorg.iplass.mtp.impl.datastore.grdb.GRdbDataStoreを指定します。 コミュニティエディション用のDataStoreです。

以下の項目を設定可能です。

項目 説明

enableWindowFunctionEmulation

boolean

Window関数のエミュレートを有効にするか。デフォルト値はfalseです。

storageSpace

StorageSpaceMap、複数指定可

StorageSpaceの設定。

EnterpriseGRdbDataStore

classはorg.iplass.mtp.impl.datastore.grdb.EnterpriseGRdbDataStoreを指定します。 エンタープライズエディション用のDataStoreです。

設定項目はGRdbDataStoreを参照してください。

StorageSpaceMap

以下の項目を設定可能です。

項目 説明

storageSpaceName

String

Entity定義で選択する際に表示されるStorageSpace名。

tableNamePostfix

String

StorageSpace用のテーブルに付加する接尾語。 英数字のみ利用してください。 標準で、 MTPUSER が定義されているので、それ以外の名前を設定してください。

tableCount

int

物理的に格納テーブルを分割し、擬似パーティショニングする場合に0より大きい値を設定。デフォルト値は0です。

varcharColumns

int

文字列型のプロパティを格納するための列数。

decimalColumns

int

Decimal型のプロパティを格納するための列数。

timestampColumns

int

Timestamp型のプロパティを格納するための列数。

doubleColumns

int

浮動小数点型のプロパティを格納するための列数。

indexedVarcharColumns

int

Index指定された文字列型のプロパティを格納するための列数。

indexedDecimalColumns

int

Index指定されたDecimal型のプロパティを格納するための列数。

indexedTimestampColumns

int

Index指定されたTimestamp型のプロパティを格納するための列数。

indexedDoubleColumns

int

Index指定された浮動小数点型のプロパティを格納するための列数。

uniqueIndexedVarcharColumns

int

Unique Index指定された文字列型のプロパティを格納するための列数。

uniqueIndexedDecimalColumns

int

Unique Index指定されたDecimal型のプロパティを格納するための列数。

uniqueIndexedTimestampColumns

int

Unique Index指定されたTimestamp型のプロパティを格納するための列数。

uniqueIndexedDoubleColumns

int

Unique Index指定された浮動小数点型のプロパティを格納するための列数。

customPartition

boolean

Partitionを利用する場合に、標準のPartitionと異なるPartitionを利用するか。デフォルト値はfalse(利用しない)です。

設定例
<service>
    <interface>org.iplass.mtp.impl.datastore.StoreService</interface>

    <property name="dataStore" class="org.iplass.mtp.impl.datastore.grdb.GRdbDataStore">
        <property name="storageSpace" additional="true">
            <property name="storageSpaceName" value="XXXXX" />
            <property name="tableNamePostfix" value="XXXXX" />
            <property name="varcharColumns" value="128" />
            <property name="decimalColumns" value="32" />
            <property name="timestampColumns" value="32" />
            <property name="doubleColumns" value="32" />
            <property name="indexedVarcharColumns" value="8" />
            <property name="indexedDecimalColumns" value="4" />
            <property name="indexedTimestampColumns" value="4" />
            <property name="indexedDoubleColumns" value="4" />
            <property name="uniqueIndexedVarcharColumns" value="2" />
            <property name="uniqueIndexedDecimalColumns" value="2" />
            <property name="uniqueIndexedTimestampColumns" value="2" />
            <property name="uniqueIndexedDoubleColumns" value="2" />
            <property name="customPartition" value="false" />
        </property>
    </property>
</service>

3.35. SyntaxService

構文解析のためのサービスです。

インタフェース名

org.iplass.mtp.impl.parser.SyntaxService

実装クラス名

org.iplass.mtp.impl.parser.SyntaxService

SyntaxServiceの設定

SyntaxServiceを設定します。

設定項目
項目 説明

syntaxRegister

SyntaxRegister、複数指定可

SyntaxRegisterの実装クラス名。

SyntaxRegister

classはorg.iplass.mtp.impl.parser.SyntaxRegisterの実装クラスを指定します。

標準でorg.iplass.mtp.impl.query.QuerySyntaxRegisterを提供しています。 設定可能な項目はありません。

設定例
<service final="true">
    <interface>org.iplass.mtp.impl.parser.SyntaxService</interface>
    <class>org.iplass.mtp.impl.parser.SyntaxService</class>
    <property name="syntaxRegister" value="org.iplass.mtp.impl.query.QuerySyntaxRegister" />
 </service>

3.36. TaskIdCounter

RdbQueueServiceを利用する場合にタスクIDの採番を行うサービスです。 タスクのグループ化の設定により、利用する設定が変わります。 グループ化の指定が無い場合は TaskIdCounter の設定を、指定がある場合は TaskIdCounterGrouping の設定を利用します。

インタフェース名

org.iplass.mtp.impl.counter.CounterService

実装クラス名

キャッシュなし
org.iplass.mtp.impl.counter.RdbTableCounterService
キャッシュあり
org.iplass.mtp.impl.counter.CachableRdbTableCounterService

RdbTableCounterServiceの設定

RdbTableCounterServiceを設定します。

設定項目
項目 説明

separateTransaction

boolean

採番時にトランザクションを分けるか。デフォルト値はfalseです。

retryCount

int

採番失敗時にリトライする回数。デフォルト値は3です。

counterTypeName

String

採番タイプの名前。デフォルト値は defaultCounter です

CachableRdbTableCounterServiceの設定

CachableRdbTableCounterServiceを設定します。

設定項目
項目 説明

separateTransaction

boolean

採番時にトランザクションを分けるか。デフォルト値はfalseです。

retryCount

int

採番失敗時にリトライする回数。デフォルト値は3です。

counterTypeName

String

採番タイプの名前。デフォルト値は defaultCounter です

cacheSize

int

キャッシュサイズ。デフォルト値は20です。

設定例
<service name="TaskIdCounter">
    <interface>org.iplass.mtp.impl.counter.CounterService</interface>
    <class>org.iplass.mtp.impl.counter.CachableRdbTableCounterService</class>
    <property name="counterTypeName" value="TaskIdCounter" />
    <property name="cacheSize" value="20" />
    <property name="retryCount" value="3" />
</service>
<service name="TaskIdCounterGrouping">
    <interface>org.iplass.mtp.impl.counter.CounterService</interface>
    <class>org.iplass.mtp.impl.counter.RdbTableCounterService</class>
    <property name="counterTypeName" value="TaskIdCounter" />
    <property name="separateTransaction" value="true" />
    <property name="retryCount" value="3" />
</service>

3.37. TenantContextService

テナント全体の振る舞いを設定するサービスです。

インタフェース名

org.iplass.mtp.impl.core.TenantContextService

実装クラス名

org.iplass.mtp.impl.core.TenantContextService

TenantContextServiceの設定

テナント全体の振る舞いを設定します。

設定項目
項目 説明

defaultTenantName

String

デフォルトのテナント名。

defaultPasswordPatternErrorMessage

String

デフォルトのパスワード形式エラーメッセージ。

defaultMailFrom

String

デフォルトのメール送信Fromアドレス。テナント設定でFromアドレスが指定されていない場合に利用されます。

defaultMailFromName

String

デフォルトのメール送信Fromアドレス個人名。

sharedTenantId

int

共有テナントのID。RDBの場合、このテナントが共有テナントとして利用されます。-1は共有テナントなしとみなし動作します。デフォルト値は-1です。

localTenantIds

int、複数指定可

共有テナントを有効にした際の、共有テナントの配下の個別テナント。設定されていない場合は、DBに登録されているすべてのテナント(共有テナント除く)を個別テナントとみなし動作します。

設定例
<service>
    <interface>org.iplass.mtp.impl.core.TenantContextService</interface>
    <property name="defaultTenantName" value="iPLAss" />
    <property name="defaultMailFrom" value="notenant@nomail.iplass.org" />

    <!-- ■ if use shared tenant, set shared tenant id.(value:-1 for no use of shared tenant) -->
    <!--
    <property name ="sharedTenantId" value="-1" />
    -->
    <!--
        共有テナントを有効にした際、その共有テナントの配下の個別テナントを定義可能。
        定義されていない場合は、DBに登録されているすべてのテナント(共有テナント除く)を個別テナントとみなし動作します。
    -->
    <!--
    <property name ="localTenantIds" value="148" />
    <property name ="localTenantIds" value="149" />
    -->
</service>

3.38. ValidationService

入力チェックを行うためのサービスです。

インタフェース名

org.iplass.mtp.impl.validation.ValidationService

実装クラス名

org.iplass.mtp.impl.validation.ValidationService

ValidationService

ValidationServiceを設定します。

設定項目
項目 説明

beanValidation

BeanValidationConfig

Bean Validationの設定。

BeanValidationConfig

Bean Validationの設定を行います。

classはorg.iplass.mtp.impl.validation.bean.BeanValidationConfigを指定します。 以下の項目を指定可能です。

項目 説明

providerClass

String

javax.validation.spi.ValidationProviderの実装クラス名。

messageInterpolator

MessageInterpolator

MessageInterpolatorの設定。

properties

Properties、複数指定可

プロバイダ固有のプロパティ。

MessageInterpolator

classにjavax.validation.MessageInterpolatorの実装クラスを指定します。

標準でorg.iplass.mtp.impl.validation.bean.TenantContextMessageInterpolatorを提供しています。 以下の項目を指定可能です。

項目 説明

messageInterpolatorFactory

MessageInterpolatorFactory

MessageInterpolatorFactoryの実装クラス名。

MessageInterpolatorFactory

classにorg.iplass.mtp.impl.validation.bean.MessageInterpolatorFactoryの実装クラスを指定します。

標準でorg.iplass.mtp.impl.validation.bean.hibernate.HibernateMessageInterpolatorFactoryを提供しています。 以下の項目を指定可能です。

項目 説明

resourceBundleLocator

ResourceBundleLocator

ResourceBundleLocatorの実装クラス名。

cachingEnabled

boolean

キャッシュが有効か。

ResourceBundleLocator

classにorg.hibernate.validator.spi.resourceloading.ResourceBundleLocatorの実装クラスを指定します。

標準でorg.iplass.mtp.impl.validation.bean.hibernate.MessageResourceBundleLocatorを提供しています。 設定可能な項目はありません。

設定例
<service>
    <interface>org.iplass.mtp.impl.validation.ValidationService</interface>
    <class>org.iplass.mtp.impl.validation.ValidationService</class>
    <property name="beanValidation">
        <property name="providerClass" value="org.hibernate.validator.HibernateValidator" />
        <property name="messageInterpolator" class="org.iplass.mtp.impl.validation.bean.TenantContextMessageInterpolator">
            <property name="messageInterpolatorFactory" class="org.iplass.mtp.impl.validation.bean.hibernate.HibernateMessageInterpolatorFactory">
                <property name="resourceBundleLocator" class="org.iplass.mtp.impl.validation.bean.hibernate.MessageResourceBundleLocator" />
                <property name="cachingEnabled" null="true" />
            </property>
        </property>
    </property>
</service>

3.39. WorkflowService

ワークフローの動作を管理するサービスです。

インタフェース名

org.iplass.mtp.impl.workflow.WorkflowService

実装クラス名

org.iplass.mtp.impl.workflow.WorkflowService

WorkflowServiceの設定

WorkflowServiceを設定します。

設定項目
項目 説明

workflowInstanceStore

WorkflowInstanceStore

ワークフローインスタンスの管理方法。

historyLogStore

HistoryLogStore

ワークフロー履歴の管理方法。

queueForWorkflow

String

ワークフロー用のキュー名。

WorkflowInstanceStore

classにorg.iplass.mtp.impl.workflow.WorkflowInstanceStoreの実装クラスを指定します。

標準でorg.iplass.mtp.impl.workflow.store.EntityWorkflowInstanceStoreを提供します。 ワークフローインスタンスをEntityとして管理します。 設定可能な項目はありません。

HistoryLogStore

classにorg.iplass.mtp.impl.workflow.HistoryLogStoreの実装クラスを指定します。

標準で以下のHistoryLogStoreを提供します。

LoggerHistoryLogStore

ワークフロー履歴をログとして管理します。

classはorg.iplass.mtp.impl.workflow.store.LoggerHistoryLogStoreを指定します。 設定可能な項目はありません。

EntityHistoryLogStore

ワークフロー履歴をEntityとして管理します。

classはorg.iplass.mtp.impl.workflow.store.EntityHistoryLogStoreを指定します。 設定可能な項目はありません。

設定例
<service final="true">
    <interface>org.iplass.mtp.impl.workflow.WorkflowService</interface>
    <class>org.iplass.mtp.impl.workflow.WorkflowService</class>
    <property name="workflowInstanceStore" class="org.iplass.mtp.impl.workflow.store.EntityWorkflowInstanceStore" />
    <property name="historyLogStore" class="org.iplass.mtp.impl.workflow.store.EntityHistoryLogStore" />
</service>

3.40. ActionMappingService

アクションの定義(メタデータ)と、アクションがリクエストされた時に呼び出されるインターセプターを管理するサービスです。

インタフェース名

org.iplass.mtp.impl.web.actionmapping.ActionMappingService

実装クラス名

org.iplass.mtp.impl.web.actionmapping.ActionMappingService

ActionMappingServiceの設定

ブラウザからのリクエスト時に呼び出されるインターセプターを設定します。

設定項目
項目 説明

interceptor

RequestInterceptor、複数指定可

リクエスト用のインターセプター。

RequestInterceptor

classはorg.iplass.mtp.web.interceptor.RequestInterceptorの実装クラスを指定します。

標準で、以下のRequestInterceptorを提供します。

InitialInterceptor

classはorg.iplass.mtp.impl.web.interceptors.InitialInterceptorを指定します。

リクエストの初期処理として言語とプレビュー時刻を設定するインターセプターです。設定変更可能な項目はありません。

ActionCacheInterceptor

classはorg.iplass.mtp.impl.web.interceptors.ActionCacheInterceptorを指定します。

キャッシュを行うインターセプターです。設定変更可能な項目はありません。

AuthInterceptor

classはorg.iplass.mtp.impl.web.interceptors.AuthInterceptorを指定します。

認証を行うインターセプターです。設定変更可能な項目はありません。

ExceptionInterceptor

classはorg.iplass.mtp.impl.web.interceptors.ExceptionInterceptorを指定します。

例外のハンドリングを行うインターセプターです。以下の項目を設定可能です。

項目 説明

noHande

String、複数指定可

ハンドリングを行わない例外クラス。 複数指定する場合はプロパティを複数設定するか例外クラスを半角コロン(:)で区切って設定します。

eliminate

String、複数指定可

ハンドリングから除外する例外クラス。 複数指定する場合はプロパティを複数設定するか例外クラスを半角コロン(:)で区切って設定します。

LoggingInterceptor

classはorg.iplass.mtp.impl.web.interceptors.LoggingInterceptorを指定します。

ログの出力を行うインターセプターです。以下の項目を設定可能です。

項目 説明

actionTrace

boolean

アクションのログを出力するか。デフォルト値はtrueです。

partsTrace

boolean

画面の1部品として実行されたアクションのログを出力するか。デフォルト値はtrueです。

paramName

String、複数指定可

ログ出力するパラメータ名。

noStackTrace

String、複数指定可

スタックトレースを出力しない例外クラス。 複数指定する場合はプロパティを複数設定するか例外クラスを半角コロン(:)で区切って設定します。

UnavailableInterceptor

classはorg.iplass.mtp.impl.web.interceptors.UnavailableInterceptorを指定します。

メンテナンスチェックを行うインターセプターです。設定変更可能な項目はありません。

設定例
<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.41. CsvUploadService

CSVアップロードを管理するサービスです

インタフェース名

org.iplass.mtp.impl.csv.CsvUploadService

実装クラス名

org.iplass.mtp.impl.csv.CsvUploadService

CsvUploadServiceの設定

CsvUploadServiceを設定します。

設定項目
項目 説明

showErrorLimitCount

int

CSVアップロードエラー表示件数上限値。-1 を指定した場合は無制限となる。

設定例
<service final="true">
    <interface>org.iplass.mtp.impl.csv.CsvUploadService</interface>
    <class>org.iplass.mtp.impl.csv.CsvUploadService</class>
    <!-- CSVアップロードエラー表示件数上限値 (-1は無制限)  -->
    <property name="showErrorLimitCount" value="100"/>
</service>

3.42. EntityWebApiService

EntityWebApiを管理するサービスです。

インタフェース名

org.iplass.mtp.impl.webapi.EntityWebApiService

実装クラス名

org.iplass.mtp.impl.webapi.EntityWebApiService

EntityWebApiServiceの設定

EntityWebApiServiceを設定します。

設定項目
項目 説明

maxLimit

int

EntityWebApiの取得件数の上限。

設定例
<service>
    <interface>org.iplass.mtp.impl.webapi.EntityWebApiService</interface>
    <property name="maxLimit" value="1000" />
</service>

3.43. 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のプロパティ名。デフォルト値は ipAddressHistory です。

設定例
<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.44. ReportingEngineService

帳票出力を管理するサービスです。

インタフェース名

org.iplass.mtp.impl.report.ReportingEngineService

実装クラス名

org.iplass.mtp.impl.report.ReportingEngineServiceImpl

ReportingEngineServiceの設定

ReportingEngineServiceを設定します。

設定項目
項目 説明

repotingEngine

ReportingEngine、複数指定可

帳票出力エンジンの設定。

ReportingEngine

classにorg.iplass.mtp.impl.report.ReportingEngineの実装クラスを指定します。

標準で以下のReportingEngineを提供します。

JasperReportingEngine

Jasper Reportを利用して帳票を作成するためのエンジンです。

classはorg.iplass.mtp.impl.report.JasperReportingEngineを指定します。 以下の項目を設定可能です。

項目 説明

supportFiles

String、複数指定可

サポート対象のファイル形式。

PoiReportingEngine

Apache POIを利用して帳票を作成するためのエンジンです。

classはorg.iplass.mtp.impl.report.PoiReportingEngineを指定します。 以下の項目を設定可能です。

項目 説明

supportFiles

String、複数指定可

サポート対象のファイル形式。

設定例
<service>
    <interface>org.iplass.mtp.impl.report.ReportingEngineService</interface>
    <class>org.iplass.mtp.impl.report.ReportingEngineServiceImpl</class>
    <property name="repotingEngine" class="org.iplass.mtp.impl.report.JasperReportingEngine">
        <property name="supportFiles" value="PDF"/>
        <property name="supportFiles" value="XLS"/>
        <property name="supportFiles" value="XLSX"/>
    </property>
    <property name="repotingEngine" class="org.iplass.mtp.impl.report.PoiReportingEngine">
        <property name="supportFiles" value="XLS_POI"/>
        <property name="supportFiles" value="XLSX_POI"/>
        <property name="supportFiles" value="XLSX_SXSSF_POI"/>
    </property>
</service>

3.45. SamlService

SAML認証を行うためのサービスです。 IdPとして動作させる場合、またSP側からIdPに送信するメッセージに署名を行う場合に証明書ストアの設定が必要です。

インタフェース名

org.iplass.mtp.impl.auth.authenticate.saml.SamlService

実装クラス名

org.iplass.mtp.impl.auth.authenticate.saml.SamlService

SamlServiceの設定

SAML認証を利用する場合、SamlServiceを設定します。

設定項目
項目 説明

validateSchema

boolean

SAMLメッセージをXMLSchema定義に従っているかを検証します。デフォルト値はfalseです。

keyStore

SamlKeyStore

証明書ストアの設定です。

setAddressToSubjectConfirmationData

boolean

AssertionのSubjectConfirmationDataにAddressを含めるかどうか。デフォルト値はtrueです。

SamlKeyStore

IdPとして動作させる場合、SP側(iPLAss側)でSAMLメッセージに署名を行う場合に定義が必要です。 秘密鍵及び証明書(以下エントリと記述)は、KeyStoreに格納します。 エントリは、複数登録可能です。 (複数の暗号化アルゴリズム対応するため、また証明書ロールオーバーのため)

classはorg.iplass.mtp.impl.auth.authenticate.saml.SamlKeyStoreを指定します。 以下の項目を設定可能です。

項目 説明

keyStoreType

String

KeyStoreのタイプ。デフォルト値は JKS です

keyStoreFilePath

String

署名作成の為のエントリが格納されるKeyStoreのファイルパス。

keyStorePassword

String

KeyStoreのパスワード。

keyPassword

String

秘密鍵のkeyPassword。

myCertificate

String、複数指定可

KeyStore内のエントリのうち、署名に利用するものを絞り込みたい場合にエントリのalias。

defaultSignatureAlgorithm

String

。デフォルト値は SHA256withRSA です。

keyStoreReloadIntervalDays

int

keyStoreのファイルの再読み込み間隔(日数)。 未指定の場合は、リロードは行いません。

rollOverStrategy

CertificateRollOverStrategy

証明書の有効期間が迫った場合のロールオーバー方式。 デフォルト値は OLDER です。

rollOverDaysBeforeExpire

long

rollOverStrategyが BEFORE_N_DAYS の場合に、切り替える日数。

CertificateRollOverStrategy

証明書の有効期間が迫った場合のロールオーバー方式を指定します。 複数の(新旧の)証明書がKeyStore内にある場合、どちらを利用するかを判断する方式です。

OLDER

有効期間が切れるまで、有効期間が短い(NotAfterが古い)証明書を利用

NEWER

有効期間内である証明書のうち、より有効期間が長い(NotAfterが新しい)証明書を利用

BEFORE_N_DAYS

有効期間が切れるrollOverDaysBeforeExpire日前に切り替える

設定例
<service>
  <interface>org.iplass.mtp.impl.auth.authenticate.saml.SamlService</interface>
  <property name="keyStore" class="org.iplass.mtp.impl.auth.authenticate.saml.SamlKeyStore">
    <property name="keyStoreFilePath" value="/app/.keystore" />
    <property name="keyStorePassword" value="yourOwnKeyStorePassword" />
    <property name="keyPassword" value="yourOwnKeyPassword" />
    <property name="keyStoreReloadIntervalDays" value="1" />
    <property name="rollOverStrategy" value="BEFORE_N_DAYS" />
    <property name="rollOverDaysBeforeExpire" value="5" />

  </property>
</service>

3.46. TenantAvailableService

テナントの稼動状態を管理するサービスです。

インタフェース名

org.iplass.mtp.impl.tenant.available.TenantAvailableService

実装クラス名

org.iplass.mtp.impl.tenant.available.TenantAvailableService

TenantAvailableServiceの設定

TenantAvailableServiceを設定します。

設定項目
項目 説明

allwaysAvailableAction

String、複数指定可

メンテナンス中でも利用可能なアクション

設定例
<service>
    <interface>org.iplass.mtp.impl.tenant.available.TenantAvailableService</interface>
    <class>org.iplass.mtp.impl.tenant.available.TenantAvailableService</class>
    <property name="allwaysAvailableAction" value="gem/auth/login" />
    <property name="allwaysAvailableAction" value="gem/auth/dologin" />
    <property name="allwaysAvailableAction" value="gem/auth/logout" />
    <property name="allwaysAvailableAction" value="gem/auth/expiredpassword/update" />
</service>

3.47. WebApiJAXBService

WebApiのJAXBでの変換対象のクラス定義を行うサービスです。

インタフェース名

org.iplass.mtp.impl.webapi.jaxb.WebApiJaxbService

実装クラス名

org.iplass.mtp.impl.webapi.jaxb.WebApiJaxbService

WebApiJaxbServiceの設定

WebApiJaxbServiceを設定します。

設定項目
項目 説明

classToBeBound

String、複数指定可

WebApiのレスポンスでJAXBでの変換対象となるクラス。

設定例
<service>
    <interface>org.iplass.mtp.impl.webapi.jaxb.WebApiJaxbService</interface>
    <property name="classToBeBound" value="org.iplass.mtp.impl.webapi.jaxb.Builtins" />
    <!-- ee only classes -->
    <property name="classToBeBound" value="org.iplass.mtp.impl.webapi.jaxb.EnterpriseDefinitions" />
    <!--
    <property name="classToBeBound" value="org.iplass.mtp.impl.csv.CsvUploadResult" />
     -->
</service>

3.48. WebApiService

WebApiの定義(メタデータ)を管理するサービスです。

インタフェース名

org.iplass.mtp.impl.webapi.WebApiService

実装クラス名

org.iplass.mtp.impl.webapi.WebApiService

WebApiServiceの設定

WebApiを設定します。

設定項目
項目 説明

enableDefinitionApi

boolean

DefinitionWebAPIを公開するか。

enableBinaryApi

boolean

BinaryWebAPIを公開するか。

statusMap

StatusMap、複数指定可

Exception発生時に返すステータスコードの対応設定。

xRequestedWithMap

Map

WebApiでX-Requested-Withヘッダをチェックする設定の時に、チェックする項目と比較する値。

cors

CorsConfig

XHR2(CORS)する際の許可ドメイン設定。

StatusMap

以下の項目が設定可能です。

項目 説明

exception

String

Exceptionのクラス名。

status

int

Exception発生時のステータスコード。

CorsConfig

以下の項目が設定可能です。

項目 説明

allowOrigin

String、複数指定可

アクセスを許可するドメイン。

allowCredentials

boolean

WebApiのレスポンス情報をリクエスト元に返却するか。

設定例
<service>
    <interface>org.iplass.mtp.impl.webapi.WebApiService</interface>
    <property name="enableDefinitionApi" value="false" />
    <property name="enableBinaryApi" value="false" />
    <property name="xRequestedWithMap">
        <property name="X-Requested-With" value="XMLHttpRequest" />
    </property>
    <property name="statusMap">
        <property name="exception" value="org.iplass.mtp.auth.NoPermissionException" />
        <property name="status" value="403" />
    </property>
    <property name="statusMap">
        <property name="exception" value="org.iplass.mtp.auth.NeedTrustedAuthenticationException" />
        <property name="status" value="403" />
    </property>
    <property name="statusMap">
        <property name="exception" value="org.iplass.mtp.tenant.available.UnavailableException" />
        <property name="status" value="503" />
    </property>
    <property name="statusMap">
        <property name="exception" value="org.iplass.mtp.ApplicationException" />
        <property name="status" value="500" />
    </property>
    <property name="statusMap">
        <property name="exception" value="org.iplass.mtp.SystemException" />
        <property name="status" value="500" />
    </property>
    <property name="cors">
        <property name="allowOrigin" value="https://hogehoge.isid.co.jp" />
        <property name="allowOrigin" value="https://fugafuga.isid.co.jp" />
        <property name="allowCredentials" value="true" />
    </property>
</service>

3.49. WebFrontendService

Webアプリ全般の動作を管理するサービスです。

インタフェース名

org.iplass.mtp.impl.web.WebFrontendService

実装クラス名

org.iplass.mtp.impl.web.WebFrontendService

WebFrontendServiceの設定

Webアプリ共通の振る舞いを設定します。

設定項目
項目 説明

tempFileDir

String

テンポラリファイル格納パス。 未指定時は「javax.servlet.context.tempdir」を使用します。

staticContentPath

String

静的コンテンツパス。 Eclipseプロジェクト設定時に変更した「コンテキスト名」を指定してください。

defaultContentType

String

TemplateのContent Disposition TypeがDefaultの場合に指定するContentType。 未指定時は text/html; charset=utf-8 となります。

defaultClientCacheType

String

デフォルトのクライアントキャッシュ。 キャッシュを許可する場合は CACHE を、許可しない場合は NO_CACHE を設定します。

maxUploadFileSize

long

ファイルアップロード時のサイズ上限。 -1を指定した場合は上限がなくなります。未指定時は-1となります。

errorUrlSelector

ErrorUrlSelector

エラーページの表示を行うErrorUrlSelector。

loginUrlSelector

LoginUrlSelector

ログインページの表示を行うLonginUrlSelector。

excludePath

String、複数指定可

iPLAss管理対象外のパス 正規表現で指定します。 指定したパスは権限等のチェックが行われません。

throughPath

String、複数指定可

iPLAss配下で動くが、独自Servletを呼び出すパス 正規表現で指定します。

restPath

String

WebApiのパス定義を設定します。 WebApiへのアクセス時は、restPathの後にWebApiの名前が続きます。

logoutUrl

String

ログアウト時にキックするURL。

contentDispositionPolicy

ContentDispositionPolicy、複数指定可

ContentDispositionの出力設定。

uploadFileScanner

FileScanner

ウィルススキャン実行設定。

isExecMagicByteCheck

boolean

アップロードファイルのマジックバイトチェックを行うか。

directAccessPort

String

ダイレクトアクセスポート。 このポートの場合テナントのurlForRequest指定は無効となります。

clientMode

String

Webクライアントのモード。 DEBUGを指定した場合、WebApiアクセスエラー時にエラー内容を表示します。

transactionTokenMaxSize

int

トランザクショントークンの保有上限。

welcomeAction

String、複数指定可

リクエストされたURLのアクション部分が「/」の場合に、代わりに実行するアクション。

redirectAfterLogin

boolean

未ログイン状態でアクセスしたアクションに対して、ログイン後にリダイレクトを行うか。 リダイレクトを行う場合、アクションがGETメソッドを許可している必要があります。

tenantAsDomain

boolean

ドメインをテナントURL(/テナント名)として扱うか。

fixedTenant

String

設定された値をテナントURLとして扱う。

ErrorUrlSelector

classはorg.iplass.mtp.impl.web.ErrorUrlSelectorの実装クラスを指定します。

標準で、以下のErrorUrlSelectorを提供します。

  • org.iplass.gem.GemErrorUrlSelector

  • org.iplass.gem.EnterpriseGemErrorUrlSelector

GemErrorUrlSelector及びEnterpriseGemErrorUrlSelectorは設定変更可能な項目はありません。

LoginUrlSelector

classはorg.iplass.mtp.impl.web.LoginUrlSelectorの実装クラスを指定します。

標準で、ログインページの表示を行うorg.iplass.gem.GemLoginUrlSelectorを提供します。 GemLoginUrlSelectorは設定変更可能な項目はありません。

ContentDispositionPolicy

classはorg.iplass.mtp.impl.web.ContentDispositionPolicyを指定します。 以下の項目を設定可能です。

項目 説明

userAgentKey

String

UserAgent識別子(*はデフォルト)。

contentDispositionTypeName

String

ContentDispositionType名(*は全て)。

unescapeCharacter

String

エスケープしない文字(Alphabet、数値は無条件でエスケープ除外)。

defaultContentDispositionTypeName

String

未指定時のContentDispositionType名。

FileScanner

classはorg.iplass.mtp.impl.web.fileupload.FileScannerの実装クラスを指定します。

標準で、ウィルススキャンを実行を行うorg.iplass.mtp.impl.web.fileupload.DefaultFileScannerを提供します。 DefaultFileScannerは以下の項目を設定可能です。

項目 説明

comandPath

String、必須

ウィルススキャンコマンドのパス。

timeout

String、必須

ウィルススキャンのタイムアウト時間。

設定例
<service>
    <interface>org.iplass.mtp.impl.web.WebFrontendService</interface>
    <class>org.iplass.mtp.impl.web.WebFrontendService</class>
    <!-- welcome file(action) -->
    <property name="welcomeAction" value="index" />
    <property name="transactionTokenMaxSize" value="50" />
    <property name="defaultClientCacheType" value="CACHE" />
    <!-- DispatcherFilterで処理しないpathの定義 -->
    <!-- static contents -->
    <property name="excludePath" value="(/errorhtml/.*)|(/images/.*)|(/scripts/.*)|(/styles/.*)|(/favicon.ico)|(/webjars/.*)" />
    <!-- servlet implementation -->
    <property name="excludePath" value="(/checkStatus)|(/cmcs)" />
    <!-- SOAP path -->
    <property name="excludePath" value="/soap/.*" />

    <!-- WebAPI(REST)のpathの定義 -->
    <property name="restPath" value="/api/" />
    <!-- ログアウト時にキックするURL -->
    <property name="logoutUrl" value="logout" />
    <!-- エラーページの設定 -->
    <property name="errorUrlSelector" class="org.iplass.gem.GemErrorUrlSelector" />
    <!-- ログインページの設定 -->
    <property name="loginUrlSelector" class="org.iplass.gem.GemLoginUrlSelector" />
    <!-- テンポラリファイル格納パス 未指定時は「javax.servlet.context.tempdir」を使用 -->
    <!--
    <property name="tempFileDir" value="/tmp" />
    -->
    <!-- ダイレクトアクセスポート このポートの場合テナントのurlForRequest指定は無効 -->
    <!--
    <property name="directAccessPort" value="8080" />
    -->
    <!-- Webクライアントのモード DEBUGを指定した場合、WebAPIアクセスエラー時にエラー内容を表示 -->
    <!--
    <property name="clientMode" value="DEBUG" />
    -->

    <!-- ContentDispositionの出力設定 -->
    <!-- default -->
    <property name="contentDispositionPolicy" class="org.iplass.mtp.impl.web.ContentDispositionPolicy">
        <property name="userAgentKey" value="*" />
        <property name="contentDispositionTypeName" value="*" />
        <property name="unescapeCharacter" value="-._~" />
        <property name="defaultContentDispositionTypeName" value="ATTACHMENT" />
    </property>
    <!-- IE11 -->
    <!-- IE11の場合、INLINEではブランクをエスケープしない -->
    <property name="contentDispositionPolicy" class="org.iplass.mtp.impl.web.ContentDispositionPolicy">
        <property name="userAgentKey" value="Trident" />
        <property name="contentDispositionTypeName" value="INLINE" />
        <property name="unescapeCharacter" value="-._~ " />
        <!--
        <property name="defaultContentDispositionTypeName" value="" />
         -->
    </property>
    <!--
        追加する場合、userAgentKey、contentDispositionTypeNameごとにエスケープしない文字を指定。
        contentDispositionTypeName: * | ATTACHMENT | INLINE
        unescapeCharacter: アルファベット、数字以外で除外する文字
    -->
    <!--
    <property name="contentDispositionPolicy" class="org.iplass.mtp.impl.web.ContentDispositionPolicy">
        <property name="userAgentKey" value="XXXX" />
        <property name="contentDispositionTypeName" value="INLINE" />
        <property name="unescapeCharacter" value="-._~" />
    </property>
    -->

    <!-- ウィルススキャン実行 -->
    <!--
    <property name="uploadFileScanner" class="org.iplass.mtp.impl.web.fileupload.DefaultVirusScanner" >
        <property name="commandPath" value="xxxxx.exe ${file}" />
        <property name="timeout" value="15" />
    </property>
     -->

    <!-- MagicByteCheck実行 -->
    <property name="isExecMagicByteCheck" value="true" />
</service>

3.50. 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.51. CubeTemplateService

Cube集計のカスタムメジャーのテンプレートを管理するサービスです。

インタフェース名

org.iplass.mtp.impl.aggregation.unit.cube.CubeTemplateService

実装クラス名

org.iplass.mtp.impl.aggregation.unit.cube.CubeTemplateService

CubeTemplateServiceの設定

CubeTemplateServiceを設定します。

設定項目
項目 説明

templateSettings

CubeTemplateSetting、複数指定可

カスタムメジャーに利用するテンプレートの設定。

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} &lt; 10 THEN '0' WHEN ${1} &lt; 20 THEN '10' WHEN ${1} &lt; 30 THEN '20' WHEN ${1} &lt; 40 THEN '30' WHEN ${1} &lt; 50 THEN '40' WHEN ${1} &lt; 60 THEN '50' WHEN ${1} &lt; 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} &lt; 10 THEN '0' WHEN ${1} &lt; 20 THEN '10' WHEN ${1} &lt; 30 THEN '20' WHEN ${1} &lt; 40 THEN '30' WHEN ${1} &lt; 50 THEN '40' WHEN ${1} &lt; 60 THEN '50' WHEN ${1} &lt; 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.52. 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.53. GemConfigService

汎用画面全般の動作の設定を行うサービスです。

インタフェース名

org.iplass.gem.GemConfigService

実装クラス名

コミュニティエディション用設定
org.iplass.gem.GemConfigService
エンタープライズエディション用設定
org.iplass.gem.EnterpriseGemConfigService

GemConfigServiceの設定

コミュニティエディション用の動作を設定します。

設定項目
項目 説明

loadWithReference

boolean

リクエストのパラメータを基に参照データをロードする際、参照プロパティも合わせてロードするか。デフォルト値はfalseです。

formatNumberWithComma

boolean

詳細表示画面で数値プロパティの値をカンマでフォーマットするか。デフォルト値はtrueです。

csvDownloadMaxCount

int

CSVダウンロード件数の上限値。未指定の場合のデフォルト値は65535です。

csvDownloadCharacterCode

String、複数指定可

CSVダウンロードの文字コード。デフォルト値は UTF-8 です。

csvDownloadwithMappedBy

boolean

CSVダウンロードでMappedBy項目を出力するか。デフォルト値はfalseです。

csvDownloadQuoteAll

boolean

CSVダウンロードで常時ダブルクォートの出力を行うか。デフォルト値はtrueです。

csvDownloadReferenceVersion

boolean

CSVダウンロードで参照項目のバージョンを出力するか。デフォルト値はtrueです。

csvUploadCommitCount

int

CSVアップロードのコミット単位。デフォルト値は1000です。

csvUploadAsync

boolean

CSVアップロードを非同期で行うか。デフォルト値はfalseです。
非同期で行う場合は、 RdbQueueService[useQueue]プロパティをtrueに設定してください。

csvUploadStatusPollingInterval

int

CSVアップロードのステータスポーリングのインターバル。デフォルト値は10000(10秒)です。

searchResultCacheLimit

int

CSVダウンロード時User名取得のための検索内部キャッシュサイズ。デフォルト値は300です。

confirmEditCancel

boolean

編集画面でキャンセル時に確認ダイアログを表示するか。デフォルト値はtrueです。

showSeachCondResetButton

boolean

検索画面でリセットボタンを表示するか。デフォルト値はtrueです。

searchInterval

int

検索処理のインターバル。0を設定した場合は無期限となります。デフォルト値は60000(1分)です。

csvDownloadInterval

int

CSVダウンロードのインターバル。0を設定した場合は無期限となります。デフォルト値は60000(1分)です。

csvDownloadWithFooter

boolean

汎用検索のCSVダウンロードでフッターを出力するか。デフォルト値はfalseです。

csvDownloadFooter

String

汎用検索のCSVダウンロードのフッター文言。

showPulldownPleaseSelectLabel

boolean

プルダウンの未選択時のラベル「選択してください」を表示するか。デフォルト値はtrueです。

recycleBinMaxCount

int

ゴミ箱の表示件数上限値。未指定の場合のデフォルト値は100です。-1を指定した場合は無制限となります。

binaryDownloadLoggingTargetProperty

BinaryDownloadLoggingTargetProperty、複数指定可

バイナリダウンロード用ログの出力対象のプロパティ。

imageColors

ImageColorSetting、複数指定可

検索画面や詳細画面、メニュー等に設定するイメージカラーの設定。

skins

Skin、複数指定可

スキン。

themes

Theme、複数指定可

テーマ。

entityViewHelper

EntityViewHelper

検索画面や詳細画面を表示する際のヘルパークラス。

EnterpriseGemConfigServiceの設定

エンタープライズエディション用の動作を設定します。 コミュニティエディション用の設定と併せて設定してください。

設定項目
項目 説明

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です。

entitylistingCsvDownloadWithFooter

boolean

EntityListingのCSVダウンロードでフッターを出力するか。デフォルト値はfalseです。

entitylistingCsvDownloadFooter

String

EntityListingのCSVダウンロードのフッター文言。

aggregationCsvDownloadWithFooter

boolean

集計のCSVダウンロードでフッターを出力するか。デフォルト値はfalseです。

aggregationCsvDownloadFooter

String

集計のCSVダウンロードのフッター文言。

aggregationRawdataCsvDownloadWithFooter

boolean

集計のローデータCSVダウンロードでフッターを出力するか。デフォルト値はfalseです。

aggregationRawdataCsvDownloadFooter

String

集計のローデータのCSVダウンロードのフッター文言。

BinaryDownloadLoggingTargetProperty

classはorg.iplass.gem.BinaryDownloadLoggingTargetPropertyを指定します。

バイナリダウンロード用ログの出力対象のプロパティです。以下の項目を設定可能です。

項目 説明

entityName

String

エンティティ名。

propertyName

String

プロパティ名。

ImageColorSetting

classはorg.iplass.gem.ImageColorSettingを指定します。

検索画面や詳細画面、メニュー等に設定するイメージカラーと、対応するCSSを設定します。 イメージカラーを追加する場合、対応するCSSを作成してください。

項目 説明

colorName

String

イメージカラー名。

cssSettings

CssSetting、複数指定可

スキンと対応するCSSファイルのパスの設定。

CssSetting

classはorg.iplass.gem.CssSettingを指定します。

スキンと対応するCSSファイルのパスを設定します。

項目 説明

skinName

String

スキン名。

cssPath

String

CSSファイルのパス。

Skin

classはorg.iplass.mtp.tenant.Skinを指定します。 以下の項目を設定可能です。

項目 説明

displayName

String

表示名。

skinName

String

スキン名。

pageSkinName

String

ページ全体用のスキン名。

menuSkinName

String

メニュー用のスキン名。

Theme

classはorg.iplass.mtp.tenant.Themeを指定します。 以下の項目を設定可能です。

項目 説明

displayName

String

表示名。

themeName

String

テーマ名。

EntityViewHelper

検索画面や詳細画面を表示する際のヘルパークラスを設定します。

classはorg.iplass.gem.EntityViewHelperの実装クラスを指定します。

標準で以下のEntityViewHelperを提供しています。

EntityViewHelperImpl

コミュニティエディション向けのEntityViewHeplerです。

classにorg.iplass.gem.EntityViewHelperImplを指定します。 設定可能な項目はありません。

EnterpriseEntityViewHelperImpl

エンタープライズエディション向けのEntityViewHelperです。

classにorg.iplass.gem.EnterpriseEntityViewHelperImplを指定します。 設定可能な項目はありません。

設定例
<service>
    <interface>org.iplass.gem.GemConfigService</interface>
    <class>org.iplass.gem.EnterpriseGemConfigService</class>

    <!-- 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ダウンロードMappedBy項目取得設定 -->
    <property name="csvDownloadwithMappedBy" value="false"/>

    <!-- CSVダウンロード常時ダブルクォート出力
        標準ではtrueに設定されています。ダブルクォートを出力したくない場合はfalseにしてください。
        (," 改行が含まれる場合は設定に関係なくダブルクォートを出力します)
     -->
    <property name="csvDownloadQuoteAll" value="true"/>

    <!-- CSVダウンロード参照項目バージョン出力 -->
    <property name="csvDownloadReferenceVersion" value="true"/>

    <!-- CSVアップロードコミット単位 -->
    <property name="csvUploadCommitCount" value="1000"/>

    <!-- CSVダウンロード時User名取得のための検索内部キャッシュサイズ -->
    <property name="searchResultCacheLimit" value="300" />

    <!-- 編集画面でキャンセル時に確認ダイアログを表示するか
         デフォルトで表示するに設定されています。非表示にしたい場合はfalseを設定してください。
    -->
    <property name="confirmEditCancel" value="true"/>

    <!-- 検索画面でリセットボタンを表示するか
         デフォルトで表示するに設定されています。非表示にしたい場合はfalseを設定してください。
    -->
    <property name="showSeachCondResetButton" value="true"/>

    <!-- 検索処理のインターバル、無期限(0)/指定ミリ秒(1以上) -->
    <property name="searchInterval" value="60000"/>

    <!-- CSVダウンロードのインターバル、無期限(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=""/>

    <!-- 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=""/>

    <!-- CSVアップロード非同期設定 -->
    <!-- true(非同期)を設定する場合は、 RdbQueueServiceのuseQueueプロパティをtrueに設定してください。 -->
    <property name="csvUploadAsync" value="false"/>

    <!-- CSVアップロードステータスポーリングのインターバル、指定ミリ秒 -->
    <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>
    <!-- 汎用画面、メニュー用のイメージカラー設定 -->
    <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.54. 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.55. AdminConsoleService

AdminConsoleService全般のサービスです。

インタフェース名

org.iplass.adminconsole.server.base.service.AdminConsoleService

実装クラス名

org.iplass.adminconsole.server.base.service.AdminConsoleService

AdminConsoleServiceの設定

AdminConsoleServiceを設定します。

設定項目
項目 説明

resourcePrefixPath

String

GWT系JSを取得する際のリソースPrefix

showServerInfo

boolean

AdminConsole上で環境情報としてサーバ情報を表示するか

logDownloadConfig

LogConfig

アプリケーションログのダウンロード設定

LogConfig

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>

    <!-- GWT系JSを取得する際のリソースPrefix -->
    <property name="resourcePrefixPath" value="/admin" />

    <!-- 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>
</service>

3.56. AuditLogToolService

操作ログツールに関するサービスです。

インタフェース名

org.iplass.mtp.impl.tools.auditlog.AuditLogToolService

実装クラス名

org.iplass.mtp.impl.tools.auditlog.AuditLogToolService

AuditLogToolServiceの設定

AuditLogToolServiceを設定します。

設定項目
項目 説明

searchResultCacheLimit

long

ユーザ名取得のための検索内部キャッシュサイズ。

logQuery

boolean

Query操作を出力するか。

logCompact

boolean

logファイルへの出力時、LongTextなど長すぎる文字列を全部出力しない。

textMaxLength

int

カットする場合の最大文字数。

設定例
<service>
    <interface>org.iplass.mtp.impl.tools.auditlog.AuditLogToolService</interface>
    <class>org.iplass.mtp.impl.tools.auditlog.AuditLogToolService</class>
    <!-- ユーザ名取得のための検索内部キャッシュサイズ -->
    <property name="searchResultCacheLimit" value="50" />

    <!-- logファイルへの出力時、LongTextなど長すぎる文字列を全部出力しない場合(デフォルト256文字まで)はtrue -->
    <!-- if cut out the too long text such as a LongText, set to true. (the default length is until 256 characters) -->
    <property name="logCompact" value="false" />

    <!-- Query操作を出力する場合はtrue -->
    <!-- if log query, set to true -->
    <property name="logQuery" value="true" />
</service>

3.57. StorageSpaceService

StorageSpaceの移行ツールに関するサービスです。

インタフェース名

org.iplass.mtp.impl.tools.storagespace.StorageSpaceService

実装クラス名

org.iplass.mtp.impl.tools.storagespace.StorageSpaceServiceImpl

StorageSpaceServiceの設定

StorageSpaceServiceを設定します。

設定項目
項目 説明

migrateCommitLimit

int

StrageSpace変更時の移行データCommit単位(件数)。

cleanupCommitLimit

int

StrageSpace変更後の移行データクリーンアップCommit単位(件数)。

設定例
<service>
    <interface>org.iplass.mtp.impl.tools.storagespace.StorageSpaceService</interface>
    <class>org.iplass.mtp.impl.tools.storagespace.StorageSpaceServiceImpl</class>

    <property name="migrateCommitLimit" value="100" />
    <property name="cleanupCommitLimit" value="1000" />
</service>

3.58. TenantToolService

テナント管理ツールに関するサービスです。

インタフェース名

org.iplass.adminconsole.server.base.service.TenantToolService

実装クラス名

org.iplass.adminconsole.server.base.service.TenantToolService

TenantToolServiceの設定

TenantToolServiceを設定します。

設定項目
項目 説明

createProcesses

TenantCreateProcess、複数指定可

テナント作成時に実行するプロセスを設定。

TenantCreateProcess

classはorg.iplass.mtp.impl.tools.tenant.create.TenantCreateProcessの実装クラスを指定します。

標準で以下のTenantCreateProcessを提供しています。

CreateAdminUserProcess

管理者ユーザを作成します。

classにorg.iplass.mtp.impl.tools.tenant.create.CreateAdminUserProcessを指定します。 設定可能な項目はありません。

BlankSkipProcess

空のテナントを作成します。

classにorg.iplass.mtp.impl.tools.tenant.create.BlankSkipProcessを指定します。 設定可能な項目はありません。

CreateMenuProcess

初期メニュー定義を作成します。

classはorg.iplass.mtp.impl.tools.tenant.create.CreateMenuProcessを指定します。 設定可能な項目はありません。

CreateTopViewProcess

初期TopView定義を作成します。

classはorg.iplass.mtp.impl.tools.tenant.create.CreateTopViewProcessを指定します。 設定可能な項目はありません。

CreateAppAdminRoleProcess

管理者ロールと権限データを作成します。

classはorg.iplass.mtp.impl.tools.tenant.create.CreateAppAdminRoleProcessを指定します。 設定可能な項目はありません。

CreateGemUserRoleProcess

Gemユーザ用ロールと権限データを作成します。

classはorg.iplass.mtp.impl.tools.tenant.create.CreateGemUserRoleProcessを指定します。 設定可能な項目はありません。

CreateAppAdminRoleEEProcess

管理者ロール向けのEnterpriseEdition用権限データを作成します。

classはorg.iplass.mtp.impl.tools.tenant.create.CreateAppAdminRoleEEProcessを指定します。 設定可能な項目はありません。

CreateGemUserRoleEEProcess

Gemユーザロール向けのEnterpriseEdition用権限データを作成します。

classはorg.iplass.mtp.impl.tools.tenant.create.CreateGemUserRoleEEProcessを指定します。 設定可能な項目はありません。

CreateAppConsolePermissionProcess

管理者ロールとGemユーザロールにAppコンソール用権限データを作成します。

classはorg.iplass.mtp.impl.tools.tenant.create.CreateAppConsolePermissionProcessを指定します。 設定可能な項目はありません。

CreateCompleteProcess

テナント作成完了処理を行います。

classはorg.iplass.mtp.impl.tools.tenant.create.CreateCompleteProcessを指定します。 設定可能な項目はありません。

設定例
<service>
    <interface>org.iplass.mtp.impl.tools.tenant.TenantToolService</interface>

    <property name="createProcesses" class="org.iplass.mtp.impl.tools.tenant.create.CreateAdminUserProcess" />
    <property name="createProcesses" class="org.iplass.mtp.impl.tools.tenant.create.BlankSkipProcess" />
    <property name="createProcesses" class="org.iplass.mtp.impl.tools.tenant.create.CreateMenuProcess" />
    <property name="createProcesses" class="org.iplass.mtp.impl.tools.tenant.create.CreateTopViewProcess" />
    <property name="createProcesses" class="org.iplass.mtp.impl.tools.tenant.create.CreateAppAdminRoleProcess" />
    <property name="createProcesses" class="org.iplass.mtp.impl.tools.tenant.create.CreateGemUserRoleProcess" />

    <!-- for ee -->
    <property name="createProcesses" class="org.iplass.mtp.impl.tools.tenant.create.CreateAppAdminRoleEEProcess" />
    <property name="createProcesses" class="org.iplass.mtp.impl.tools.tenant.create.CreateGemUserRoleEEProcess" />
    <!-- for appconsole -->
    <property name="createProcesses" class="org.iplass.mtp.impl.tools.tenant.create.CreateAppConsolePermissionProcess" />

    <property name="createProcesses" class="org.iplass.mtp.impl.tools.tenant.create.CreateCompleteProcess" />

</service>

3.59. AWSSetting

AWSの設定を管理するサービスです。

インタフェース名

org.iplass.mtp.impl.aws.AWSSetting

実装クラス名

org.iplass.mtp.impl.aws.AWSSetting

AWSSettingの設定

AWSSettingを設定します。

設定項目
項目 説明

accessKeyId

String

AWSのアクセスキーID

secretKey

String

AWSのシークレットキー

clientConfiguration

ClientConfiguration

AWSClient側の設定

ClientConfiguration

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" />

    <property name="clientConfiguration">
        <property name="maxConnections" value="100" />
    </property>
</service>

3.60. 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

GoogleのreCAPTCHAのサイトキー。

secretKey

String

GoogleのreCAPTCHAのシークレットキー。

設定例
<service>
    <interface>org.iplass.mtp.impl.aws.CaptchaService</interface>
    <class>org.iplass.mtp.impl.aws.CaptchaService</class>

    <!-- Your AWS account details -->
    <property name="accessKeyId" value="input your access key id" />
    <property name="secretKey" value="input your secret key" />

</service>

3.61. InfinispanService

Infinispanを管理するサービスです。

インタフェース名

org.iplass.mtp.impl.infinispan.InfinispanService

実装クラス名

org.iplass.mtp.impl.infinispan.InfinispanService

InfinispanServiceの設定

InfinispanServiceを設定します。

設定項目
項目 説明

configurationFile

String

Infinispanの設定ファイル。

設定例
<service>
    <interface>org.iplass.mtp.impl.infinispan.InfinispanService</interface>
        <property name="configurationFile" value="infinispan.xml" />
</service>

3.62. OutOfBandVerificationService

メールやSMSを利用して検証を行うためのサービスです。

インタフェース名

org.iplass.wam.impl.outofbandverify.OutOfBandVerificationService

実装クラス名

org.iplass.wam.impl.outofbandverify.OutOfBandVerificationService

OutOfBandVerificationServiceの設定

OutOfBandVerificationServiceを設定します。

設定項目
項目 説明

verifier

OutOfBandVerifier、複数指定可

アウトオブバンドを利用した検証の設定。

OutOfBandVerifier

アウトオブバンドを利用した検証の設定です。

classはorg.iplass.wam.impl.outofbandverify.OutOfBandVerifierを指定します。 以下の項目を設定可能です。

項目 説明

name

String

アウトオブバンドの名前。

outOfBand

OutOfBand

アウトオブバンドの設定。

strategy

VerifyStrategy

検証機能の設定。

store

VerificationStore

検証対象の保持設定。

OutOfBand

classはorg.iplass.wam.impl.outofbandverify.outofband.OutOfBandの実装クラスを指定します。

標準で以下のOutOfBandを提供しています。

MailOutOfBand

メール送信のためのOutOfBandです。

classはorg.iplass.wam.impl.outofbandverify.outofband.MailOutOfBandを指定します。 設定可能な項目はありません。

SMSOutOfBand

SMS送信のためのOutOfBandです。

classはorg.iplass.wam.impl.outofbandverify.outofband.SMSOutOfBandを指定します。 設定可能な項目はありません。

VerifyStrategy

classはorg.iplass.wam.impl.outofbandverify.strategy.VerifyStrategyの実装クラスを指定します。

標準で以下のVerifyStrategyを提供しています。

ActivationURLVerifyStrategy

アクティベーションURLによる検証を行います。

classはorg.iplass.wam.impl.outofbandverify.strategy.ActivationURLVerifyStrategyを指定します。 設定可能な項目はありません。

OnetimeCodeVerifyStrategy

ワンタイムコードによる検証を行います。

classはorg.iplass.wam.impl.outofbandverify.strategy.OnetimeCodeVerifyStrategyを指定します。 以下の項目を設定可能です。

項目 説明

numberOfDigits

int

ワンタイムコードの桁数。デフォルト値は6。

VerificationStore

classはorg.iplass.wam.impl.outofbandverify.store.VerificationStoreの実装クラスを指定します。

標準で以下のVerificationStoreを提供しています。

CacheVerificationStore

検証対象をキャッシュに保存します。

classはorg.iplass.wam.impl.outofbandverify.store.CacheVerificationStoreを指定します。 設定可能な項目はありません。

EntityVerificationStore

検証対象をEntityに保存します。

classはorg.iplass.wam.impl.outofbandverify.store.EntityVerificationStoreを指定します。 設定可能な項目はありません。

SessionVerificationStore

検証対象をユーザのSessionに保存します。

classはorg.iplass.wam.impl.outofbandverify.store.SessionVerificationStoreを指定します。 設定可能な項目はありません。

設定例
<service>
    <interface>org.iplass.wam.impl.outofbandverify.OutOfBandVerificationService</interface>
    <property name="verifier" class="org.iplass.wam.impl.outofbandverify.OutOfBandVerifier">
        <property name="name" value="email"/>
        <property name="outOfBand" class="org.iplass.wam.impl.outofbandverify.outofband.MailOutOfBand"/>
        <property name="strategy" class="org.iplass.wam.impl.outofbandverify.strategy.ActivationURLVerifyStrategy"/>
        <property name="store" class="org.iplass.wam.impl.outofbandverify.store.EntityVerificationStore"/>
    </property>
    <property name="verifier" class="org.iplass.wam.impl.outofbandverify.OutOfBandVerifier">
        <property name="name" value="mobileMail"/>
        <property name="outOfBand" class="org.iplass.wam.impl.outofbandverify.outofband.MailOutOfBand"/>
        <property name="strategy" class="org.iplass.wam.impl.outofbandverify.strategy.OnetimeCodeVerifyStrategy"/>
        <property name="store" class="org.iplass.wam.impl.outofbandverify.store.SessionVerificationStore"/>
    </property>
    <property name="verifier" class="org.iplass.wam.impl.outofbandverify.OutOfBandVerifier">
        <property name="name" value="sms"/>
        <property name="outOfBand" class="org.iplass.wam.impl.outofbandverify.outofband.SMSOutOfBand"/>
        <property name="strategy" class="org.iplass.wam.impl.outofbandverify.strategy.OnetimeCodeVerifyStrategy"/>
        <property name="store" class="org.iplass.wam.impl.outofbandverify.store.SessionVerificationStore"/>
    </property>
</service>

3.63. WamService

Web会員管理機能のサービスです。

インタフェース名

org.iplass.wam.impl.WamService

実装クラス名

org.iplass.wam.impl.WamService

WamServiceの設定

Wamを設定します。

設定項目
項目 説明

tokenManager

TokenManager

TokenManagerの設定。デフォルトではEntityTokenManagerが使用されます。

httpClientConfig

HttpClientConfig_wm

HTTPクライアントに関する設定。

stickySessionCookieName

String

スティッキーセッションのクッキー名。

TokenManager

classはorg.iplass.wam.api.siteauth.TokenManagerの実装クラスを指定します。

標準で、キャッシュで管理されたトークンの発行を行うorg.iplass.wam.impl.siteauth.CacheTokenManagerと、エンティティで管理されたトークンの発行を行うorg.iplass.wam.impl.siteauth.EntityTokenManagerを提供します。 CacheTokenManagerとEntityTokenManagerは設定変更可能な項目はありません。

HttpClientConfig

classはorg.iplass.mtp.impl.http.HttpClientConfigを指定します。 以下の項目を設定可能です。

項目 説明

proxyHost

String

proxyを利用する場合のHost名。

proxyPort

int

proxyを利用する場合のport。

connectionTimeout

int

HTTPコネクションを確立する際のタイムアウト(ミリ秒)。 デフォルト値は30000(30秒)です。

soTimeout

int

HTTP通信時のsocket timeout (SO_TIMEOUT)(ミリ秒)。 デフォルト値は30000(30秒)です。

poolingMaxTotal

int

httpコネクションのプールの最大数。デフォルト値は20です。

poolingDefaultMaxPerRoute

int

ドメイン単位のhttpコネクションの最大数。デフォルト値は2です。

poolingTimeToLive

int

プールされているhttpコネクションの生存期間(ミリ秒)。デフォルトは無制限です。

設定例
<service>
    <interface>org.iplass.wam.impl.WamService</interface>
    <property name="tokenManager" class="org.iplass.wam.impl.siteauth.EntityTokenManager" />
    <property name="httpClientConfig" class="org.iplass.mtp.impl.http.HttpClientConfig">
        <property name="proxyHost" value="proxyhost.isid.co.jp"/>
        <property name="proxyPort" value="8080"/>
    </property>
    <property name="stickySessionCookieName" value="AWSELB"/>
</service>

4. ログ(Slf4j/Logback)

iPLAssではログ出力にSlf4j/Logbackを利用しています。

4.1. ロガー名

iPLAssでは以下のログが標準で出力されます。 必要に応じログファイル等に出力したいログのロガー名をlogback.xmlに指定してください。

  • 監査に関するログ

    ロガー名 出力内容

    mtp.audit

    データの操作に関するログが出力されます。

    mtp.audit.download

    ファイルのダウンロード操作に関するログが出力されます。

    mtp.audit.porting.entity

    エンティティの操作に関するログが出力されます。

    mtp.audit.porting.metadata

    メタデータの操作に関するログが出力されます。

    mtp.audit.porting.pack

    パッケージの操作に関するログが出力されます。

  • 認証に関するログ

    ロガー名 出力内容

    mtp.auth

    認証に関するログが出力されます。

  • 致命的なエラーに関するログ

    ロガー名 出力内容

    mtp.fatal

    致命的なエラーに関するログが出力されます。

    mtp.fatal.cube

    Cube機能で発生したエラーのログが出力されます。

    mtp.fatal.async

    非同期実行で発生したエラーのログが出力されます。

    mtp.fatal.async.rdb

    非同期実行が中断またはリトライ回数を超えた場合にログが出力されます。

    mtp.fatal.async.rdb.processworker

    非同期実行中に発生したエラーのログが出力されます。

    mtp.fatal.asynctask

    非同期タスクの実行が中断された場合にログが出力されます。

    mtp.fatal.mail

    メール送信で発生したエラーのログが出力されます。

    mtp.fatal.cluster

    クラスタ間通信で発生したエラーのログが出力されます。

    mtp.fatal.classloader

    GroovyScriptのClassLoaderで発生したエラーのログが出力されます。

  • GroovyScriptに関するログ

    ロガー名 出力内容

    mtp.script.out

    バインド変数outのprintln()メソッドによりログが出力されます。

4.2. 診断コンテキスト

iPLAssでは以下の情報が診断コンテキスト(MDC)によりログ出力されます。

キー名 ログ出力書式 出力値

taskId

%X{taskId}

タスクID

user

%X{user}

ユーザ(クライアントID)

tenant

%X{tenant}

テナントID

tenantName

%X{tenantName}

テナント名

action

%X{action}

アクション名

command

%X{command}

コマンド名

webapi

%X{webapi}

WebAPI名

設定(service-config)リファレンス