0

spring 2.0 セキュリティを使用して Request-Header Authentication を構成しようとしていますが、まったくの初心者なので、ご容赦ください。ドキュメントから、siteminder を使用した構成ファイルの例を示します。

私のシナリオでは、それぞれ CC_USER と CC_USER_GROUP のキーを使用して、リクエスト ヘッダーにユーザー名とユーザー グループがあります。そこで、ファイルを次のように調整しました(下記参照)。

外部システムでは、ユーザーはすでにある種のシングル サインオンを使用して認証されていることを知っています。制御がアプリに到達したら、CC_USER と CC_USER_GROUP の要求ヘッダーを確認するだけで済みます。

質問 1: 以下の例では、「userDetailsS​​ervice」を使用しています。これは私が実装する必要があるものですか?ここで、CC_USER と CC_USER_GROUP のリクエスト ヘッダーを確認しますか?

質問 2: リクエスト ヘッダー認証を使用するダウンロード可能な完全な例はありますか? 私はたくさんのグーグルをしましたが、実際には多くの助けが見つかりませんでした.

質問 3: ドキュメントで行っているように、ダミーのユーザーをテスト用にハードコーディングしたいと思います。以下をリクエストヘッダー構成に組み込むにはどうすればよいですか?

<authentication-provider>
    <user-service>
      <user name="jimi" password="jimispassword" authorities="ROLE_USER, ROLE_ADMIN" />
      <user name="bob" password="bobspassword" authorities="ROLE_USER" />
    </user-service>
  </authentication-provider>

変更したサンプル構成ファイル (ドキュメントの siteminder ファイルに基づく):

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:security="http://www.springframework.org/schema/security"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://www.springframework.org/schema/context/spring-context-2.5.xsd
       http://www.springframework.org/schema/security
       http://www.springframework.org/schema/security/spring-security-2.0.4.xsd">

    <bean id="ssoFilter"
        class="org.springframework.security.ui.preauth.header.RequestHeaderPreAuthenticatedProcessingFilter">
        <security:custom-filter position="PRE_AUTH_FILTER" />
        <property name="principalRequestHeader" value="CC_USER" />
        <property name="authenticationManager" ref="authenticationManager" />
    </bean>

    <bean id="preauthAuthProvider"
        class="org.springframework.security.providers.preauth.PreAuthenticatedAuthenticationProvider">
        <security:custom-authentication-provider />
        <property name="preAuthenticatedUserDetailsService">
            <bean id="userDetailsServiceWrapper"
                class="org.springframework.security.userdetails.UserDetailsByNameServiceWrapper">
                <property name="userDetailsService" ref="userDetailsService" />
            </bean>
        </property>
    </bean>

    <security:authentication-manager
        alias="authenticationManager" />
</beans>
4

1 に答える 1

1
  1. UserDetailsS​​erviceは単なるインターフェースであり、実装する必要があります。ユーザー名でDBからユーザーをロードするメソッドは1つだけで、ユーザー情報を含むUserDetailsオブジェクトを返します(ここでは、ユーザーグループ情報を保持することもできます)。このサービスには、リクエストヘッダーはありません。リクエストヘッダーを確認するのに最適な場所はRequestHeaderPreAuthenticatedProcessingFilter
  2. あなたは話しているのRequestHeaderAuthenticationFilterですか?ドキュメントは非常に明確だと思います。
  3. 独自のユーザーサービスを実装すると、xmlにハードコードされたユーザーは機能しません
于 2012-04-08T21:43:48.350 に答える