spring 如何检索除密码外的所有用户信息

7gcisfzg  于 2023-02-03  发布在  Spring
关注(0)|答案(1)|浏览(98)

我在this tutorial之后实现了一个基本的JPA身份验证。
我想创建一个端点/mydetails来显示用户信息(配置文件信息)。
我尝试过的:

@GetMapping("/mydetails")
public Optional<User> getUser(HttpServletRequest request) {
    Optional<User> foundUser = Optional.ofNullable(userRepo.getUserByUsername(request.getUserPrincipal().getName()));
    return foundUser;
}

结果:

{
  "id":1,
  "username":"name.surname@companyname.com",
  "password":"$2a$10$7YzUO6scaC06LV6IgOsSXetFm4/U0WM.UZykhRfQcJBzKacyZFMK",
  "first_name":"John",
  "last_name":"Walker",
  "organization_name":"ABC",
  "role":"Admin",
  "credibility_rating":"100"
}

问题是,这字面上采取了所有的信息,我想要的一切,除了密码。
如何阻止响应发送密码信息?
我完全是Spring的新手,已经很多年没有使用Java了。
任何见解都将不胜感激。

whitzsjs

whitzsjs1#

看起来你在谈论一个返回JSON的REST控制器。在默认配置下,Spring Boot使用Jackson将对象转换为JSON。最简单的修复方法是告诉Jackson ignore你的User类中的password字段:

public class User {
    ...
    @JsonIgnore
    private String password;
    ...
}

请参阅本文了解更多信息。

相关问题