问题描述:这是在springboot整合shiro的时候遇到的错误。
org.apache.shiro.session.UnknownSessionException: org.crazycake.shiro.exception.SerializationException: serialize error, object=org.apache.shiro.session.mgt.SimpleSession,id=login_token_059abe24-c36f-457d-8831-066baa44f842
错误原因:session序列化过程中遇到的错误。
解决方法:session在序列化的过程中需要一个id,而这个id是null的话就会序列化失败。
调用登录接口的时候,传入的UserEntity对象,session序列化的过程中会找到该实体类的id,而UserEntity本身没有序列化,进而导致session序列化失败。作者误以为lombok的@data标签同时会对实体类进行可序列化操作。查过后发现并非如此:@Data:注解在类上,相当于同时使用了@ToString、@EqualsAndHashCode、@Getter、@Setter和@RequiredArgsConstrtor。因此实体类需要实现Serializable接口来支持序列化。