簡體   English   中英

java @JsonProperty 中的關聯關系中隱藏敏感數據

[英]Hide sensitive data in an association relationship in java @JsonProperty

如何在此示例中隱藏一些敏感數據。 我正在 rest 客戶端(郵遞員)中測試 API,當我調用 Api 賬單列表時,我想隱藏一些數據。 在 BillsDto 中,我想隱藏用戶名、密碼和用戶年齡字段。 是否可以在我的 BillsDto class 中執行此操作(而不是在 UserDto 中)。 我知道我可以使用@JsonProperty 隱藏一些字段,但是如何隱藏屬於另一個 class 的某些字段?

***BillsDto***

public class BillsDto {

private String numberBills;
private double amount;
private Date deadlinePayment
private UserDto user;  // try to hide username, password, age from BillsDto

}

***UserDto***

public class UserDto {

private String number_id;
private String username;
private String password;
private String firstName;
private String lastName;
private String age;
}

我知道我可以使用@JsonProperty隱藏一些字段,但是如何隱藏屬於另一個 class 的一些字段?

您在某處將UserDto用作嵌套 object 的事實不會更改您可以通過UserDto中的數據綁定注釋表達的序列化策略。

如果您可以更改UserDto ,請在序列化期間要隱藏的字段上應用@JsonProperty並將其屬性access設置為JsonProperty.Access.WRITE_ONLY

public class UserDto {
    private String number_id;
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private String username;
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private String password;
    private String firstName;
    private String lastName;
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private String age;
}

如果出於某種原因,您只想通過編輯BillsDto來實現此目的,那么您可以為 UserDto 實現自定義序列化程序並通過使用UserDto @JsonSerialize它。 但是為了確保您不會在某處泄露敏感數據,最好在一個地方應用此策略 - 在UserDto中,因為您或您的一位同事可能只是忘記在某些使用的類中使用@JsonSerialize UserDto

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM