1. 程式人生 > >cas-4.1.7自定義登入介面修改,為不同的服務指定不同的主題、國際化

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" />,不過我在這裡改了並不能發揮作用,不知道為什麼????