(三)SSO之CAS框架单点退出,退出到CAS登录界面
? ? ? ?應需求的改變、CAS自己定義登錄頁面不安全,不再使用,于是我一下子回到了原點。在linux上部署上了沒有加自己定義登陸界面的CAS,接下來開始改動CAS自己默認的登錄界面為我們的界面。
? ? ? ?一下子改動成功是根本就不可能的,于是刪一點cas的源代碼的東西??纯葱Ч?#xff0c;然后再刪除一些不必要的東西??纯葱Ч?#xff0c;再加上自己系統登錄界面的樣式,就這樣一步步的做成自己系統登錄界面的樣式,登錄界面完成后就是,CAS默認的登出界面了。
? ? ? ?登出界面的要求。在登出的時候返回到登錄的主界面,就去改動了CAS的登出的界面了。
? ? ? ?有非常多類似的文章去改動到自己自己定義的登出界面。但對于使用統一的界面登錄。 這種方法貌似就不行了,并且即使能轉到登錄界面,可是在登錄的時候,也不是自己想要跳轉到的系統界面。針對這個問題進行思考發現,之所以在第一次登錄的時候能轉到主界面的原因是,在第一次登錄的時候地址后面會攜帶這登錄后要進入系統的地址,https://xx.com:8443/cas/login?
service=http%3A%2F%2F172.16.3.199%3A8080%2Fsecurity%2F。這樣我也能夠仿照他來搞一個,與是在cas的caslogoutview.jsp 中加入了js跳轉功能,在載入登錄頁面的時候,直接依據傳遞來的系統參數, 是哪個系統,讓他跳轉到相應的系統登錄。改動的cas登出界面代碼例如以下所看到的,casloginoutView.jsp code
<!-- xx add 2014/ 7/ 15/ 20:11:05 add --> <!-- 依據url跳轉到不同系統的登錄界面. --> <script language="javascript" type="text/javascript"> window.οnlοad=function()//用window的onload事件,窗口載入完成的時候 {//do somethingvar result = location.search.match(new RegExp("[\?\&]" + 'systemId'+ "=([^\&]+)","i")); if(result == null || result.length < 1){ //return ""; result ="";} //alert(result[1]);//return result[1];if("security"==result[1]){//alert("dfdfsdfasdfasdfasdf");window.location.href="https://www.xx.com:8443/cas/login?service=http%3A%2F%2F172.16.3.199%3A8080%2Fsecurity%2F"; }else{ window.location.href="https://www.xx.com:8443/cas/login?service=http%3A%2F%2F172.16.3.199%3A8080%2Fvms2.0%2Fuser%2FtoMain%2F"; } } <!--封裝為函數,也能夠直接調用.--> function getQueryStringByName(name) { var result = location.search.match(new RegExp("[\?\&]" + name+ "=([^\&]+)","i")); if(result == null || result.length < 1){ return ""; } alert(result[1]); return result[1]; } </script>
? ? ? ?CAS搞了有些時日了,總是在不斷地改進。當向前進一步的時候。你會發現新的問題又會出現了,問題不斷出現。需求也不斷改,貌似假設不搞CAS源代碼的話,就根本別想能痛快的用了。你哥~
轉載于:https://www.cnblogs.com/cxchanpin/p/6790225.html
總結
以上是生活随笔為你收集整理的(三)SSO之CAS框架单点退出,退出到CAS登录界面的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unity3D入门基础之游戏对象 (Ga
- 下一篇: appearance 设置公共属性