cas-4.1.7自定義登入介面修改,為不同的服務指定不同的主題、國際化
自定義登入介面修改
參考博文:https://www.cnblogs.com/wangyang108/p/5843940.html
在檔案login-webflow.xml中 ,<view-state id="viewLoginForm" view="casLoginView" model="credential">指定了伺服器的登入頁。之所以這裡的casLoginView指向了/WEB-INF/view/jsp/default/ui/下的casLoginView.jsp,是因為在cas_servlet.xml中配置了:
<bean id="internalViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:viewClass="org.springframework.web.servlet.view.JstlView" p:prefix="${cas.viewResolver.defaultViewsPathPrefix:/WEB-INF/view/jsp/default/ui/}" p:suffix=".jsp" p:order="3"/>
複製casLoginView.jsp重新命名為casLoginViewRe.jsp,改寫casLoginViewRe.jsp。div id=list-language沒啥用,可以刪掉。<c:if test="${not pageContext.request.secure}">這個標籤是https error提示,也可以刪掉。在<div class="sidebar-content">之中新增自己的內容就可以了。
為不同的服務指定不同的主題
對於一個很大的網站,不同的子專案下面,可能登入的風格和樣式不一樣,所以我們需要配置這個service目錄,設定每一個子網站對應的請求樣式,如果不設定,可以指定預設樣式
Services資料夾下指定 需要配置自定義登入的網站模版
Apereo-10000002.json 、HTTPSandIMAPS-10000001.json 這個json配置檔案是系統預設的,不要修改它,只能覆蓋它; 配置檔案的命名必須是主題名稱-id.json的這種方式,不然找不到配置檔案。配置檔案為主題名稱.properties
檔案中的引數說明:
注:在jsp檔案中,引用css檔案地址時是指定的${ standard.custom.css.file },所以在配置檔案中是指定standard.custom.css.file的值。
要注意引數evaluationOrder的值,代表了匹配順序。
國際化
<%
org.springframework.web.servlet.i18n.CookieLocaleResolver clr=new org.springframework.web.servlet.i18n.CookieLocaleResolver();
clr.setLocale(request,response,Locale.CHINA); //這裡根據不同情況顯示不同國際化
%>
通過該端程式碼放在jsp頁面就可以 實現不同jsp 登入頁面 實現不同的國際化提示
其實在cas-servlet.xml中有CookieLocaleResolver類的例項化:<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" p:defaultLocale="en" />,不過我在這裡改了並不能發揮作用,不知道為什麼????