Ho bisogno di salvare e caricare oggetti da redis.jackson deserializzare l'oggetto con l'elenco dell'interfaccia della molla
L'oggetto contiene l'elenco dei GrantedAuthority (tra l'altro) che è un'interfaccia:
public class UserAccountAuthentication implements Authentication {
private List<GrantedAuthority> authorities;
private boolean authenticated = true;
...
}
Jackson serializza con successo l'oggetto, ma non riesce a deserializzare con la seguente eccezione:
abstract types can only be instantiated with additional type information
I so che posso specificare il tipo aggiungendo:
@JsonTypeInfo(
B Non posso farlo in questo caso perché GrantedAuthority
è un'interfaccia di Spring e non posso cambiarlo.
il JSON serializzato è:
{
"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
}
astratto GrantedAuthority
sia riempito solo di SimpleGrantedAuthority
.
così ho provato:
objectMapper.registerSubtypes(SimpleGrantedAuthority.class);
e ancora senza fortuna.
Hai visto se il vostro getter e setter sono scritti correttamente? –
non ci sono getter e setter è una lista privata con cui l'oggetto lavora internamente. – Mike