intra-mart Accel Platform 設定ファイルリファレンス 第23版 2019-08-01

サーブレットルーティング設定

概要

URLに対して、フォワード先のサーブレットパスへのマッピングを行うための設定を行います。

モジュール テナント管理機能
フォーマットファイル(xsd) WEB-INF/schema/routing-servlet-config.xsd
設定場所 WEB-INF/conf/routing-servlet-config/{任意のファイル名}.xml

<?xml version="1.0" encoding="UTF-8"?>
<routing-servlet-config
    xmlns="http://www.intra-mart.jp/router/routing-servlet-config"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.intra-mart.jp/router/routing-servlet-config ../schema/routing-servlet-config.xsd ">
  <authz-default uri="service://application/default" action="execute" />
  <servlet-mapping path="/user/application/main" servlet="application/main" />
  <servlet-mapping path="/user/application/list" servlet="application/list" />
    <authz mapper="sample-mapper">
      <param key="foo" value="FOO" />
      <param key="bar" value="BAR" />
    </authz>
  </servlet-mapping>
  <servlet-mapping path="/user/application/process/create" servlet="application/create">
    <authz uri="service://application/update" action="execute" />
  </servlet-mapping>
  <servlet-mapping path="/user/application/process/update" servlet="application/update">
    <authz uri="service://application/update" action="execute" />
  </servlet-mapping>
  <servlet-mapping path="/user/application/process/delete" servlet="application/delete">
    <authz uri="service://application/update" action="execute" />
  </servlet-mapping>
</routing-servlet-config>

リファレンス

デフォルト認可設定

タグ名 authz-default

同じ設定ファイル上でのデフォルトの認可設定を行います。

【設定項目】

<routing-servlet-config>
  <authz-default uri="service://application/default" action="execute" />
</routing-servlet-config>

必須項目 ×
複数設定 ×
設定値・設定する内容 なし
単位・型 なし
省略時のデフォルト値 なし
親タグ routing-servlet-config

【属性】

属性名 説明 必須 デフォルト値
uri 認可リソースURIを指定します。 × なし
action 認可アクションを指定します。 × なし
mapper
認可リソースマッパーを指定します。
使用可能な値はルーティング用 認可リソースマッパー設定で設定済みの値です。
× なし

注意

この設定は、以下のいずれかの設定を行う必要があります。
uri属性とaction属性
mapper属性

注意

authz-defaultタグを省略した場合、servlet-mappingタグにauthzタグを必ず指定する必要があります。

サーブレットマッピング設定

タグ名 servlet-mapping

URLとサーブレットパスのマッピングを行います。

【設定項目】

<routing-servlet-config>
  <authz-default uri="service://application/default" action="execute" />
  <servlet-mapping path="/user/application/main" servlet="application/main" />
  <servlet-mapping path="/user/application/list" servlet="application/list" />
    ...
  </servlet-mapping>
</routing-servlet-config>

必須項目 ×
複数設定
設定値・設定する内容 なし
単位・型 なし
省略時のデフォルト値 なし
親タグ routing-servlet-config

【属性】

属性名 説明 必須 デフォルト値
path
マッピングを行うURLを指定します。
値の末尾に ワイルドカード 「*」 を指定することが可能です。
値に {<識別子>} を記述することでURLの途中の値がHttpServletRequest#getAttribute()で取得可能です。
例: /sample/view/{dataId}
なし
servlet マッピングを行うサーブレットパスを指定します。 なし
client-type
マッピングが有効となるクライアントタイプを指定します。
省略時は、すべてのクライアントタイプにおいて有効なマッピングとして扱います。
× なし

注意

認可によるアクセス制御について
サーブレットに対して認可によるアクセス制御を行う場合、直接アクセスによるサーブレットの実行を防止するために、 <servlet-mapping> タグを適切に設定してください。
具体的には、以下の3つで同じパスを指定したマッピング設定を追加する必要があります。
  • web.xml に定義されたサーブレットに対するURL(servlet-mapping で定義されたURLパターン)
  • <routing-servlet-config> タグ内 <servlet-mapping> タグの path属性
  • <routing-servlet-config> タグ内 <servlet-mapping> タグの servlet属性
このマッピング設定がない場合、認可を経由せずにサーブレットへ直接アクセスが可能となり、脆弱性の原因となる可能性があります。
例えば web.xml で以下のようにサーブレットが定義されているとします。
<servlet-mapping>
    <servlet-name>SampleServlet</servlet-name>
    <url-pattern>/sample_servlet</url-pattern>
</servlet-mapping>
この場合 routing-servlet-config には、以下のような <servlet-mapping> タグを追加します。
<servlet-mapping path="/sample_servlet" servlet="sample_servlet">
    <authz uri="service://sample/servlet" action="execute" />
</servlet-mapping>
ワイルドカード指定について
servlet属性には、 * (アスタリスク)等のワイルドカードは指定できません。

認可設定

タグ名 authz

認可設定

【設定項目】

<routing-servlet-config>
  <servlet-mapping path="/user/application/list" servlet="application/list" />
    <authz mapper="sample-mapper">
      ...
    </authz>
  </servlet-mapping>
  <servlet-mapping path="/user/application/process/create" servlet="application/create">
    <authz uri="service://application/update" action="execute" />
  </servlet-mapping>
</routing-servlet-config>

必須項目 ×
複数設定 ×
設定値・設定する内容 なし
単位・型 なし
省略時のデフォルト値 なし
親タグ servlet-mapping

【属性】

属性名 説明 必須 デフォルト値
uri 認可リソースURIを指定します。 × なし
action 認可アクションを指定します。 × なし
mapper
認可リソースマッパーを指定します。
使用可能な値はルーティング用 認可リソースマッパー設定で設定済みの値です。
× なし

コラム

authz-defaultタグが指定されていて、かつ、servlet-mappingタグにauthzタグが指定されていた場合、authzタグの認可設定が優先されます。

注意

この設定は、以下のいずれかの設定を行う必要があります。
uri属性とaction属性
mapper属性

認可パラメータ

タグ名 param
認可リソースマッパーに対するパラメータを設定します。
親タグにmapper属性が指定されていない場合は無視されます。

【設定項目】

<routing-servlet-config>
  <servlet-mapping path="/user/application/list" servlet="application/list" />
    <authz mapper="sample-mapper">
      <param key="foo" value="FOO" />
      <param key="bar" value="BAR" />
    </authz>
  </servlet-mapping>
</routing-servlet-config>

必須項目 ×
複数設定
設定値・設定する内容 なし
単位・型 なし
省略時のデフォルト値 なし
親タグ
authz
authz-default

【属性】

属性名 説明 必須 デフォルト値
key パラメータのキーを指定します。 なし
value パラメータの値を指定します。 なし