1

Spring アプリで次のシナリオを使用したいと考えています。

  • ポート 8440 へのすべての接続には、片面の https 認証があります (サーバーのみが認証されます)。
  • ポート 8441 へのすべての接続には、2 つのサイズの http 認証があります (したがって、クライアントは有効な X.509 証明書を提供する必要があります)。

spring-security.xmlこれを実現するためにファイルを構成するにはどうすればよいですか? 理想的には、次のような表現ができるようになりたいと考えています。

<http port=8441 use-expressions="true">
  <http-basic entry-point-ref="ambariEntryPoint" />
  <intercept-url pattern="/**" access="permitAll()" method="GET"/>
  <intercept-url pattern="/**" access="hasRole('ADMIN')" method="DELETE"/>
  <x509 subject-principal-regex="(.*)" />
</http>
<http port=8440 use-expressions="true">
  <http-basic entry-point-ref="ambariEntryPoint" />
  <intercept-url pattern="/**" access="permitAll()" />
</http>

これを達成する方法はありますか?

4

1 に答える 1

1

残念ながら、Spring Security ではできません。クライアント認証は、サーブレット コンテナー (またはその背後にある Web サーバー) によって実行されます。2 つの異なる Web アプリケーションを構成できます。次に、最初のアプリケーションのクライアント証明書認証用にサーブレット コンテナーを構成し、2 番目のアプリケーション用に SSL のみを構成する必要があります。<x509>Spring Security は、フィルターを使用してクライアント証明書情報を取得できるようにします

于 2013-05-10T17:59:40.327 に答える