9.3. 正規表現を使用したプロキシーマッピング
プロキシーマッピングに環境変数を使用する代わりに、Red Hat build of Keycloak が送信する送信要求の proxy-mappings のコンマ区切りリストを設定できます。proxy-mapping は、hostname-pattern;proxy-uri
形式を使用する、正規表現ベースのホスト名パターンとプロキシー URI で構成されます。
たとえば、次の正規表現があります。
.*\.(google|googleapis)\.com
次のコマンドを入力して、正規表現ベースのホスト名パターンを適用します。
bin/kc.[sh|bat] start --spi-connections-http-client-default-proxy-mappings="'*\\\.(google|googleapis)\\\.com;http://www-proxy.acme.com:8080'"
送信 HTTP 要求を決定するために、以下が実行されます。
- ターゲットのホスト名を、設定されているすべてのホスト名パターンと照合します。
- 最初に一致したパターンの proxy-uri が使用されます。
- ホスト名と一致する設定済みパターンがない場合、プロキシーは使用されません。
プロキシーサーバーに認証が必要な場合は、username:password@
形式でプロキシーユーザーの認証情報を含めます。以下に例を示します。
.*\.(google|googleapis)\.com;http://proxyuser:password@www-proxy.acme.com:8080
プロキシーマッピングの正規表現の例:
# All requests to Google APIs use http://www-proxy.acme.com:8080 as proxy .*\.(google|googleapis)\.com;http://www-proxy.acme.com:8080 # All requests to internal systems use no proxy .*\.acme\.com;NO_PROXY # All other requests use http://fallback:8080 as proxy .*;http://fallback:8080
この例では、以下が実行されます。
- proxy-uri の特別な値である NO_PROXY が使用されます。これは、関連付けられたホスト名パターンに一致するホストにはプロキシーが使用されないことを意味します。
- catch-all パターンはプロキシーマッピングを終了し、すべての送信要求にデフォルトのプロキシーを提供します。