org.springframework.security.oauth2.core.oidc.пользователь.Пользователь по умолчанию не может быть приведен к модели.Принцип пользователя

#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;
}