0

Spring Security の HTTPS リダイレクト戦略について質問があります。まず、構成:

  1. Spring 3 Java Web アプリ
  2. jkに接続されたApacheの後のTomcat
  3. 春のセキュリティ 3

クライアントが tomcat に直接接続する構成 (つまり、jk なし) を使用すると、次のように security.xml ファイルを構成することで、https がセキュア ポート リダイレクトを使用して管理されていることがわかります。

<http>
   <intercept-url pattern="/secure/**" access="ROLE_USER" requires-channel="https"/>
   ...
</http>

さて、ここで質問です:Apacheの後にTomcatを使用すると(jkを使用)、保護されたセクションが別のホストにあるため、次のようになります

  • http (保護されていないホスト): www.myhost.com
  • https (セキュアなホスト): ssl.myhost.com

https が必要な場合に、保護されたホストにリダイレクトするように春のセキュリティを構成できるかどうかを知りたいです。ポート マッピング構成が利用可能であるように見えますが、ホストに同様のものは見当たりません。

<http>
  ...
  <port-mappings>
    <port-mapping http="9080" https="9443"/>
  </port-mappings>
</http>

前もって感謝します。

PS。2 つのホスト構成は、ホスティング サービスによって課されます。

4

1 に答える 1

1

デフォルトの動作の実装は、https プレフィックスを持つ同じ URI への単純なリダイレクトでありRetryWithHttpsEntryPointSecureChannelProcessor. AbstractRetryEntryPointプロトコルだけでなくホスト名も変更するカスタムを作成することで、目的の動作を簡単に実装できます。

そのクラスを実装したらChannelProcessingFilter、その javadoc にあるサンプルに基づいて、それを使用して構成します: http://static.springsource.org/spring-security/site/docs/3.1.3/apidocs/org/springframework/ security/web/access/channel/ChannelProcessingFilter.html

于 2013-02-14T14:53:30.090 に答える