先补课以下网址可以把CAS环境搭起来。
【问题背景】两个系统的整合就不说了简单来说就是网页放在NginX上,但是ajax调用tomcat的API获取数据其中tomcat段用CAS做身份认证。具体使用的是org.jasig.cas.client配置会略有不同就不展开了。
【问题描述】ajax调用不允许跨域访问如果在该容器中未CAS登陆(没有ticket)则会遇到以下错误。
【非ajax请求具体的跳轉请求】就是标准的跳转不上图了:
【ajax请求具体的跳转请求】:
请求2:访问CAS服务器,带上CASTGC结果:200返回无内容,浏览器提示错误(chrome)
(洇为是普通http请求会先跳转到CAS登录,回来建立session信息然后再跳转到用户本来的页面)
d.web.xml中serverName要与网页域名匹配(因为这里经过了DNS和反向代理),否则会报登录的service与当前访问的service(即域名)不匹配的错误
e.几种跳转方式的区分
f.warnning:第一个是CSRF风险即cookies被盗用,电脑入域或网络隔离可规避;第二个是serverName配置是写死在web.xml上改域名就要重新部署应用,可改为配置
完事,可以ajax随便愉快玩耍了~
这个问题吧真的是一言难尽,當初遇见这个问题: 显示因为遇见了跨域然后我前端就处理了,可是跨域是不报了请求200,响应没有数据哦,之后发现
然后面向百度前后囼原因都有;
后台我选用其他浏览器调试,发现没问题正常,就谷歌但是这样不行啊,最后和后台讨论我们选择后台处理了一下跨域,这个问题就没了
不知有没有其他的方式,路过请指教