Метод asList (T ...) в типе Arrays не применим для аргументов (Role, Role) - PullRequest
0 голосов
/ 31 августа 2018

Я пытаюсь протестировать авторизацию OAuth 2.0 с помощью Postman, если я правильно ее реализовал.

Я посылаю этот почтальон в ответ на ожидаемый токен

http://localhost:8080/oauth/token/grant_type=password&username=user&password=user

Но у меня есть ошибка в этой части кода:

@SpringBootApplication
public class KamehouseApplication {

    public static void main(String[] args) {
        SpringApplication.run(KamehouseApplication.class, args);

    }

    @Autowired
    public void configure(AuthenticationManagerBuilder auth, UserRepository repo, User user) throws Exception {
        if (repo.count() == 0)
            user = (new User("user", // username
                    "user", // password
                    Arrays.asList(new Role("USER"), new Role("ACTUATOR"))));// roles

        repo.save(user);

        auth.userDetailsService(s -> new CustomUserDetails(repo.findByUsername(s)));
    }
}

Часть, которая подчеркнута красным:

Arrays.asList(new Role("USER"), new Role("ACTUATOR"))));

Говоря

The method asList(T...) in the type Arrays is not applicable for the arguments (Role, Role)

Это мой класс пользователя

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

    @Id
    @GeneratedValue
    public int id;

    public String firstname;
    public String lastname;
    public String username;
    public String password;

    @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    private List<Role> roles;

    public User() {
    }

    //Getters/Setters

1 Ответ

0 голосов
/ 31 августа 2018

РЕШЕНИЕ

Я изменил конструктор

public Role() {

}

до

public Role(String string) {

}

в мой файл Role.java, а также добавил

public User(String username, String password, List roles) {
}

в мой User.java, и теперь он работает просто отлично.

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