CAS - 服务端登录界面改造

首先我们需要找到 cas 的原始登录页面, 先不要删除原始登录页面, 因为我们需要在我们的登入页面中引入原始登录页面中的相关资源, 将原始登录页面重新随意取个名字即可, cas 的原始登录页面位置如下:

将我们需要的登录页面拷贝到 cas 的原始登录页面的路径下, 并重命名为 cas 的原始登录页面的名字, 包括后缀.

将 cas 的原始登录页面中的 jsp 相关文件引入到我们需要的登录页面中(如果我们需要的登录页面是HTML):

<%@ page pageEncoding="UTF-8" %>
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

将我们页面需要用到的样式图片等资源也拷贝到 cas 目录下:

将我们页面中的 form 表单中相关输入框等替换成原来页面中的, 样式还是保留我们的样式:

<!-- <form class="sui-form">      我们的 form 表头 -->
<form:form class="sui-form" method="post" id="fm1" commandName="${commandName}" htmlEscape="true">    <!-- 还是替换成原来的 form 表头 引入我们的样式 -->
    <div class="input-prepend"><span class="add-on loginname"></span>
        <!-- <input id="prependedInput" type="text" placeholder="邮箱/用户名/手机号" class="span2 input-xfat"> -->
		<form:input placeholder="邮箱/用户名/手机号" class="span2 input-xfat" id="username" size="25" tabindex="1" accesskey="${userNameAccessKey}" path="username" autocomplete="off" htmlEscape="true" />
	</div>
	<div class="input-prepend"><span class="add-on loginpwd"></span>
		<!-- <input id="prependedInput" type="password" placeholder="请输入密码" class="span2 input-xfat"> -->
		<form:password placeholder="请输入密码" class="span2 input-xfat" id="password" size="25" tabindex="2" path="password"  accesskey="${passwordAccessKey}" htmlEscape="true" autocomplete="off" />
	</div>
	<div class="setting">
		<label class="checkbox inline">
			<input name="m1" type="checkbox" value="2" checked="">自动登录
		</label>
		<span class="forget">忘记密码?</span>
        <!-- 用户名 密码输入错误提示框 -->
        <form:errors path="*" id="msg" cssClass="errors" element="div" htmlEscape="false" />
	</div>
	<div class="logined">
	    <!-- <a class="sui-btn btn-block btn-xlarge btn-danger" href="home-index.html" >登&nbsp;&nbsp;录</a> -->					
		<input type="hidden" name="lt" value="${loginTicket}" />
		<input type="hidden" name="execution" value="${flowExecutionKey}" />
		<input type="hidden" name="_eventId" value="submit" />
		<input class="sui-btn btn-block btn-xlarge btn-danger" name="submit" accesskey="l" value="登&nbsp;&nbsp;录" tabindex="4" type="submit" />
	</div>
<!-- </form> -->
</form:form>

用户名密码错误提示

1. 在我们的登录页面引入错误提示框

<form:errors path="*" id="msg" cssClass="errors" element="div" htmlEscape="false" />

测试:输入错误的用户名和密码,提示是英文。这个提示信息是在 WEB-INF\classes 目录下的 messages.properties 文件中:

authenticationFailure.AccountNotFoundException=Invalid credentials.
authenticationFailure.FailedLoginException=Invalid credentials.

2. 将这个提示信息拷贝至 messages_zh_CN.properties 中末尾, 并重新赋值中文二进制字段:

authenticationFailure.AccountNotFoundException=\u7528\u6237\u540D\u4E0D\u5B58\u5728.
authenticationFailure.FailedLoginException=\u5BC6\u7801\u9519\u8BEF.

第一个是用户名不存在时的错误提示第二个是密码错误的提示

3. 修改 WEB-INF 下的 cas-servlet.xml 文件中的读取文件配置:

p:defaultLocale="zh_CN

<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" p:defaultLocale="zh_CN" />

猜你喜欢

转载自blog.csdn.net/weixin_42629433/article/details/84312660