Получение id авторизованного пользователя Spring Security

Я пытаюсь получить сведения об авторизованном пользователе, но при просмотре в режиме отладки я получаю: principal: "anonymousUser". Как я могу добраться до id авторизованного пользователя?

Authentication auth = SecurityContextHolder.getContext().getAuthentication();
Object pricipal = auth.getPrincipal();
Integer user;
if (pricipal instanceof UserEntity) {
    user = ((UserEntity) pricipal).getId();
}

UserEntity

@Entity
@Table(name = "user_table")
@Data
public class UserEntity {
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    
    private String activationCode;
    
    @Column
    private String login;
    
    @Column
    @NotBlank(message = "Password cannot be empty")
    @Size(min = 10)
    private String password;
    
    public String getActivationCode() {
        return activationCode;
    }

    public String getRoles() { 
        return roleEntity.getName();
    }
    
    public void setActivationCode(String activationCode) {
        this.activationCode = activationCode;
    }

    @ManyToOne
    @JoinColumn(name = "role_id")
    private RoleEntity roleEntity;
}

Ответы (1 шт):

Автор решения: Gringo

здравствуйте Principal principal это очень сжатая информация о юзере . попробуйте вот так

@GetMapping("/")
  public String daoTestPage(Principal principal) {
 User user = userService.findByUsername(principal.getName()).orElseThrow(() -> new RuntimeException("unable to fing user by username: " + principal.getName()));
return "authenticated: " + user.getUsername() + " : " + user.getEmail() + " : "  + user.getId();
    }
→ Ссылка