(三)SSO之CAS框架單點退出,退出到CAS登錄界面


應需求的改變、CAS自定義登錄頁面不安全,不再使用,於是我一下子回到了原點,在linux上部署上了沒有加自定義登陸界面的CAS,接下來開始修改CAS自己默認的登錄界面為我們的界面。

       一下子修改成功是根本就不可能的,於是刪一點cas的源碼的東西,看看效果,然后再刪除一些不必要的東西,看看效果,再加上自己系統登錄界面的樣式,就這樣一步步的做成自己系統登錄界面的樣式,登錄界面完畢后就是,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.onload=function()//用window的onload事件,窗體加載完畢的時候  
{  
   //do something  
   var 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然后再在自己的系統登出地址上加上參數,例如,我的系統是https://www.xx.com:8443/cas/logout?systemId=security,這樣就不會出現跳轉到的是同一個地址,和跳轉到登錄頁面登錄進入發現不是自己想要的界面了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM