It appears that Tomcat's clustering is based on serializing objects across
the different nodes.  The CASReceipt object is not serializable (i.e. does
not extend Serializable).  The easiest and quickest solution is to modify
the source code of the library to make the CASReceipt serializable.

-Scott

On 8/30/07, Claudio Tassini <[EMAIL PROTECTED]> wrote:
>
> Hi all,
>
> this seems quite strange. I have a clustered cas environment, with tomcat
> 5.5.23 and cas 3.0.7 and jboss-cache. All works fine.
>
> The application that CAS need to manage the SSO for is a Liferay Portal,
> which is deployed as a webapp in the very same tomcat as cas' . Now, this
> works too as far as I add the <distributable/> tag in the web.xml of the
> liferay webapp (which is needed to replicate liferay's session info between
> the cluster nodes). If liferay is set as distributable when i login i see
> cas give and validates the TGT and ST ticket, and immediately after throws
> this exception:
>
> 13:16:42,183 ERROR [sso.cas.CASFilter] java.lang.IllegalArgumentException:
> Attribute [edu.yale.its.tp.cas.client.filter.receipt] is not serializable
> java.lang.IllegalArgumentException : Attribute [
> edu.yale.its.tp.cas.client.filter.receipt] is not serializable
>         at org.apache.catalina.cluster.session.DeltaSession.setAttribute(
> DeltaSession.java:1247)
>         at org.apache.catalina.cluster.session.DeltaSession.setAttribute (
> DeltaSession.java:1225)
>         at
> org.apache.catalina.cluster.session.DeltaSessionFacade.setAttribute(
> DeltaSessionFacade.java:131)
>         at edu.yale.its.tp.cas.client.filter.CASFilter.doFilter(
> CASFilter.java :391)
>         at com.liferay.portal.servlet.filters.sso.cas.CASFilter.doFilter(
> CASFilter.java:93)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> ApplicationFilterChain.java :215)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:188)
>         at
> com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.doFilter(
> VirtualHostFilter.java :136)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> ApplicationFilterChain.java:215)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java :188)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(
> StandardWrapperValve.java:210)
>         at org.apache.catalina.core.StandardContextValve.invoke(
> StandardContextValve.java:174)
>         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(
> AuthenticatorBase.java:433)
>         at org.apache.catalina.core.StandardHostValve.invoke(
> StandardHostValve.java:127)
>         at org.apache.catalina.cluster.tcp.ReplicationValve.invoke(
> ReplicationValve.java:347)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(
> ErrorReportValve.java:117)
>         at org.apache.catalina.core.StandardEngineValve.invoke (
> StandardEngineValve.java:108)
>         at org.apache.catalina.connector.CoyoteAdapter.service(
> CoyoteAdapter.java:151)
>         at org.apache.jk.server.JkCoyoteHandler.invoke(
> JkCoyoteHandler.java:200)
>         at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java
> :283)
>         at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java
> :773)
>         at org.apache.jk.common.ChannelSocket.processConnection (
> ChannelSocket.java:703)
>         at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(
> ChannelSocket.java:895)
>         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
> ThreadPool.java :685)
>         at java.lang.Thread.run(Thread.java:619)
>
> Any idea?
> --
> Claudio Tassini
>
> _______________________________________________
> Yale CAS mailing list
> [email protected]
> http://tp.its.yale.edu/mailman/listinfo/cas
>
>


-- 
-Scott Battaglia

LinkedIn: http://www.linkedin.com/in/scottbattaglia
_______________________________________________
Yale CAS mailing list
[email protected]
http://tp.its.yale.edu/mailman/listinfo/cas

Reply via email to