Spymemcached - 身份验证对象的不可序列化对象

Spymemcached - Non-serializable object for Authentication object

我正在为 java 试用 Spymemcached。

我已经成功创建了一个 MemCachedClient,我正在尝试这样做:

mc.set(令牌,0,身份验证);

Token 是一个字符串,身份验证对象是 Spring 扩展序列化的身份验证的接口:http://docs.spring.io/spring-security/site/docs/current/apidocs/org/springframework/security/core/Authentication.html

这将引发不可序列化的对象异常:

{
  "timestamp": 1438463381311,
  "status": 500,
  "error": "Internal Server Error",
  "exception": "java.lang.IllegalArgumentException",
  "message": "Non-serializable object",
  "path": "/auth"
}

当我尝试在 Ehcache 中保存令牌和身份验证对象时,它工作得很好,键和值也必须是可序列化的:

Ehcache.put(新元素(令牌,身份验证));

有谁知道为什么它不能与 spymemcached 一起使用?我正在使用:

compile 'net.spy:spymemcached:2.12.0'

好的 - 我明白了。出于某种原因,流入 Authentication 对象的 classes 之一不可序列化。要使 Authentication 可序列化,所有进入我的 Authentication 对象的 classes 都需要是可序列化的。

我刚刚为那个特定对象实现了 Serializable class 并且 spymemcached 工作了。