我没有成功尝试有条件地和动态地选择哪个属性进行序列化以响应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