《許可權系列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的登入頁面,僅供讀者參考。