CAS自定义登录页面

参考:http://www.imooc.com/article/3720
不过参考链接中介绍的并不详细,这里具体说明一下。

/css/下复制cas.css,并重命名为nebula.css.
文件内容不变,将#container改成如下:

#container {  position: fixed;
  top: 50%;
  left: 50%;
  width:50%;
  height: 50%;
  -webkit-transform: translateX(-50%) translateY(-50%);
  -moz-transform: translateX(-50%) translateY(-50%);
  -ms-transform: translateX(-50%) translateY(-50%);
  transform: translateX(-50%) translateY(-50%); 
}

因为后面会把页眉和页脚的一些东西,包括右侧的banner删除,所以这里的CSS是让内容居中显示。

/WEB-INF/classes下复制cas_views.properties,并重命名为nebula_views.properties.
并增加下面的内容(默认是空的):

nebulaLoginView.(class)=org.springframework.web.servlet.view.JstlView
nebulaLoginView.url=/WEB-INF/view/jsp/nebula/ui/casLoginView.jsp
nebulaIndexView.(class)=org.springframework.web.servlet.view.JstlView
nebulaIndexView.url=/WEB-INF/view/jsp/nebula/ui/casIndexView.jsp

/WEB-INF/classes下复制cas-theme-default.properties,并重命名为nebula-theme.properties.
并修改js和css的路径:

standard.custom.css.file=/css/nebula.css
cas.javascript.file=/js/cas.js

/WEB-INF/view/jsp下新增文件夹nebula/ui,将/WEB-INF/view/jsp/default/ui下的casLoginView.jspcasGenericSuccessView.jspincludes复制到/nebula/ui,并重命名为nebulaLoginView.jspnebulaIndexView.jsp.

/WEB-INF/view/jsp/nebula/ui/nebulaLoginView.jsp中无关的东西都删除,只保留登录的form相关,这个可以慢慢删除调试。nebulaIndexView是登录成功后显示的页面,内容如下:

<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" %>
<div>你好,你在CAS Server已登录成功!<a href="logout">退出a>div>

/WEB-INF/webflow/login下复制login-webflow.xml,并重命名为nebula-login-webflow.xml
viewLoginForm中的casLoginView修改为nebulaLoginView.
viewGenericLoginSuccess中的view改为nebulaIndexView.
/WEB-INF/webflow/login下复制logout-webflow.xml,并重命名为nebula-logout-webflow.xml

修改/WEB-INF/cas.properties,将cas.themeResolver.defaultThemeName改成nebula-theme.

/WEB-INF/cas-servlet.xml文件修改:
1. viewResolver中cas_views改成nebula_views.
2. internalViewResolver中defaultViewsPathPrefix改成/WEB-INF/view/jsp/nebula/ui/.
3. loginFlowRegistry中,将value改成:/login/nebula-login-webflow.xml.
4. logoutFlowRegistry中,将value改成:/logout/nebula-logout-webflow.xml.

最后的效果:
登录的界面:

登录成功的界面:

问题:

1、 CAS做了国际化,不过默认是英文的,如果想使用中文显示,可以/WEB-INF/classesmessages.properties重命名为messages_en.properties。同时,将messages_zh_CN.properties重命名为messages.properties.

2、 页面显示乱码的问题。
在JSP页面中增加:

<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" %>

你可能感兴趣的:(CAS自定义登录页面)