[jboss-user] [JBoss Cache: Core Edition] - Jboss Cache + Spring Security

spezam_ do-not-reply at jboss.com
Mon Jul 27 19:22:15 EDT 2009


Hello,
I'm currently stuck on this problem.

We have a two 4.2.3.GA servers cluster setup, configured with:

- Apache2 + mod_jk with sticky session
- JDK 1.6.0_07
- JbossCache 1.4.1.SP13 configured as a TreeCache
- Spring Security Framework 2.5.5


The two nodes see each other, and the cluster is synced. When a session is created I can see the replication on the other node, through the JMX console.

The problem occurs when one of the nodes go down and the application tries to recover the session. The application throws the following exception:

21:56:10,078 ERROR [JBossCacheService] loadSession(): id: UjsgmlsqnWDTJh6aOmxz exception occurred during deserialization
java.lang.ArrayStoreException: org.springframework.security.GrantedAuthorityImpl
at java.io.ObjectInputStream.readArray(ObjectInputStr eam.java:1667)
at java.io.ObjectInputStream.readObject0(ObjectInputS tream.java:1323)
at java.io.ObjectInputStream.defaultReadFields(Object InputStream.java:1947)
at java.io.ObjectInputStream.readSerialData(ObjectInp utStream.java:1871)
at java.io.ObjectInputStream.readOrdinaryObject(Objec tInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputS tream.java:1329)
at java.io.ObjectInputStream.defaultReadFields(Object InputStream.java:1947)
at java.io.ObjectInputStream.readSerialData(ObjectInp utStream.java:1871)
at java.io.ObjectInputStream.readOrdinaryObject(Objec tInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputS tream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputSt ream.java:351)
at java.util.concurrent.ConcurrentHashMap.readObject( ConcurrentHashMap.java:1275)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeReadObject(ObjectS treamClass.java:974)
at java.io.ObjectInputStream.readSerialData(ObjectInp utStream.java:1849)
at java.io.ObjectInputStream.readOrdinaryObject(Objec tInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputS tream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputSt ream.java:351)
at org.jboss.web.tomcat.service.session.SessionBasedC lusteredSession.readExternal(SessionBasedClustered Session.java:154)
at org.jboss.web.tomcat.service.session.JBossCacheSer vice.loadSession(JBossCacheService.java:284)
at org.jboss.web.tomcat.service.session.JBossCacheMan ager.loadSession(JBossCacheManager.java:1041)
at org.jboss.web.tomcat.service.session.JBossCacheMan ager.findSession(JBossCacheManager.java:813)
at org.apache.catalina.connector.Request.doGetSession (Request.java:2283)
at org.apache.catalina.connector.Request.getSession(R equest.java:2075)
at org.jboss.web.tomcat.service.session.JvmRouteValve .checkJvmRoute(JvmRouteValve.java:91)
at org.jboss.web.tomcat.service.session.JvmRouteValve .invoke(JvmRouteValve.java:81)
at org.jboss.web.tomcat.security.JaccContextValve.inv oke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.sso.ClusteredSingleSi gnOn.invoke(ClusteredSingleSignOn.java:638)
at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:262)
at org.apache.coyote.ajp.AjpAprProcessor.process(AjpA prProcessor.java:419)
at org.apache.coyote.ajp.AjpAprProtocol$AjpConnection Handler.process(AjpAprProtocol.java:378)
at org.apache.tomcat.util.net.AprEndpoint$SocketWithO ptionsProcessor.run(AprEndpoint.java:1928)
at java.util.concurrent.ThreadPoolExecutor$Worker.run Task(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)



I'm not sure it's a spring security problem. We tried to debug the application and apparently the session content is empty.

Anyone experienced the same problem or have an idea of the cause?


Thanks in advance for your reply.
Mattie



View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4246308#4246308

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4246308



More information about the jboss-user mailing list