サーブレットルーティング設定¶
概要¶
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>
必須項目 × 複数設定 ○ 設定値・設定する内容 なし 単位・型 なし 省略時のデフォルト値 なし 親タグ authzauthz-default【属性】
属性名 説明 必須 デフォルト値 key パラメータのキーを指定します。 ○ なし value パラメータの値を指定します。 ○ なし