Я пытаюсь получить какого-то пользователя из другого микросервиса и получаю эту ошибку
Cannot construct instance of org.springframework.security.core.GrantedAuthority
модель, которую я выбираю, реализует userDetails
это вызов WebClient:
return this.webClient.get()
.uri("auth-microservice/users/{userId}", id)
.headers(httpHeaders -> {
httpHeaders.add("Authorization",request.getHeader("Authorization"));
request.getHeaders("Accept").asIterator().forEachRemaining(String -> {
httpHeaders.add("Accept",String);
});
request.getHeaders("Content-Type").asIterator().forEachRemaining(String -> {
httpHeaders.add("Accept",String);
});
})
.retrieve()
.toEntity(User.class);
когда я получаю напрямую на указанный микросервис c, я получаю правильный ответ, но когда я использую свой WebClient из другого микросервиса, я получаю эту ошибку. конечно, это связано с массивом Authority, потому что когда я устанавливаю getter для возврата null вместо Collection, я получаю нужный объект, но без ролей, так как я возвращаю null
При использовании этого , я получаю ошибку конструкции не может
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
List<GrantedAuthority> list = new ArrayList<GrantedAuthority>();
list.add(new SimpleGrantedAuthority(ROLE_PREFIX + role));
return list;
}
При использовании этого я получаю ответ пользователя без ролей
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return null
}
, и ответ:
{
"id": 35,
"username": "abdou",
"email": "aa@aa.com",
"pictureURL": null,
"enabled": false,
"authorities": [
{
"authority": "ROLE_null"
}
]
}
поэтому мой вопрос: есть ли способ преодолеть эту ошибку, чтобы я тоже мог вернуть роли в ответе?
Спасибо