• (三)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,这样就不会出现跳转到的是同一个地址,和跳转到登录页面登录进入发现不是自己想要的界面了。

     

  • 相关阅读:
    java集合 (hashmap,hashtable,list,set)
    struts2+hibernate+spring 事物控制
    eclipse 添加xml文件提示功能
    myeclipse 快捷键 收藏
    设置ORACLE客户端字符集
    批处理删除文件夹
    java作用域public,private,protected ,default区别
    CCV所用资料资源汇总
    总序
    数字图像处理第一次作业
  • 原文地址:https://www.cnblogs.com/yangmengdx3/p/4565376.html
Copyright © 2020-2023  润新知