目录

net.sf.ehcache.CacheException-java.io.OptionalDataException

目录

net.sf.ehcache.CacheException: java.io.OptionalDataException

org.apache.shiro.cache.CacheException: org.apache.shiro.cache.CacheException: net.sf.ehcache.CacheException: java.io.OptionalDataException

异常信息:

2021-02-20 16:34:24,289 WARN [org.apache.shiro.authc.AbstractAuthenticator] - Authentication failed for token submission [com.idra.sys.security.UsernamePasswordToken - admin, rememberMe=false (192.168.10.202)].  Possible unexpected error? (Typical or expected login exceptions should extend from AuthenticationException).

org.apache.shiro.cache.CacheException: org.apache.shiro.cache.CacheException: net.sf.ehcache.CacheException: java.io.OptionalDataException

at org.apache.shiro.cache.ehcache.EhCache.values(EhCache.java:182)

at org.apache.shiro.session.mgt.eis.CachingSessionDAO.getActiveSessions(CachingSessionDAO.java:345)

at com.idra.common.security.shiro.session.CacheSessionDAO.getActiveSessions(CacheSessionDAO.java:144)

at com.idra.common.security.shiro.session.CacheSessionDAO.getActiveSessions(CacheSessionDAO.java:128)

at com.idra.sys.security.SystemAuthorizingRealm.doGetAuthenticationInfo(SystemAuthorizingRealm.java:63)

at org.apache.shiro.realm.AuthenticatingRealm.getAuthenticationInfo(AuthenticatingRealm.java:568)

at org.apache.shiro.authc.pam.ModularRealmAuthenticator.doSingleRealmAuthentication(ModularRealmAuthenticator.java:180)

at org.apache.shiro.authc.pam.ModularRealmAuthenticator.doAuthenticate(ModularRealmAuthenticator.java:267)

at org.apache.shiro.authc.AbstractAuthenticator.authenticate(AbstractAuthenticator.java:198)

at org.apache.shiro.mgt.AuthenticatingSecurityManager.authenticate(AuthenticatingSecurityManager.java:106)

at org.apache.shiro.mgt.DefaultSecurityManager.login(DefaultSecurityManager.java:270)

at org.apache.shiro.subject.support.DelegatingSubject.login(DelegatingSubject.java:256)

at org.apache.shiro.web.filter.authc.AuthenticatingFilter.executeLogin(AuthenticatingFilter.java:53)

at org.apache.shiro.web.filter.authc.FormAuthenticationFilter.onAccessDenied(FormAuthenticationFilter.java:154)

at org.apache.shiro.web.filter.AccessControlFilter.onAccessDenied(AccessControlFilter.java:133)

at org.apache.shiro.web.filter.AccessControlFilter.onPreHandle(AccessControlFilter.java:162)

at org.apache.shiro.web.filter.PathMatchingFilter.isFilterChainContinued(PathMatchingFilter.java:203)

at org.apache.shiro.web.filter.PathMatchingFilter.preHandle(PathMatchingFilter.java:178)

at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:131)

at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)

at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)

at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)

at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)

at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)

at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)

at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)

at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)

at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)

at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)

at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1137)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:319)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:748)

Caused by: org.apache.shiro.cache.CacheException: net.sf.ehcache.CacheException: java.io.OptionalDataException

at org.apache.shiro.cache.ehcache.EhCache.get(EhCache.java:85)

at org.apache.shiro.cache.ehcache.EhCache.values(EhCache.java:172)

… 50 more

Caused by: net.sf.ehcache.CacheException: java.io.OptionalDataException

at net.sf.ehcache.store.disk.DiskStorageFactory.retrieve(DiskStorageFactory.java:891)

at net.sf.ehcache.store.disk.Segment.decodeHit(Segment.java:182)

at net.sf.ehcache.store.disk.Segment.get(Segment.java:225)

at net.sf.ehcache.store.disk.DiskStore.fault(DiskStore.java:210)

at net.sf.ehcache.store.CacheStore$4.call(CacheStore.java:198)

at net.sf.ehcache.store.CacheStore$4.call(CacheStore.java:192)

at net.sf.ehcache.store.cachingtier.OnHeapCachingTier$Fault.get(OnHeapCachingTier.java:334)

at net.sf.ehcache.store.cachingtier.OnHeapCachingTier$Fault.access$200(OnHeapCachingTier.java:311)

at net.sf.ehcache.store.cachingtier.OnHeapCachingTier.get(OnHeapCachingTier.java:175)

at net.sf.ehcache.store.CacheStore.get(CacheStore.java:192)

at net.sf.ehcache.Cache.get(Cache.java:1751)

at org.apache.shiro.cache.ehcache.EhCache.get(EhCache.java:73)

… 51 more

Caused by: java.io.OptionalDataException

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1592)

at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)

at java.util.HashMap.readObject(HashMap.java:1407)

at sun.reflect.GeneratedMethodAccessor53.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1170)

at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2177)

at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2068)

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)

at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)

at org.apache.shiro.session.mgt.SimpleSession.readObject(SimpleSession.java:500)

at sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1170)

at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2177)

at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2068)

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)

at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2286)

at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:560)

at net.sf.ehcache.Element.readObject(Element.java:884)

at sun.reflect.GeneratedMethodAccessor52.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1170)

at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2177)

at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2068)

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)

at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)

at net.sf.ehcache.store.disk.DiskStorageFactory.read(DiskStorageFactory.java:371)

at net.sf.ehcache.store.disk.DiskStorageFactory.retrieve(DiskStorageFactory.java:887)

… 62 more

2021-02-20 16:34:24,301 ERROR [com.idra.sys.security.FormAuthenticationFilter] - org.apache.shiro.authc.AuthenticationException: Authentication failed for token submission [com.idra.sys.security.UsernamePasswordToken - admin, rememberMe=false (192.168.10.202)].  Possible unexpected error? (Typical or expected login exceptions should extend from AuthenticationException).

at org.apache.shiro.authc.AbstractAuthenticator.authenticate(AbstractAuthenticator.java:214)

at org.apache.shiro.mgt.AuthenticatingSecurityManager.authenticate(AuthenticatingSecurityManager.java:106)

at org.apache.shiro.mgt.DefaultSecurityManager.login(DefaultSecurityManager.java:270)

at org.apache.shiro.subject.support.DelegatingSubject.login(DelegatingSubject.java:256)

at org.apache.shiro.web.filter.authc.AuthenticatingFilter.executeLogin(AuthenticatingFilter.java:53)

at org.apache.shiro.web.filter.authc.FormAuthenticationFilter.onAccessDenied(FormAuthenticationFilter.java:154)

at org.apache.shiro.web.filter.AccessControlFilter.onAccessDenied(AccessControlFilter.java:133)

at org.apache.shiro.web.filter.AccessControlFilter.onPreHandle(AccessControlFilter.java:162)

at org.apache.shiro.web.filter.PathMatchingFilter.isFilterChainContinued(PathMatchingFilter.java:203)

at org.apache.shiro.web.filter.PathMatchingFilter.preHandle(PathMatchingFilter.java:178)

at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:131)

at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)

at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)

at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)

at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)

at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)

at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)

at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)

at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)

at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)

at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)

at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1137)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:319)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:748)

Caused by: org.apache.shiro.cache.CacheException: org.apache.shiro.cache.CacheException: net.sf.ehcache.CacheException: java.io.OptionalDataException

at org.apache.shiro.cache.ehcache.EhCache.values(EhCache.java:182)

at org.apache.shiro.session.mgt.eis.CachingSessionDAO.getActiveSessions(CachingSessionDAO.java:345)

at com.idra.common.security.shiro.session.CacheSessionDAO.getActiveSessions(CacheSessionDAO.java:144)

at com.idra.common.security.shiro.session.CacheSessionDAO.getActiveSessions(CacheSessionDAO.java:128)

at com.idra.sys.security.SystemAuthorizingRealm.doGetAuthenticationInfo(SystemAuthorizingRealm.java:63)

at org.apache.shiro.realm.AuthenticatingRealm.getAuthenticationInfo(AuthenticatingRealm.java:568)

at org.apache.shiro.authc.pam.ModularRealmAuthenticator.doSingleRealmAuthentication(ModularRealmAuthenticator.java:180)

at org.apache.shiro.authc.pam.ModularRealmAuthenticator.doAuthenticate(ModularRealmAuthenticator.java:267)

at org.apache.shiro.authc.AbstractAuthenticator.authenticate(AbstractAuthenticator.java:198)

… 42 more

Caused by: org.apache.shiro.cache.CacheException: net.sf.ehcache.CacheException: java.io.OptionalDataException

at org.apache.shiro.cache.ehcache.EhCache.get(EhCache.java:85)

at org.apache.shiro.cache.ehcache.EhCache.values(EhCache.java:172)

… 50 more

Caused by: net.sf.ehcache.CacheException: java.io.OptionalDataException

at net.sf.ehcache.store.disk.DiskStorageFactory.retrieve(DiskStorageFactory.java:891)

at net.sf.ehcache.store.disk.Segment.decodeHit(Segment.java:182)

at net.sf.ehcache.store.disk.Segment.get(Segment.java:225)

at net.sf.ehcache.store.disk.DiskStore.fault(DiskStore.java:210)

at net.sf.ehcache.store.CacheStore$4.call(CacheStore.java:198)

at net.sf.ehcache.store.CacheStore$4.call(CacheStore.java:192)

at net.sf.ehcache.store.cachingtier.OnHeapCachingTier$Fault.get(OnHeapCachingTier.java:334)

at net.sf.ehcache.store.cachingtier.OnHeapCachingTier$Fault.access$200(OnHeapCachingTier.java:311)

at net.sf.ehcache.store.cachingtier.OnHeapCachingTier.get(OnHeapCachingTier.java:175)

at net.sf.ehcache.store.CacheStore.get(CacheStore.java:192)

at net.sf.ehcache.Cache.get(Cache.java:1751)

at org.apache.shiro.cache.ehcache.EhCache.get(EhCache.java:73)

… 51 more

Caused by: java.io.OptionalDataException

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1592)

at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)

at java.util.HashMap.readObject(HashMap.java:1407)

at sun.reflect.GeneratedMethodAccessor53.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1170)

at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2177)

at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2068)

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)

at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)

at org.apache.shiro.session.mgt.SimpleSession.readObject(SimpleSession.java:500)

at sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1170)

at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2177)

at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2068)

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)

at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2286)

at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:560)

at net.sf.ehcache.Element.readObject(Element.java:884)

at sun.reflect.GeneratedMethodAccessor52.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1170)

at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2177)

at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2068)

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)

at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)

at net.sf.ehcache.store.disk.DiskStorageFactory.read(DiskStorageFactory.java:371)

at net.sf.ehcache.store.disk.DiskStorageFactory.retrieve(DiskStorageFactory.java:887)

… 62 more

ehcache配置文件:ehcache-local.xml

<ehcache xmlns:xsi=“

xsi:noNamespaceSchemaLocation=“

updateCheck=“false”

name=“defaultCache”>

<defaultCache eternal=“false”

maxElementsInMemory=“1000”

overflowToDisk=“false”

diskPersistent=“false”

timeToIdleSeconds=“0”

timeToLiveSeconds=“600”

memoryStoreEvictionPolicy=“LFU” />

<cache name=“myCache”

eternal=“false”

maxElementsInMemory=“500”

overflowToDisk=“false”

diskPersistent=“false”

timeToIdleSeconds=“0”

timeToLiveSeconds=“300”

memoryStoreEvictionPolicy=“LFU” />

<cache name=“activeSessionsCache” maxEntriesLocalHeap=“10000” overflowToDisk=“true”

eternal=“true” timeToLiveSeconds=“0” timeToIdleSeconds=“0”

diskPersistent=“true” diskExpiryThreadIntervalSeconds=“600”/>

问题解决:

找到缓存目录,删除缓存文件,重启tomcat(把tomcat路径下temp文件夹中shiro产生的缓存文件删除,然后重新运行)

我的缓存目录是tomcat/temp文件夹下( 见上面代码块中红色的位置 )

[


temp]# ll

-rw-r–r–. 1 root root 1321166 2月  20 17:32 active%0053essions%0043ache.data

-rw-r–r–. 1 root root    2325 2月  20 17:00 sys%0043ache.data

-rw-r–r–. 1 root root    3674 2月  20 17:00 user%0043ache.data

[


temp]# pwd

/thirdtools/apache-tomcat-7.0.94/temp

问题分析:

异常

Caused by: org.apache.shiro.cache.CacheException: org.apache.shiro.cache.CacheException: net.sf.ehcache.CacheException: java.io.OptionalDataException

at org.apache.shiro.cache.ehcache.EhCache.values(EhCache.java:182)

at org.apache.shiro.session.mgt.eis.CachingSessionDAO.getActiveSessions(CachingSessionDAO.java:345)

at com.idra.common.security.shiro.session.CacheSessionDAO.getActiveSessions(CacheSessionDAO.java:144)

at com.idra.common.security.shiro.session.CacheSessionDAO.getActiveSessions(CacheSessionDAO.java:128)

抛异常代码位置 (我用的是 shiro-core-1.2.5.jar)

package org.apache.shiro.session.mgt.eis;

public abstract class CachingSessionDAO extends AbstractSessionDAO implements CacheManagerAware {

略……

/**

  • Returns all active sessions in the system.

  • This implementation merely returns the sessions found in the activeSessions cache.  Subclass implementations

  • may wish to override this method to retrieve them in a different way, perhaps by an RDBMS query or by other

  • means.

  • @return the sessions found in the activeSessions cache.

*/

public Collection getActiveSessions() {

Cache<Serializable, Session> cache = getActiveSessionsCacheLazy();

if (cache != null) {

return cache.values();

} else {

return Collections.emptySet();

}

}

}

异常所在行

https://i-blog.csdnimg.cn/blog_migrate/ab99a5914f22869c104cc1ea629f4eba.png