Spring JWT, отсутствует информация о роли в базе данных - PullRequest
0 голосов
/ 28 июня 2019

Архитектура: Spring Boot, Spring JWT, Hibernate, MySQL

Текущая ситуация: правильно сгенерированный токен jwt во время регистрации пользователя.Также у меня нет проблем с логином.

Проблема: У меня проблема с ролями пользователей.Правильно был отправлен и т. Д., Но не сохраняет в базу данных.

У меня есть таблица пользователей:

@Entity
@Table(name="user")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="id")
    private int id;

    @Column(name="login")
    private String login;

    @Column(name="password")
    private String password;

    @Column(name="email")
    private String email;

    @ElementCollection(fetch = FetchType.EAGER)
    @CollectionTable(name = "user_roles", joinColumns = @JoinColumn(name = "id"))
    @Column(name="role")
    List<Role> roles;

    public User(){}

    public User(String login, String password, String email, List<Role> roles) {
        this.login = login;
        this.password = password;
        this.email = email;
        this.roles = roles;
    }

   //getters and setters, toString();

}

Перечисление ролей:

public enum Role  implements GrantedAuthority {
    ROLE_ADMIN,
    ROLE_USER

    @Override
    public String getAuthority() {
        return name();
    }
}

Но там, где я использую пользователь findByLogin, информация о роли отсутствует.Но существует другая информация.

@Override
    public User findByLogin(String loginUser) {

        Session currentSession = entityManager.unwrap(Session.class);
        Query findLoginQuery = currentSession
                .createQuery("from User where login=:login")
                .setParameter("login", loginUser);
        return (User) findLoginQuery.uniqueResult();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...