之前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>
[#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。