[英]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.