之前CAS一直使用单机跑,接入应用也使用单机,没有什么问题。
但是,应用通过nginx代理后,就出现问题了,代理的端口访问,cas获取的是实际服务器的端口,就会造成票根不识别,错误如下:
Authentication failure: Ticket not validated Reason: [INVALID_SERVICE] CAS error: 票根'ST-36-DvwsgyEPzwx16S1CmDHj1NJRX-Uecs-4806-0319730'不符合目标服务 CAS response: <cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'> <cas:authenticationFailure code="INVALID_SERVICE">票根'ST-36-DvwsgyEPzwx16S1CmDHj1NJRX-Uecs-4806-0319730'不符合目标服务</cas:authenticationFailure> </cas:serviceResponse>
问题在于nginx的代码配置问题,正确配置信息如下:
[#zeyu#]
proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; #proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-FORWARDED-HOST $server_addr; proxy_set_header X-FORWARDED-PORT $server_port; proxy_redirect false;
主要生效的代码是:
X-FORWARDED-HOST、X-FORWARDED-PORT 这一段
[/#zeyu#]
找了很久,谷歌百度都用了,搜关键词cas proxy nginx,可以搜到一些解决方案,但是均无法解决。最后是逐步尝试的,主要可能还是不精通nginx。
------------正 文 已 结 束, 感 谢 您 的 阅 读 (折雨的天空)--------------------
转载请注明本文标题和链接:《cas服务器报错:CAS error: 票根'ST-36-DvwsgyEPzwx16S1CmDHj1NJRX-Uecs-4806-0319730'不符合目标服务》
发表评论