getter上的Java Jackson序列化句柄抛出异常

时间:2017-07-09 17:59:19

标签: java json spring-mvc jackson

我使用的外部库有一个方法:

public class CustomUserDetails implements UserDetails {

    private final User principal;
    private final Collection<GrantedAuthority> authorities;

    //constructor, getters, setters

    @Override
    public String getPassword() {
        throw new UnsupportedOperationException("Not allowed");
    }
}

我有一个@RequestMapping,它返回该对象的一个​​实例:

@RequestMapping(value = "/authorities", method = GET)
    public ResponseEntity getAuthorities() {
        return new ResponseEntity<>(authenticatedUser.getAuthentication(), HttpStatus.OK); //getAuthentication returns CustomUserDetails instance
    }

我得到了 org.springframework.http.converter.HttpMessageNotWritableException: Could not write content: Not allowed

我该如何处理? Ingore或为此属性设置一些默认值。

UPD 我无法将@JsonIngore添加到该类,因为它不是我的库,我无法访问其来源。

1 个答案:

答案 0 :(得分:0)

您可以在JsonIgnore方法之上编写getPassword()注释。这样您就可以告诉Jackon不要尝试对该字段进行序列化

https://fasterxml.github.io/jackson-annotations/javadoc/2.4/com/fasterxml/jackson/annotation/JsonIgnore.html