用户凭据是在哪里进行验证的(Where do the user's credentials get validate?)

<authentication-manager alias="authenticationManager">
    <authentication-provider>
        <user-service>
            <user authorities="ROLE_USER" name="guest"     password="guest"/>
        </user-service>
    </authentication-provider>
</authentication-manager>

 

我们并没有显式地为这个AuthenticationProvider装配任何实现,并且我们再一次看到 security namespace handler完成了大量死记硬背的配置工作。请记住AuthenticationManager的默认实现支持配置一到多个AuthenticationProvider实现。<authentication-provider>声明将默认实例化out of the box实现(就是o.s.s.authentication.dao.DaoAuthenticationProvider),并自动装配到AuthenticationManager中去。

 

DaoAuthenticationProvider提供了一个瘦包装器(a thin wrapper)来实现AuthenticationProvider接口,然后委托给o.s.s.core.userdetails.UserDetailsService接口的实现类。UserDetailsService负责返回一个o.s.s.core.userdetails.UserDetails的实现。

 

 

如果你查看一下UserDetails的Javadoc,你将注意到它和Authentication接口很相似。不要困惑,尽管它们有很多重叠的地方(在方法名称上和功能上),但目的相当的不一样。

 

<user-service>触发了对o.s.s.core.userdetails.memory.InMemoryDaoImpl(它是UserDetailsService的一个实现)的配置。正如你预期的,该实现将XML安全配置文件中的配置的用户存储在驻留于内存的数据存储中。该service的配置支持其他属性以便允许账户被禁用或锁住。

 

大多数Spring Security例子要么是使用in-memory user credentials store或JDBC(也就是数据库)credential store.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值