安全性的loadUserByUsername函数无法通过userDao.findByUsername(username)函数正确获取用户

时间:2019-05-27 05:41:36

标签: spring-boot

安全服务类的loadUserByUsername函数正确接收用户名,但是当使用用户名通过用户Dao接口的findByUsername(username)函数从用户表中获取用户时,它未获取正确的使用,而是返回一个随机值例如“ User @ 27387662”。

j 休眠:从用户user0_中选择user0_.id作为id1_1_,user0_.email作为电子邮件2_1_,user0_.enabled被启用3_1_,user0_.password作为密码4_1_,user0_.username作为username5_1_,其中user0_.username =? 休眠状态:选择userroles0_.user_id作为user_id3_2_0_,userroles0_.user_role_id作为user_rol1_2_0_,userroles0_.user_role_id作为user_rol1_2_1_,userroles0_.role_role_id作为role_rol2_2_1_,userroles0_1角色_id_role,从角色1_role1_id_1,id_role_1,id_role_1,id_role_1,id_role_0, userroles0_.role_role_id = role1_.role_id上​​的角色role1_,其中userroles0_.user_id =? com.invoice.domain.User@27387662

j是用户名,

com.invoice.domain.User@27387662由findByUsername(username)函数返回,

问题出在哪里?

在用于检查是否接收到用户名的函数中,使用了println函数,该函数将打印名称以及由findByUsername(username)返回的用户。

User Security Service:
____________________


package com.invoice.service.impl;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;

import com.invoice.dao.UserDao;
import com.invoice.domain.User;


@Service
public class UserSecurityService implements UserDetailsService {

    /** The application logger */
 private static final Logger LOG = LoggerFactory.getLogger(UserSecurityService.class);

 @Autowired
    private UserDao userDao;

    @Override
 public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
     System.out.println(username);
    User user = userDao.findByUsername(username);
    System.out.println(user);
    if (null == user) {
        LOG.warn("Username {} not found", username);
        throw new UsernameNotFoundException("Username " + username + " not found");
    }
    System.out.println(user);
    return user;
 }
}


UserDao
_______

package com.invoice.dao;

import org.springframework.data.repository.CrudRepository;

import com.invoice.domain.User;

public interface UserDao extends CrudRepository<User, Long> {
User findByUsername(String username);
    User findByEmail(String email);

}

0 个答案:

没有答案