Не вызывается метод getRoles() через CustomUserDetailsService
Пишу серверное приложение при помощи Hibernate и Spring, пользуюсь видео образцом. Автор в определённый момент прописывает вот такой метод:
` public static User build(User user) {
List<GrantedAuthority> authorities = user.getRoles().stream().map(role -> new SimpleGrantedAuthority(role.name())).collect(Collectors.toList());
return new User(
user.getId(),
user.getUsername(),
user.getEmail(),
user.getPassword(),
authorities);
}`
По какой причине у меня не видит getRoles? Пишет что можно его создать в классе User и всё. У автора всё легко и просто. Подскажите, пожалуйста.

package com.example.demo.entity;
import com.example.demo.entity.enums.ERole;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.*;
@Entity
@Data
public class User implements UserDetails {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String name;
@Column(unique = true, updatable = false)
private String username;
@Column(nullable = false)
private String lastname;
@Column(unique = true)
private String email;
@Column(columnDefinition = "text")
private String bio;
@Column(length = 3000)
private String password;
@ElementCollection(targetClass = ERole.class)
@CollectionTable(name = "user_role",
joinColumns = @JoinColumn(name = "user_id"))
private Set<ERole> roles = new HashSet<>();
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "user", orphanRemoval = true)
private List<Post> posts = new ArrayList<>();
@JsonFormat(pattern = "yyyy-mm-dd HH:mm:ss")
@Column(updatable = false)
private LocalDateTime createdDate;
@Transient
private Collection<? extends GrantedAuthority> authorities;
public User() {
}
public User(Long id,
String username,
String email,
String password,
Collection<? extends GrantedAuthority> authorities) {
this.id = id;
this.username = username;
this.email = email;
this.password = password;
this.authorities = authorities;
}
@PrePersist
protected void onCreate() {
this.createdDate = LocalDateTime.now();
}
/**
* SECURITY
*/
@Override
public String getPassword() {
return password;
}
@Override
public boolean isAccountNonExpired() {
return true;
}
@Override
public boolean isAccountNonLocked() {
return true;
}
@Override
public boolean isCredentialsNonExpired() {
return true;
}
@Override
public boolean isEnabled() {
return true;
}
}
Ответы (1 шт):
Автор решения: GameFusion
→ Ссылка
Убедитесь что у вас метод getRoles() создан и имеет индефикатор доступа public
