Leo灬叔叔
2012-11-27 22:42
浏览 1.0k
已采纳

spring security 自定义UserDetailsService问题

在自定义UserDetailsService时我继承了JdbcDaoImpl,并重写了loadUserByUsername()方法在方法体中:
[code="java"]
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException {
UserDetails ud = super.loadUserByUsername(username);
AuthUserDetails authUser = new AuthUserDetails(ud.getUsername(),ud.getPassword(),ud.isEnabled(),ud.isAccountNonExpired(),
ud.isCredentialsNonExpired(),ud.isAccountNonLocked(),ud.getAuthorities());
}
[/code]
调用了父类的loadUserByUsername()方法,是不是就是走了父类中的sql:
[code="java"]
public static final String DEF_USERS_BY_USERNAME_QUERY =
"SELECT username,password,enabled " +
"FROM users " +
"WHERE username = ?";
[/code]
这样我是不是就得建users表?
我感觉这个我能通过自己自定义应该可以重写一下吧?
求ss大牛...

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • iteye_5246 2012-11-28 12:48
    已采纳

    还要修改一个地方,就是JdbcUserDetailsManager中执行这个sql的部分。建议增加一个类,继承JdbcUserDetailsManager,覆盖loadUsersByUsername方法。

    点赞 打赏 评论
  • iteye_5246 2012-11-28 10:31

    看下面配置你就应该明白了。
    [code="xml"]
    <bean id="userDetailsService"

       class="org.acegisecurity.userdetails.jdbc.JdbcDaoImpl">
    
       <property name="dataSource" ref="dataSource" />
    
       <property name="usersByUsernameQuery">
    
           <value>
    
                SELECT username,password,1 FROM t_user WHERE status='1'
    
                AND username = ?
    
           </value>
    
           <!-- 根据用户名查询用户的SQL语句 -->
    
       </property>
    
       <property name="authoritiesByUsernameQuery">
    
           <value>
    
                SELECT u.username,p.priv_name FROM t_user u,t_user_priv
    
                p WHERE u.user_id =p.user_id AND u.username = ?
    
           </value>
    
       <!-- 根据用户名查询用户权限的sql语句 -->
    
       </property>
    

    [/code]

    点赞 打赏 评论
  • DreamZhong 2012-11-28 11:39

    UserDetails ud = super.loadUserByUsername(username); 你在自定义方法执行时先执行了父类的方法,肯定是调用了父类的实现了, 想实现自定义sql可以在配置文件中自定义

    点赞 打赏 评论
  • fangjinsong 2015-06-25 16:22

    [url][/url]

    点赞 打赏 评论

相关推荐 更多相似问题