画像レンダリングは、正規表現の一致と置換ルールに基づく、シンプルなリクエストの前処理メカニズムをサポートしています。
前処理ルールのコレクション(ルールセット)は、マテリアルカタログまたは既定のカタログに添付できます。 既定のカタログのルールは、要求が特定の材料カタログをアタッチしない場合にのみ適用されます。
リクエストの前処理ルールでは、パスの操作、コマンドの追加、コマンド値の変更、テンプレートやマクロの適用など、リクエストのパスとクエリの部分を、サーバーのリクエストパーサーによって処理される前に変更できます。 ルールは、一部のカタログ属性を設定および上書きする場合や、サービスを特定のクライアントIPアドレスに制限する場合にも使用できます。
ルールセットは、XMLドキュメントファイルとして保存されます。 ルールセットファイルの相対パスまたは絶対パスをattribute::RuleSetFile
で指定する必要があります。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ruleset SYSTEM" RuleSet.dtd">
<ruleset>
<rule>
<expression>
<varname>
expression
</varname></expression>
<substitution>
<varname>
substitution
</varname></substitution>
<addressfilter>
<varname>
addressFilter
</varname></addressfilter>
</rule>
</ruleset>
<?xml>
、<!DOCTYPE>
および<ruleset>
要素は、実際のルールが定義されていなくても、有効なルールセットXMLファイルで常に必要です。
任意の数の<rule>
要素を含む<ruleset>
要素を1つ使用できます。
前処理ルールファイルの内容では大文字と小文字が区別されます。
その他の処理の前に、受信HTTPリクエストが部分的に解析され、適用する材料カタログが決定されます。 カタログが識別されると、選択したカタログ(特定のカタログが識別されなかった場合はデフォルトのカタログ)のルールセットが適用されます。
<rule>
要素は、<expression>
要素(expression
)の内容と一致するように指定された順序で検索されます。
<rule>
が一致する場合は、オプションのsubstitution
が適用され、変更されたリクエスト文字列が通常の処理のためにサーバーのリクエストパーサーに渡されます。
<ruleset>
の終わりに達しても一致が見つからない場合、リクエストは変更されずにパーサーに渡されます。
デフォルトの動作は、<rule>
要素のOnMatch
属性で変更できます。 OnMatch
は(デフォルト) break
、または continue
に設定できます。 error.
要素と属性 |
一致が発生した場合の動作 |
---|---|
<rule OnMatch="break"> |
ルールの処理は、このルールの置換が適用された直後に終了します。 初期設定. |
<rule OnMatch="continue"> |
置換が適用され、次のルールで処理が続行されます。 |
<rule OnMatch="error"> |
ルールの処理は直ちに終了し、「リクエスト拒否」応答ステータスがクライアントに返されます。 |
<rule>
要素では、ルールが正しく照合され、設定された場合に、対応するカタログ属性を上書きする属性をオプシ OnMatch="break"
ョンで定義できます。OnMatch="continue"
が設定されている場合、属性は適用されません。 ルールで制御できる属性のリストについては、 <rule>
の説明を参照してください。
単純な文字列のマッチングは非常に基本的なアプリケーションで機能しますが、ほとんどの場合、正規表現が必要です。 正規表現は業界標準ですが、実装はインスタンスによって異なります。
package java.util.regexは、画像サービ ングで使用される特定の正規表現の実装を示します。
複雑なURLの変更を容易にするために、サブ文字列を括弧(…)で囲むことで、式にサブ文字列を取り込むことができます。 取り込まれたサブ文字列には、先頭の括弧の位置に従って1から順に番号が付けられます。 $n
を使用して、取り込んだサブ文字列を置換に挿入できます。n
は、取り込んだサブ文字列のシーケンス番号です。
カタログ属性attribute::RuleSetFile
を使用して、各マテリアルカタログに1つのルールセットファイルをアタッチできます。 ルールセットファイルはいつでも編集できますが、イメージサーバは、関連するマテリアルカタログが再ロードされた場合にのみ変更を認識します。 これは、Platform Serverが起動または再起動されたときや、(.iniファイルのサフィックスを持つ)プライマリカタログファイルが変更または「touch」(ファイルの日付を変更するため)されたときに常に発生します。
ルールセットの例は、画像サービングのドキュメントの画像カタログ参照の対応する節に記載されています。