1

我正在使用 Spring Boot 开发应用程序,我只想在返回客户端时忽略一个字段,但一个端点除外。

public class MyJwt {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Lob
@JsonIgnore
private String jwt;
private String reminderKey;
private String userAccountId;
private String clientKey;
private Timestamp createdDate;
private Timestamp expirationDate;
private byte statusCode;

如何仅为一个端点向客户端公开 jwt?谢谢

4

1 回答 1

2

看看JSON 视图。有了它,您可以知道每个视图中要包含哪些属性。您可以有 2 个视图:

public class Views {
    public static class Public {
    }

    public static class Internal extends Public {
    }
}

那么你的模型应该如下所示:

@JsonView(Views.Public.class)
public class MyJwt {

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Long id;
  @Lob
  @JsonView(Views.Internal.class)
  private String jwt;
  private String reminderKey;
  private String userAccountId;
  private String clientKey;
  private Timestamp createdDate;
  private Timestamp expirationDate;
  private byte statusCode;
}

然后在您的端点中,您将使用@JsonView(Views.Public.class)除了应该包含的端点,您应该jwt在其上使用@JsonView(Views.Internal.class).

于 2021-10-07T11:49:36.773 回答