Quantcast
Channel: Active questions tagged redis+java - Stack Overflow
Viewing all articles
Browse latest Browse all 2204

Tomcat with RedissonSessionManager cannot deserialize SecurityContextImpl

$
0
0

We have a legacy JEE Application which is using spring-security-web 4.2.8 and we try to make it cloud-enabled.

Therefore we try to share the sessions via redis.

So we added the jars to the lib folder of our tomcat 8.5.51:

  1. redisson-tomcat-8-3.13.1.jar
  2. redisson-all-3.13.1.jar

And configured the manager in context.xml

<Manager className="org.redisson.tomcat.RedissonSessionManager"          configPath="${catalina.base}/redisson.conf" readMode="REDIS" updateMode="DEFAULT"/>

the redisson.conf contains this

singleServerConfig:  address: "redis://127.0.0.1:${REDIS_PORT:-6379}"

and i started a local redis server

docker run --rm -ti -p 6379:6379 redis

the server starts up fine and stores the session in redis, but as soon i login spring stores a SecurityContextImpl in the session, which leeds to this error

Caused by: org.redisson.client.RedisException: Unexpected exception while processing command    at org.redisson.command.CommandAsyncService.convertException(CommandAsyncService.java:350)    at org.redisson.command.CommandAsyncService.get(CommandAsyncService.java:147)    at org.redisson.RedissonObject.get(RedissonObject.java:90)    at org.redisson.RedissonMap.get(RedissonMap.java:267)    at org.redisson.tomcat.RedissonSession.getAttribute(RedissonSession.java:111)    at org.apache.catalina.session.StandardSessionFacade.getAttribute(StandardSessionFacade.java:103)    at org.springframework.security.web.context.HttpSessionSecurityContextRepository.readSecurityContextFromSession(HttpSessionSecurityContextRepository.java:182)    at org.springframework.security.web.context.HttpSessionSecurityContextRepository.loadContext(HttpSessionSecurityContextRepository.java:112)    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:100)    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)    at org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:151)    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)    ... 13 moreCaused by: java.io.IOException: java.lang.ClassNotFoundException: org.springframework.security.core.context.SecurityContextImpl    at org.redisson.codec.MarshallingCodec$3.decode(MarshallingCodec.java:159)    at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:375)    at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:196)    at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:134)    at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:104)    at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:501)    at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276)    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)    ... 1 moreCaused by: java.lang.ClassNotFoundException: org.springframework.security.core.context.SecurityContextImpl    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)    at java.lang.ClassLoader.loadClass(ClassLoader.java:419)    at java.lang.ClassLoader.loadClass(ClassLoader.java:352)    at java.lang.Class.forName0(Native Method)    at java.lang.Class.forName(Class.java:348)    at org.jboss.marshalling.AbstractClassResolver.loadClass(AbstractClassResolver.java:129)    at org.jboss.marshalling.AbstractClassResolver.resolveClass(AbstractClassResolver.java:110)    at org.jboss.marshalling.river.RiverUnmarshaller.doReadClassDescriptor(RiverUnmarshaller.java:1033)    at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1366)    at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:283)    at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:216)    at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:41)    at org.redisson.codec.MarshallingCodec$3.decode(MarshallingCodec.java:157)    ... 23 more

Any idea what we can do about it?


Viewing all articles
Browse latest Browse all 2204

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>