私はレディスからオブジェクトを保存して読み込む必要があります。ジャックソンは、スプリングのインターフェースのリストを持つオブジェクトを逆直列化します
オブジェクトがインタフェースである(とりわけ)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を追加してタイプを指定できることを知っていますこの場合、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