cas错误:org.jasig.cas.client.validation.TicketValidationException: No principal was found in the response from the CAS server.

勇敢的心2 发布于 2014/04/04 14:48
阅读 20K+
收藏 1

      我在本机测试cas的部署,客户端和服务端同时安装在我本机(win7),使用了两个tomcat(6.0.7)分别对应cas客户端(3.2.1)和cas服务端(3.4),

     同时安装了两个jdk,一个是jdk1.6(设置成了环境变量),一个是jdk1.5;

    cas服务端tomcat对应的是jdk1.6版本(默认的),cas客户端tomcat使用jdk1.5。

     我也把使用jdk1.6的keytool生成的证书导入到了cas客户端要使用的jdk1.5的cacerts里面。

     cas服务端和cas客户端按网上大家说的配置,在服务端生成ticket成功,跳转到客户端,客户端再向服务端验证ticket时报错,具体如下:

加载中
0
勇敢的心2
勇敢的心2

根据网上所说,是在第5步: Step 5: CAS客户端取出ticket,生成“ticket验证URL”,然后向"ticket验证URL"发起http GET请求 "ticket验证URL":    http://${cas-server-host}:${cas-server-port}/cas-server /serviceValidate?ticket=${service-ticket}&service=${client-service-url} 出的错,然后我把ticket取出,单独放到这个url里面去,页面提示:

0
勇敢的心2
勇敢的心2

大虾们知道的教教小弟。

0
子木007
子木007

猜测是证书引起的。 可以试试不用证书的时候是否正常。我记得以前本机测试的时候没用证书都正常, 用了证书就有类似的错误。

记不清了


l
liyzh0825
有这样可能
0
勇敢的心2
勇敢的心2

终于解决了,这个错误怎么就没人发现呢,哎。最后还是看:http://jasig.275507.n4.nabble.com/No-principal-was-found-in-the-response-from-the-CAS-server-td1011262.html找到的方法,现把原因贴出来:

cas客户的的web.xml文件:

 

 

Justic_0111
Justic_0111
回复 @山水龙 : 是的~~正解!!真的是很多列子害死人~~不懂为何他们都没碰上~~
山水龙
山水龙
应该加端口号,这样就正确了
0
暴徒
暴徒

您好,我也碰到了相同的问题,但是按照你的解决方法,我还是会出错。错误信息如下:

java.lang.RuntimeException: java.io.IOException: Server returned HTTP response code: 500 for URL: http://service.thldl.org.cn/serviceValidate?ticket=ST-6-E5Z7zvVeRd0tvwwewRWw-cas01.example.org&service=http%3A%2F%2Fapp.thldl.org.cn%2F%2F%2Fsigns%2F
	org.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUtils.java:328)
	org.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUtils.java:291)
	org.jasig.cas.client.validation.AbstractCasProtocolUrlBasedTicketValidator.retrieveResponseFromServer(AbstractCasProtocolUrlBasedTicketValidator.java:32)
	org.jasig.cas.client.validation.AbstractUrlBasedTicketValidator.validate(AbstractUrlBasedTicketValidator.java:187)
	org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:164)
	org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:102)
	org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:65)
从错误信息来看,是
http://service.thldl.org.cn/serviceValidate?ticket
这个地址有问题了,所以我觉的web.xml中的casServerUrlPrefix还是需要加上cas的

0
leslie丶侬本多情
leslie丶侬本多情
我出现这种情况是因为当时配的是本机的IP,写的是127.0.0.1:8080,但我访问的时候使用localhost:8080,
返回顶部
顶部