应该还记得上次使用的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学到目前来看,他的可扩展性是非常棒的,而且非常灵活的。
 
                   
                   
                   
                   
                             本文详细介绍了如何在 Spring Security 中实现自定义密码修改功能,包括定义接口、实现类、配置以及如何利用自定义 JdbcDaoImpl 和 UserDetailsService 进行密码更新。通过这种方式,展示了 Spring Security 的高度可扩展性和灵活性。
本文详细介绍了如何在 Spring Security 中实现自定义密码修改功能,包括定义接口、实现类、配置以及如何利用自定义 JdbcDaoImpl 和 UserDetailsService 进行密码更新。通过这种方式,展示了 Spring Security 的高度可扩展性和灵活性。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   266
					266
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            