5

Spring のドキュメントでは、これProviderManagerが のデフォルトの実装であると書かれていますが、セキュリティ名前空間によって自動的に作成および配線されAuthenticationManagerた のインスタンスですか?ProviderManager

言い換えれば、そのような構成は自動的に のインスタンスを作成しますProviderManager:

<authentication-manager>
    <authentication-provider>
       <password-encoder hash="md5"/>
       <jdbc-user-service data-source-ref="dataSource"/>
    </authentication-provider>
</authentication-manager>

そうでなければ、何をする(または宣言する)必要がありますか?

の独自の実装をプラグインしたいと仮定するとAuthenticationManager、名前空間を使用してこれをどのように構成しますか?

AuthenticationProviderに登録する必要があるものも指定したいと思いますProviderManager。次の構成コードを見つけました。

<bean id="authenticationManager"
    class="org.springframework.security.authentication.ProviderManager">
    <property name="providers">
        <list>
            <ref local="daoAuthenticationProvider"/>
            <ref local="anonymousAuthenticationProvider"/>
        </list> 
    </property>
</bean>

しかし、それで十分ですか?のリストを宣言する正しい方法は何AuthenticationProviderですか? この問題に関するドキュメントはあまり明確ではなく、完全でもありません。

4

2 に答える 2

4

言い換えれば、そのような構成は自動的に ProviderManager のインスタンスを作成します:

付録のセクション B2 によると、答えはイエスです。

AuthenticationManager の独自の実装をプラグインしたいと仮定すると、名前空間を使用してこれをどのように構成しますか?

セクション B.3.1 によると:

<global-method-security authentication-manager-ref="..." >

AuthenticationProvider のリストを宣言する正しい方法は何ですか?

ブログ投稿から、を使用する代わりに、次の<authentication-manager> ... </authentication-manager>ようなものを使用する必要があります。

<bean id="authenticationManager" class="org.springframework.security.authentication.ProviderManager">
    <property name="providers">
        <list>
            <ref bean="authenticationProvider" />
            <ref bean="anonymousProvider" />
        </list>
    </property>
</bean>

<bean id="authenticationProvider" class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
    <property name="passwordEncoder">
        <bean class="org.springframework.security.authentication.encoding.Md5PasswordEncoder" />
    </property>
    <property name="userDetailsService" ref="userService" />
</bean>

<bean id="anonymousProvider" class="org.springframework.security.authentication.AnonymousAuthenticationProvider">
    <property name="key" value="SomeUniqueKeyForThisApplication" />
</bean>
于 2012-07-20T15:54:15.793 に答える