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
实现,我该如何使用名称空间配置它?
我还想指定应该在ProviderManager
中注册哪个AuthenticationProvider
。我找到了以下配置代码:
<bean id="authenticationManager"
class="org.springframework.security.authentication.ProviderManager">
<property name="providers">
<list>
<ref local="daoAuthenticationProvider"/>
<ref local="anonymousAuthenticationProvider"/>
</list>
</property>
</bean>
但是这就足够了吗?什么是正确的方式来声明AuthenticationProvider
的列表?文档对这个问题不是很清楚和完整。
3条答案
按热度按时间ct2axkht1#
换句话说,这样的配置是否会自动创建ProviderManager的示例:
根据附录B2节,答案是肯定的。
假设我想插入我自己的AuthenticationManager实现,我该如何使用名称空间配置它?
根据第B.3.1节:
声明AuthenticationProvider列表的正确方法是什么?
从blog post开始,而不是使用
<authentication-manager> ... </authentication-manager>
,应该使用类似于以下内容的内容:9gm1akwq2#
我使用下面的配置和自定义身份验证提供程序;
dxpyg8gm3#
这些答案已经过时了。Sprinboot3和Springsecurity 6不再支持这些配置