spring security3.x学习(15)_扩展JdbcDaoImpl。

本文详细介绍了如何在 Spring Security 中实现自定义密码修改功能,包括定义接口、实现类、配置以及如何利用自定义 JdbcDaoImpl 和 UserDetailsService 进行密码更新。通过这种方式,展示了 Spring Security 的高度可扩展性和灵活性。
应该还记得上次使用的UserDetailsService的jdbc实现类JdbcDaoImpl。我们通过这个去返回UserDetail。那这此继续往下深入一下。
如果现在我们要完成一个修改密码的功能,在关系型数据库上,要怎么做呢?
如果默认没有自定义UserDetailsService的话,会默认指向JdbcDaoImpl,现在我们实现一下这个方法,然后看看能不能进行一个扩展。
定义接口:
public interface IChangePassword {
    void changePassword(String username, String password);
}
实现类:


这里由于实现类集成了JdbcDaoImpl,所以他也就可以直接访问数据库了,因为JdbcDaoImpl已经继承了JdbcDaoSupport。
那么,我直接通过数据库表结构就可以修改数据库密码了。哈哈,这个比较简单了。
先进行一个普通的bean声明:
<bean id= "jdbcUserServiceCustom" class="com.packtpub.springsecurity.security.CustomJdbcDaoImpl" >
        <property name= "dataSource" ref="dataSource" />
</bean >
然后进行spring security的配置:
<authentication-manager alias="authenticationManager" >
        <authentication-provider user-service- ref="jdbcUserService"/>
</authentication-manager >
通过authentication-provider 中 user-service-ref我们就可以把自定义的JdbcDaoImpl和UserDetailsService进行关联起来。

然后,运行一个项目,我们这个项目就可以拥有修改密码的功能了,。所以spring security学到目前来看,他的可扩展性是非常棒的,而且非常灵活的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值