我需要保存和加載對象從redis。傑克遜反序列化與春天的界面列表對象
對象包含的GrantedAuthority的名單(除其他事項外),這是一個接口:
public class UserAccountAuthentication implements Authentication {
private List<GrantedAuthority> authorities;
private boolean authenticated = true;
...
}
傑克遜成功序列化對象,但失敗並出現以下異常反序列化:
abstract types can only be instantiated with additional type information
我知道我可以指定類型加入:
@JsonTypeInfo(
B ut我不能這樣做,因爲GrantedAuthority
是Spring的一個接口,我不能改變它。
序列化JSON是:
{
"authorities": [
{
"authority": "ROLE_NORMAL_USER"
}
],
"authenticated": true,
"securityToken": {
"expiration": 1458635906853,
"token": "sxKi3Pddfewl2rgpatVE7KiSR5qGmhpGl0spiHUTLAAW8zuoLFE0VLFYcfk72VLnli66fcVmb8aK9qFavyix3bOwgp1DRGtGacPI",
"roles": [
"ROLE_NORMAL_USER"
],
"expired": false,
"expirationDateFormatted": "2016-03-22 08:38:26.853 UTC"
},
"name": "admin",
"expired": false
}
抽象GrantedAuthority
只充滿了SimpleGrantedAuthority
。
所以我嘗試:
objectMapper.registerSubtypes(SimpleGrantedAuthority.class);
,仍然沒有運氣。
你看看你的getter和setter方法是正確寫入? –
沒有getter和setter它的對象在內部工作的私人列表。 – Mike