I tried to run CAS HA configuration. My configuration is as follows:
a. 1 Apache as software load balancer
b. 3 Tomcat instances as CAS clustering
c. 1 Tomact to deploy my test application, which will use proxy authentication.
d. 1 Memecached instance run as TicketRegisty
If only one Tomcat is active in CAS clustering, everything works fine.
But if there are 2 Tomcat are active in CAS clustering, on one Tomcat instance console I can see
TGT and ST were created successfully. On second Tomcat instance console, I had the following errors when the test app tried to validate ST/to create TGT.
Any helps are appreciated.
2015-12-21 19:46:04,640 ERROR [org.jasig.cas.ticket.registry.MemCacheTicketRegis
RuntimeException: Exception waiting for value] java.lang.RuntimeException: Excep
tion waiting for value
at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1237)
at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1257)
at org.jasig.cas.ticket.registry.MemCacheTicketRegistry.getTicket_around
Body4(MemCacheTicketRegistry.java:200)
at org.jasig.cas.ticket.registry.MemCacheTicketRegistry$AjcClosure5.run(
MemCacheTicketRegistry.java:1)
at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:
149)
at org.jasig.inspektr.aspect.TraceLogAspect.traceMethod(TraceLogAspect.j
ava:44)
at org.jasig.cas.ticket.registry.MemCacheTicketRegistry.getTicket(MemCac
heTicketRegistry.java:200)
at org.jasig.cas.ticket.registry.AbstractTicketRegistry.getTicket_around
Body0(AbstractTicketRegistry.java:50)
at org.jasig.cas.ticket.registry.AbstractTicketRegistry$AjcClosure1.run(
AbstractTicketRegistry.java:1)
at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:
149)
at org.jasig.inspektr.aspect.TraceLogAspect.traceMethod(TraceLogAspect.j
ava:44)
at org.jasig.cas.ticket.registry.AbstractTicketRegistry.getTicket(Abstra
ctTicketRegistry.java:48)
at org.jasig.cas.CentralAuthenticationServiceImpl.getTicket_aroundBody12
(CentralAuthenticationServiceImpl.java:525)
at org.jasig.cas.CentralAuthenticationServiceImpl$AjcClosure13.run(Centr
alAuthenticationServiceImpl.java:1)
at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:
149)
at org.jasig.inspektr.aspect.TraceLogAspect.traceMethod(TraceLogAspect.j
ava:44)
at org.jasig.cas.CentralAuthenticationServiceImpl.getTicket(CentralAuthe
nticationServiceImpl.java:524)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflecti
on(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJo
inpoint(ReflectiveMethodInvocation.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
ReflectiveMethodInvocation.java:157)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invok
e(ExposeInvocationInterceptor.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
ReflectiveMethodInvocation.java:179)
at com.ryantenney.metrics.spring.MeteredMethodInterceptor.invoke(Metered
MethodInterceptor.java:45)
at com.ryantenney.metrics.spring.MeteredMethodInterceptor.invoke(Metered
MethodInterceptor.java:32)
at com.ryantenney.metrics.spring.AbstractMetricMethodInterceptor.invoke(
AbstractMetricMethodInterceptor.java:59)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
ReflectiveMethodInvocation.java:179)
at com.ryantenney.metrics.spring.TimedMethodInterceptor.invoke(TimedMeth
odInterceptor.java:48)
at com.ryantenney.metrics.spring.TimedMethodInterceptor.invoke(TimedMeth
odInterceptor.java:34)
at com.ryantenney.metrics.spring.AbstractMetricMethodInterceptor.invoke(
AbstractMetricMethodInterceptor.java:59)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynami
cAopProxy.java:207)
at com.sun.proxy.$Proxy55.getTicket(Unknown Source)
at org.jasig.cas.audit.spi.TicketOrCredentialPrincipalResolver.resolveAr
gument(TicketOrCredentialPrincipalResolver.java:129)
at org.jasig.cas.audit.spi.TicketOrCredentialPrincipalResolver.resolveFr
omInternal(TicketOrCredentialPrincipalResolver.java:109)
at org.jasig.cas.audit.spi.TicketOrCredentialPrincipalResolver.resolveFr
om_aroundBody2(TicketOrCredentialPrincipalResolver.java:85)
at org.jasig.cas.audit.spi.TicketOrCredentialPrincipalResolver$AjcClosur
e3.run(TicketOrCredentialPrincipalResolver.java:1)
at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:
149)
at org.jasig.inspektr.aspect.TraceLogAspect.traceMethod(TraceLogAspect.j
ava:44)
at org.jasig.cas.audit.spi.TicketOrCredentialPrincipalResolver.resolveFr
om(TicketOrCredentialPrincipalResolver.java:85)
at org.jasig.inspektr.audit.AuditTrailManagementAspect.handleAuditTrail(
AuditTrailManagementAspect.java:136)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMet
hodWithGivenArgs(AbstractAspectJAdvice.java:621)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMet
hod(AbstractAspectJAdvice.java:610)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAro
undAdvice.java:68)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
ReflectiveMethodInvocation.java:168)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invok
e(ExposeInvocationInterceptor.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
ReflectiveMethodInvocation.java:179)
at com.ryantenney.metrics.spring.MeteredMethodInterceptor.invoke(Metered
MethodInterceptor.java:45)
at com.ryantenney.metrics.spring.MeteredMethodInterceptor.invoke(Metered
MethodInterceptor.java:32)
at com.ryantenney.metrics.spring.AbstractMetricMethodInterceptor.invoke(
AbstractMetricMethodInterceptor.java:59)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
ReflectiveMethodInvocation.java:179)
at com.ryantenney.metrics.spring.TimedMethodInterceptor.invoke(TimedMeth
odInterceptor.java:48)
at com.ryantenney.metrics.spring.TimedMethodInterceptor.invoke(TimedMeth
odInterceptor.java:34)
at com.ryantenney.metrics.spring.AbstractMetricMethodInterceptor.invoke(
AbstractMetricMethodInterceptor.java:59)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynami
cAopProxy.java:207)
at com.sun.proxy.$Proxy55.delegateTicketGrantingTicket(Unknown Source)
at org.jasig.cas.web.ServiceValidateController.handleRequestInternal(Ser
viceValidateController.java:152)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(
AbstractController.java:146)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.ha
ndle(SimpleControllerHandlerAdapter.java:50)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(Dispatch
erServlet.java:959)
at org.springframework.web.servlet.DispatcherServlet.doService(Dispatche
rServlet.java:893)
at org.springframework.web.servlet.FrameworkServlet.processRequest(Frame
workServlet.java:966)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServl
et.java:857)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkSer
vlet.java:842)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52
)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
at org.jasig.cas.security.RequestParameterPolicyEnforcementFilter.doFilt
er(RequestParameterPolicyEnforcementFilter.java:296)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(D
elegatingFilterProxy.java:344)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(Delegat
ingFilterProxy.java:261)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
at org.jasig.inspektr.common.web.ClientInfoThreadLocalFilter.doFilter(Cl
ientInfoThreadLocalFilter.java:62)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterIntern
al(CharacterEncodingFilter.java:85)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerR
equestFilter.java:107)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(D
elegatingFilterProxy.java:344)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(Delegat
ingFilterProxy.java:261)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:217)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
torBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAcce
ssLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:88)
at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.j
ava:318)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:518)
at org.apache.coyote.ajp.AbstractAjpProcessor.process(AbstractAjpProcess
or.java:844)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(
AbstractProtocol.java:673)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpo
int.java:1500)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoin
t.java:1456)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskTh
read.java:61)
at java.lang.Thread.run(Thread.java:745)
yoException: Unable to find class: ☺authenticationMethod
Serialization trace:
attributes (org.jasig.cas.authentication.ImmutableAuthentication)
authentication (org.jasig.cas.ticket.TicketGrantingTicketImpl)
ticketGrantingTicket (org.jasig.cas.ticket.ServiceTicketImpl)
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at net.spy.memcached.transcoders.TranscodeService$Task.get(TranscodeServ
ice.java:97)
at net.spy.memcached.internal.GetFuture.get(GetFuture.java:70)
at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1230)
... 109 more
Caused by: com.esotericsoftware.kryo.KryoException: Unable to find class: ☺authe
nticationMethod
Serialization trace:
attributes (org.jasig.cas.authentication.ImmutableAuthentication)
authentication (org.jasig.cas.ticket.TicketGrantingTicketImpl)
ticketGrantingTicket (org.jasig.cas.ticket.ServiceTicketImpl)
at com.esotericsoftware.kryo.util.DefaultClassResolver.readName(DefaultC
lassResolver.java:156)
at com.esotericsoftware.kryo.util.DefaultClassResolver.readClass(Default
ClassResolver.java:133)
at com.esotericsoftware.kryo.Kryo.readClass(Kryo.java:667)
at com.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.ja
va:118)
at com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSeria
lizer.java:551)
at com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:708)
at com.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.ja
va:125)
at com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSeria
lizer.java:551)
at com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:708)
at com.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.ja
va:125)
at com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSeria
lizer.java:551)
at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:790)
at org.jasig.cas.ticket.registry.support.kryo.KryoTranscoder.decode_arou
ndBody6(KryoTranscoder.java:185)
at org.jasig.cas.ticket.registry.support.kryo.KryoTranscoder$AjcClosure7
.run(KryoTranscoder.java:1)
at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:
149)
at org.jasig.inspektr.aspect.TraceLogAspect.traceMethod(TraceLogAspect.j
ava:44)
at org.jasig.cas.ticket.registry.support.kryo.KryoTranscoder.decode(Kryo
Transcoder.java:183)
at net.spy.memcached.transcoders.TranscodeService$1.call(TranscodeServic
e.java:63)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at net.spy.memcached.transcoders.TranscodeService$Task.run(TranscodeServ
ice.java:110)
at net.spy.memcached.transcoders.TranscodeService$Task.get(TranscodeServ
ice.java:96)
... 111 more
Caused by: java.lang.ClassNotFoundException: ☺authenticationMethod
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClas
sLoaderBase.java:1333)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClas
sLoaderBase.java:1167)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at com.esotericsoftware.kryo.util.DefaultClassResolver.readName(DefaultC
lassResolver.java:154)
... 131 more
>