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

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

1
2
3
4
5
6
7
8
9
10
#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.
并增加下面的内容(默认是空的):

1
2
3
4
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的路径:

1
2
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是登录成功后显示的页面,内容如下:

1
2
<%@ 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页面中增加:

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