1. 程式人生 > >《許可權系列shiro+cas》----修改cas的預設登入頁

《許可權系列shiro+cas》----修改cas的預設登入頁

前言

  • cas的預設登入頁相對來說不怎麼友好,我們可以自己定做。

cas原始登入頁面

這裡寫圖片描述

修改步驟

上面的頁面就是cas\WEB-INF\view\jsp\default\ui\casLoginView.jsp,

修改配置檔案

  • CAS所有的介面位置都是在cas.properties(具體位置:cas\WEB-INF\cas.properties)中指定的。我們開啟這個檔案,找到下面這行。
cas.securityContext.status.allowedSubnet=127.0.0.1
cas.themeResolver.defaultThemeName=cas-theme-default
//注意下面這行
cas.viewResolver
.basename=default_views
  • 看cas.viewResolver.basename
    這個鍵值對,它的值是default_views,表示的是預設的檢視配置,其實是一個properties檔案的名稱而已。大家找找看,在工程中是不是有一個名為default_views.properties(具體位置:cas\WEB-INF\classes\default_views.properties)的檔案,檔案的具體內容如下:
casLoginView.(class)=org.springframework.web.servlet.view.JstlView
casLoginView.url
=/WEB-INF/view/jsp/default/ui/casLoginView.jsp ### Display login (warning) messages casLoginMessageView.(class)=org.springframework.web.servlet.view.JstlView casLoginMessageView.url=/WEB-INF/view/jsp/default/ui/casLoginMessageView.jsp ### Login confirmation view (logged in, warn=true) casLoginConfirmView.(class)=org.springframework
.web.servlet.view.JstlView casLoginConfirmView.url=/WEB-INF/view/jsp/default/ui/casConfirmView.jsp ### Logged-in view (logged in, no service provided) casLoginGenericSuccessView.(class)=org.springframework.web.servlet.view.JstlView casLoginGenericSuccessView.url=/WEB-INF/view/jsp/default/ui/casGenericSuccess.jsp ### Logout view (/logout) casLogoutView.(class)=org.springframework.web.servlet.view.JstlView casLogoutView.url=/WEB-INF/view/jsp/default/ui/casLogoutView.jsp //省略
  • 可以看到我們的登入頁面就是配置在上面的, 裡面還配置了
    登入成功頁面,退出頁面等,這個後面會具體說明。我們知道了頁面配置後,那麼是不是可以根據業務來具體訂製一套頁面了。

  • 1.在cas.properties 修改 cas.viewResolver.basename 值為 bokeyuan_view ,那樣系統就會自動會查詢 bokeyuan_view.properties 這個配置檔案

  • 2.第1點中查詢的 bokeyuan_view.properties 是沒有的,我們要自己新建,直接複製原來的 default_views.properties 就行了,重新命名為bokeyuan_view.properties

  • 3.但是bokeyuan_view.properties 中的地址還是 /WEB-INF/view/jsp/default ,我們全部替換把這地址替換成 WEB-INF\view\jsp\bokeyuan

  • 4.接下來我們把 cas\WEB-INF\view\jsp\default 下面的所有檔案複製下,然後重新命名為我們需要的名稱,cas\WEB-INF\view\jsp\bokeyuan

  • 5.這樣我們就可以可以隨意修改登入介面了

  • 注意:有人說直接修改原來的 cas\WEB-INF\view\jsp\default\ui\casLoginView.jsp 就行了,省得麻煩。 其實這樣也是行的,但這樣如果後面需要初始的介面,那樣就沒了。採用配置修改的方式主要會更加靈活點,可以保留原來的備份。

  • 登入介面中的jquery庫
    是配置在cas\WEB-INF\view\jsp\default\ui\includes\bottom.jsp中的,但是這個是直接引用googleapis
    的,我們是不能訪問的,需要修改成你本地或者能夠訪問的CDN庫(百度CDN、360CDN 等)。

  • 你可以隨意修改原來的介面,但是原來的邏輯不能修改,其實主要是 form:form 這標籤裡的東西不要變了。反正你只修改樣式,是肯定不會錯的。

小結

  • 這就是自定義cas的登入頁面,僅供讀者參考。