我沒有成功嘗試有條件地和動態地選擇哪個屬性進行序列化以響應Jersey(使用Jackson)的每個請求。這背後的想法是安全地訪問REST API中對象的屬性。Jackson和Jersey的有條件地產序列號
我有幾個對象在API調用中返回,這些對象應根據經過身份驗證的用戶顯示/隱藏字段。
例如,可以說我有一個對象Car
public class Car implements Serializable {
private Long id;
private String VIN;
private String color;
...
}
比方說,如果與ROLE_ADMIN
的用戶進行身份驗證,所有屬性都應該歸還,但如果沒有隻有一個用戶登錄前兩個需要顯示。
我在考慮構建基於註釋的東西。喜歡的東西:
public class Car implements Serializable {
private Long id;
private String VIN;
@Secured({AccessRole.ROLE_ADMIN})
private String color;
...
}
在這種情況下,只應如果請求的用戶的訪問角色通過註釋傳遞的那些匹配返回的color
財產。
但我無法弄清楚我應該在哪裏實現這個邏輯。
我想實現的是一種@JsonIgnore
但這是有條件的和動態的。我迄今發現的所有解決方案都是靜態的。
這甚至可能嗎?
你看過'@ JsonView'嗎? – dnault