Функция безопасности loadUserByUsername неправильно выбирает пользователя с помощью функции userDao.findByUsername (username) - PullRequest
0 голосов
/ 27 мая 2019

Функция loadUserByUsername класса службы безопасности получает имя пользователя правильно, однако, когда имя пользователя используется для извлечения пользователя из таблицы пользователя через функцию findByUsername (имя пользователя) интерфейса пользователя Dao, оно не выбирает правильное использование, вместо этого возвращает случайное значение например, "Пользователь @ 27387662".

J Hibernate: выберите user0_.id в качестве id1_1_, user0_.email в качестве email2_1_, user0_.enabled в качестве enabled3_1_, user0_.password в качестве password4_1_, user0_.username в качестве username5_1_ от пользователя user0_, где user0_.username =? Hibernate: выберите 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_.user_id как user_id3_2_1_, role1_.role_id в role_id1_0_2_, role1_.name в name2_0_2_ из USER_ROLE userroles0_ левое внешнее соединение роль role1_ для userroles0_.role_role_id = role1_.role_id где 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);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...