HTTP调用获取一个UserDetails报错。
来源:8-1 课程总结
他门说这就是人生
2019-12-13
错误信息:
feign.codec.DecodeException: Type definition error: [simple type, class org.springframework.security.core.GrantedAuthority]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `org.springframework.security.core.GrantedAuthority` (no Creators, like default construct, exist): abstract types either need to be mapped to concrete types, have custom deserializer, or contain additional type information
at [Source: (PushbackInputStream); line: 1, column: 954] (through reference chain: com.gaojingsi.record.common.domain.vo.SimpleResponse["data"]->com.gaojingsi.record.common.domain.SysUser["authorities"]->java.util.ArrayList[2])
我是在授权服务器用Feign去获取用户服务里的UserDetails实体,把fallback去掉以后,看到了错误,如上。
仿佛原因是我的UserDetails里的权限字段(public Collection<? extends GrantedAuthority> getAuthorities()
)没法反序列化到实体里。想这个情况应该怎么办呢?好像很复杂。
1回答
-
我要当学霸丶
2019-12-14
我今天也遇到了,原因很简单,因为GrantedAuthority没有无参构造方法,只要新写一个实体类继承GrantedAuthority,然后你的User里的权限泛型是你新写的实体就解决了
132019-12-18
相似问题