應需求的改變、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