亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

基于CAS的SSO單點登錄-實現ajax跨域訪問的自動登錄(也相當于超時重連)

2019-11-14 23:28:44
字體:
來源:轉載
供稿:網友
基于CAS的SSO單點登錄-實現Ajax跨域訪問的自動登錄(也相當于超時重連)

先補課,以下網址可以把CAS環境搭起來。

【JA-SIG CAS服務環境搭建】http://linliangyi2007.VEvb.com/blog/165307

【JA-SIG CAS業務架構介紹】http://linliangyi2007.VEvb.com/blog/165310

【JA-SIG CAS技術框架】http://linliangyi2007.VEvb.com/blog/165313

【抓包分析】http://blog.csdn.net/clh604/article/details/20365967

【問題背景】兩個系統的整合就不說了,簡單來說就是網頁放在NginX上,但是ajax調用tomcat的API獲取數據,其中tomcat段用CAS做身份認證。具體使用的是org.jasig.cas.client,配置會略有不同就不展開了。

【問題描述】ajax調用不允許跨域訪問,如果在該容器中未CAS登陸(沒有ticket)則會遇到以下錯誤。

xmlHttPRequest cannot load [CAS服務器地址] No 'access-Control-Allow-Origin' header is present on the requested resource. Origin [應用地址] is therefore not allowed access.

【非ajax請求具體的跳轉請求】就是標準的跳轉,不上圖了:

請求1:http訪問tomcat。結果:302重定向指向CAS服務器

請求2:訪問CAS服務器,帶上CASTGC。結果:302重定向指向tomcat并帶上ticket

請求3:訪問tomcat,帶上ticket。結果:200返回資源

【ajax請求具體的跳轉請求】:

請求1:ajax訪問tomcat。結果:302重定向指向CAS服務器

請求2:訪問CAS服務器,帶上CASTGC。結果:200返回無內容,瀏覽器提示錯誤(Chrome

跨域訪問規則Access-Control-Allow-Origin是在CAS服務器配置的,項目無法更改。

【參考的解決方法】

a.在session超時的情況下發ajax請求。返回200正常,并在json中指定狀態碼302和login.action地址

b.訪問login.action。302重定向指向CAS服務器

c.訪問CAS服務器登錄授權。302重定向回login.action

d.訪問login.action帶有ticket。302重定向next_page(即一開始ajax請求的頁)

e.訪問next_page刷新整個頁

【具體解決過程】

1.修改CAS授權過濾器,session無效的ajax請求先返回200正常,并在json中指定業務錯誤碼session_lost

繼承修改AuthenticationFilter的doFilter方法:

a.如果session中有assertion,通過,進入下一層(tomcat端向CAS服務器驗證ticket)

b.(無assertion)如果有ticket,通過,進入下一層filter(tomcat端向CAS服務器驗證ticket)

c.(無assertion無ticket)普通http請求,重定向到CAS服務器

d.(無assertion無ticket)ajax請求,返回200并在json中指定session_lost

e.改配置web.xml,指向新的AuthenticationFilter類,并且serverName要與NginX的域名匹配

2.在js的callback中處理session_lost,將網址定位到/login.action

window.location.href=/app/login.action

3.在java的/autoLogin中重新登錄并根據參數next_page重定向,完成登錄和刷新

(因為是普通http請求,會先跳轉到CAS登錄,回來建立session信息,然后再跳轉到用戶本來的頁面)

【其中一些細節問題】

a.通過檢查請求頭的"X-Requested-With"為"xmlhttpRequest"鑒別是ajax調用

b./login.action中要判斷nextpage避免指向自己,若"/login.action?nextpage=/login.action"會導致死循環,爆棧很歡樂~

c.登錄后cookies對JSESSIONID寫入不對也會導致session找不到而死循環,一番排查后發現Tomcat寫入的cookies匹配的path是應用路徑,而網頁上匹配的是根路徑,所以需要手動寫cookies把JSESSIONID匹配path為"/"。

d.web.xml中serverName要與網頁域名匹配(因為這里經過了DNS和反向代理),否則會報登錄的service與當前訪問的service(即域名)不匹配的錯誤。

e.幾種跳轉方式的區分

request.getRequestDispatcher(str).forward(request, response);---服務器內部跳轉,路徑從應用開始算,即"/"等效于 "http://域名/應用/"response.sendRedirect(str);---瀏覽器端302重定向,參數為完整地址。@Controller實例的方法中的return str;---服務器內部加載頁面,路徑從應用開始算。@Controller實例的方法中的return "redirect:/";---瀏覽器端302重定向,但是路徑從應用開始算。瀏覽器端js中window.location.href---瀏覽器本窗口打開頁面,路徑從域名后開始計算,即"/"等效于 "http://域名/"

f.warnning:第一個是CSRF風險即cookies被盜用,電腦入域或網絡隔離可規避;第二個是serverName配置是寫死在web.xml上,改域名就要重新部署應用,可改為配置。

完事,可以ajax隨便愉快玩耍了~


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲综合日韩中文字幕v在线| 国产深夜精品福利| www欧美xxxx| 成人网址在线观看| 成人黄色生活片| 国产精品福利在线观看| 国产成人福利网站| 国语自产精品视频在线看抢先版图片| 日韩人在线观看| 日韩精品欧美国产精品忘忧草| 国产精品久久久久久久久久东京| 国产精品人成电影| 欧美刺激性大交免费视频| 国产精品视频专区| 国模gogo一区二区大胆私拍| 91精品国产综合久久香蕉最新版| 亚洲欧美日韩精品| 欧美激情区在线播放| 久久人人爽人人爽爽久久| 欧美日韩一区二区免费视频| 在线观看中文字幕亚洲| 亚洲精品中文字幕有码专区| 中文字幕国产精品| 久久久久久美女| 国产精品第100页| 日韩中文字幕国产| 久久久久久国产精品三级玉女聊斋| 日本精品一区二区三区在线播放视频| 日韩中文字幕视频在线观看| 97精品欧美一区二区三区| 69影院欧美专区视频| 日韩精品免费在线视频| 一区二区福利视频| 亚洲精品一区二区三区不| 日韩中文字幕在线精品| 亚洲变态欧美另类捆绑| 福利视频导航一区| 欧美国产第一页| 久久国产精品影片| 在线观看日韩视频| 国产精品你懂得| 欧美激情视频播放| 国产亚洲精品综合一区91| 久久久久久久999| 欧美日韩xxx| 国产精品亚洲激情| 久久久亚洲国产| 久久久亚洲精品视频| 热久久美女精品天天吊色| 亚洲裸体xxxx| 亚洲国产中文字幕在线观看| 日本精品视频在线观看| 精品久久久在线观看| 亚洲欧美国产一区二区三区| 亚洲人成网7777777国产| 中文字幕欧美日韩va免费视频| 欧美精品久久久久久久久久| 久久在线视频在线| 亚洲国产精彩中文乱码av在线播放| 国产亚洲精品va在线观看| 亚洲黄色www| 羞羞色国产精品| 成人国产精品久久久| 欧美夫妻性生活视频| 国产精品r级在线| 日韩中文字幕在线视频| 色综合久久88色综合天天看泰| 亚洲男人av在线| 欧美午夜精品在线| 欧美激情免费视频| 在线亚洲男人天堂| 日韩精品视频中文在线观看| 亚洲资源在线看| 亚洲第一色在线| 国产精品高潮呻吟久久av野狼| 国产精品一区二区久久国产| 欧美老女人性生活| 日韩亚洲综合在线| 亚洲а∨天堂久久精品喷水| 欧美成人四级hd版| 日韩在线免费观看视频| 在线成人激情视频| 欧美与欧洲交xxxx免费观看| 91亚洲va在线va天堂va国| 欧美日韩福利在线观看| 欧美性生交xxxxx久久久| 日本精品久久久久久久| 亚洲美女性视频| 欧美日韩国产中文字幕| 欧美精品在线观看| 欧美成人免费一级人片100| www.日韩.com| 日韩大胆人体377p| 国产精品对白刺激| 狠狠色狠狠色综合日日五| 91久久国产综合久久91精品网站| 国产高清视频一区三区| 日韩成人性视频| 欧美精品激情在线观看| 亚洲欧美国产一本综合首页| 中文字幕亚洲无线码在线一区| 色综合亚洲精品激情狠狠| 国产性猛交xxxx免费看久久| 亚洲第一福利在线观看| 亚洲精品小视频在线观看| 久久久av电影| 38少妇精品导航| 在线亚洲午夜片av大片| 亚洲精品视频中文字幕| 久久久精品在线| 欧美一区二区影院| 国产成人福利网站| 亚洲黄一区二区| 中文字幕亚洲字幕| 久久艹在线视频| 色偷偷偷亚洲综合网另类| 日韩中文在线中文网在线观看| 成人精品视频99在线观看免费| 成人黄色免费片| 神马久久桃色视频| www.久久久久| 欧美黄色片免费观看| 精品日本高清在线播放| 92国产精品久久久久首页| 亚洲第一二三四五区| 欧美日韩激情网| 91免费福利视频| 欧美成人一区二区三区电影| 欧美成在线视频| 粉嫩av一区二区三区免费野| 欧美视频13p| 欧美大片欧美激情性色a∨久久| 中文字幕精品av| 亚洲影视九九影院在线观看| 欧美精品福利视频| 亚洲欧美中文日韩v在线观看| 国产日韩欧美夫妻视频在线观看| 欧美电影免费观看高清| 精品中文字幕在线2019| 性色av一区二区三区红粉影视| 成人福利网站在线观看11| 日韩在线观看精品| 97久久国产精品| 最新69国产成人精品视频免费| 亚洲人成在线一二| 久久偷看各类女兵18女厕嘘嘘| www.久久撸.com| 6080yy精品一区二区三区| 亚洲欧美综合区自拍另类| www.美女亚洲精品| 国产一区二区在线免费视频| 91免费人成网站在线观看18| 欧美激情在线有限公司| 亚洲激情成人网| 欧美成人激情图片网| 欧美午夜精品久久久久久人妖| 国色天香2019中文字幕在线观看| 中文字幕日韩有码| 欧美日韩国产999| 日本欧美黄网站| 亚洲天堂日韩电影| 日韩在线国产精品| 亚洲在线免费视频| 精品久久久在线观看|