各位好,我现准备将我们的项目改造成cas单点登录。参照了网上不少的教程。现在总算有了一点点的进展。但不知为什么,当我登录cas并且验证通过后,后台却提示我“票根'ST-1-SSAyf0nFMvmVBvEBSXyg-cas'不符合目标服务”。对这个错误提示很迷茫,不知道改从哪里去找原因,所以希望大家帮我看看。谢谢了。
以下是控制台的输出:<2012-12-11 上午10时17分28秒 CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING> 
<2012-12-11 上午10时17分28秒 CST> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode> 
2012-12-11 10:17:42,732 INFO [org.jasig.cas.web.flow.InitialFlowSetupAction] - <Setting path for cookies to: /casserver>
2012-12-11 10:18:04,083 INFO [org.jasig.cas.authentication.AuthenticationManagerImpl] - <AuthenticationHandler: org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler successfully authenticated the user which provided the following credentials: [username: 0100000001]>
2012-12-11 10:18:04,243 INFO [org.jasig.cas.CentralAuthenticationServiceImpl] - <Granted service ticket [ST-1-SSAyf0nFMvmVBvEBSXyg-cas] for service [http://127.0.0.1:7001/index.jsp] for user [0100000001]>
2012-12-11 10:18:04,473 ERROR [org.jasig.cas.CentralAuthenticationServiceImpl] - <ServiceTicket [ST-1-SSAyf0nFMvmVBvEBSXyg-cas] with service [http://127.0.0.1:7001/index.jsp does not match supplied service [http://127.0.0.1:7001/index.jsp;sinosoftJSESSIONID=GhNQQGXcn49fQ22L9trjN4r5bYcjb12pgyTJ0jppXMCyRsF28GbK!818215263]>
<2012-12-11 上午10时18分04秒 CST> <Error> <HTTP> <BEA-101017> <[ServletContext@27459325[app:webapps module:webapps path: spec-version:null], request: weblogic.servlet.internal.ServletRequestImpl@7e2501[
GET /index.jsp?ticket=ST-1-SSAyf0nFMvmVBvEBSXyg-cas HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*
Referer: http://127.0.0.1:7001/casserver/login?service=http%3A%2F%2F127.0.0.1%3A7001%2Findex.jsp
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: JSESSIONID=GJhnQGXH3csKzFtC1Hnsggq6xnlScYM2mpLp6D6mT9xmRmRQTzMv!818215263]] Root cause of ServletException.
org.jasig.cas.client.validation.TicketValidationException: 
票根'ST-1-SSAyf0nFMvmVBvEBSXyg-cas'不符合目标服务

at org.jasig.cas.client.validation.Cas20ServiceTicketValidator.parseResponseFromServer(Cas20ServiceTicketValidator.java:73)
at org.jasig.cas.client.validation.AbstractUrlBasedTicketValidator.validate(AbstractUrlBasedTicketValidator.java:188)
at org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:132)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:102)
Truncated. see log file for complete stacktrace

解决方案 »

  1.   

    有关cas和acegi的配置文件信息,因为论坛发帖字数限制,我将配置放到空间里了。可以点这里查看deployerConfigContext.xml的配置信息 
    http://blog.csdn.net/soyestrellafortuna/article/details/8281401app-config-acegi-security.xml的配置 
    http://blog.csdn.net/soyestrellafortuna/article/details/8281350因为对cas和acegi都不是很了解,很多信息都是从网上获取到。有错误的地方,大家还是说一下。谢谢各位了。
      

  2.   

    对于ticket设计的思路和使用方式我还没搞明白(新手)。我想问的是ticket的里包含了什么内容,作用是什么。对于单点登录我理解是服务端写入cookie到客户端即可实现(里面存放用户名密码)。还没想通ticket的作用,我的想法是哪里出问题了呢?请指教,谢谢