#spring-boot #oauth-2.0 #spring-security-oauth2 #spring-oauth2 #userprincipal
Вопрос:
Я работаю с oauth2login в spring security. Перенаправление поставщику (facebook или google) было выполнено успешно, но я получаю ошибку : org.springframework.security.oauth2.core.oidc.user.Пользователь по умолчанию не может быть приведен к модели.Код пользователя, в этой строке кода
UserPrincipal userPrincipal = (UserPrincipal) authentication.getPrincipal();
Мой класс UserPrincipal выглядит следующим образом :
public class UserPrincipal implements OAuth2User, OidcUser, UserDetails {
private Long id;
private String email;
private String password;
private Collection<? extends GrantedAuthority> authorities;
private Map<String, Object> attributes;
private Map<String, Object> claims;
private OidcUserInfo oidcUserInfo;
private OidcIdToken oidcIdToken;
...
}
Как я могу решить эту проблему, пожалуйста?
Ответ №1:
Вы переопределили методы в классе UserPrincipal, реализующем OAuth2User, UserDetails.
@Override
public String getName() {
return String.valueOf(id);
}
@Override
public String getUsername() {
return email;
}
@Override
public boolean isAccountNonExpired() {
return true;
}