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

本文为转载学习

原文链接:http://blog.csdn.net/dsundsun/article/details/11847197

应该还记得上次使用的UserDetailsService的jdbc实现类JdbcDaoImpl。我们通过这个去返回UserDetail。那这此继续往下深入一下。

如果现在我们要完成一个修改密码的功能,在关系型数据库上,要怎么做呢?

如果默认没有自定义UserDetailsService的话,会默认指向JdbcDaoImpl,现在我们实现一下这个方法,然后看看能不能进行一个扩展。

定义接口:

public interface IChangePassword {
    void changePassword(String username, String password);
}

实现类:

spring security3.x学习(15)_扩展JdbcDaoImpl。_第1张图片

这里由于实现类集成了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学到目前来看,他的可扩展性是非常棒的,而且非常灵活的。



你可能感兴趣的:(SpringSecurity)