【问题标题】:Jackson @JsonIgnore fields based on spring security roles基于 Spring 安全角色的 Jackson @JsonIgnore 字段
【发布时间】:2016-06-04 03:35:20
【问题描述】:

在我所有的 Spring REST Web 应用程序中,我有很多域对象和 DTO。

我需要根据发出请求的用户的 spring 安全角色过滤一些域对象或 DTO 字段。我希望 Jackson 根据尝试访问资源的用户的 Spring GrantedAuthorities 角色过滤输出 JSON 以允许/禁止序列化特定的类字段。

我不能为每个不同的视图组合创建新的 DTO,因为它会一团糟。

我找到了这个解决方案:
Spring 3.2: Filtering Jackson JSON output based on Spring Security role
但它不起作用,过滤器只应用一次,当第一个用户登录时。然后所有其他用户获得相同的过滤,无论他们的角色是什么。

在这篇博文中,我无法比 Ray Holland 更好地解释我的问题:
http://jackson-users.ning.com/forum/topics/jackson-custom-serialization
这是我试图解决几天的完全相同的问题。

到目前为止,我找不到一个干净的方法来做到这一点。

【问题讨论】:

  • 创建多个具有不同视图的映射器,配置后会有帮助

标签: json spring serialization jackson


【解决方案1】:

spring项目中最好使用@JsonView(example)

如果@JsonView 还不够,没有简单的解决方案。定义特定的类(接口)来实现@JsonIgnoreProperties@JsonFilter是不可避免的( 看看Jackson: Skip Objects Conditionally)

【讨论】:

    猜你喜欢
    • 2017-04-04
    • 2014-03-26
    • 2014-07-20
    • 1970-01-01
    • 2013-03-21
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 2015-01-11
    相关资源
    最近更新 更多