org.apache.shiro.util.bytesource 什么类型

2024-12-21 23:22:45
推荐回答(1个)
回答1:

java.io.NotSerializableException: org.apache.shiro.util.SimpleByteSource

是由于 SimpleByteSource 没有实现序列化接口导致。
在集成redis缓存, 开启缓存认证时候报错



我的解决方案 写一个新类去继承SimpleByteSource,并实现序列化接口
public class MySimpleByteSource extends SimpleByteSource implements Serializable {

public MySimpleByteSource(byte[] bytes) {
super(bytes);
// TODO Auto-generated constructor stub
}

}
在处理认证中
protected AuthenticationInfo doGetAuthenticationInfo(
AuthenticationToken token) throws AuthenticationException {
return new SimpleAuthenticationInfo(model, user.getPassword(), new MySimpleByteSource(salt), getName());
}