(三)SSO之CAS框架单点退出,退出到CAS登陆界面

应需求的改变、CAS自定义登陆页面不安全,再也不使用,因而我一会儿回到了原点,在linux上部署上了没有加自定义登录界面的CAS,接下来开始修改CAS本身默认的登陆界面为咱们的界面。javascript

       一会儿修改为功是根本就不可能的,因而删一点cas的源码的东西,看看效果,而后再删除一些没必要要的东西,看看效果,再加上本身系统登陆界面的样式,就这样一步步的作成本身系统登陆界面的样式,登陆界面完毕后就是,CAS默认的登出界面了。java

       登出界面的要求,在登出的时候返回到登陆的主界面,就去修改了CAS的登出的界面了。linux

       有不少相似的文章去修改到本身自定义的登出界面,但对于使用统一的界面登陆, 这个方法貌似就不行了,并且即便能转到登陆界面,可是在登陆的时候,也不是本身想要跳转到的系统界面。针对这个问题进行思考发现,之因此在第一次登陆的时候能转到主界面的缘由是,在第一次登陆的时候地址后面会携带这登陆后要进入系统的地址,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,这样就不会出现跳转到的是同一个地址,和跳转到登陆页面登陆进入发现不是本身想要的界面了。jsp

相关文章
相关标签/搜索