CAS3.4.10版本自定义用户信息中有中文,比如姓名,修改如下:
1、部署web服务目录下的:cas3.4.10\WEB-INF\view\jsp\protocol\2.0\casServiceValidationSuccess.jsp的编码为 GBK:
<%@ page contentType="text/html; charset=GBK"%>
2、 在 <cas:authenticationSuccess> 节点内,增加自定义字段的输出:
<cas:user>${fn:escapeXml(assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.id)}</cas:user>
<c:if test="${fn:length(assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.attributes) > 0}">
<cas:attributes>
<c:forEach var="attr" items="${assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.attributes}">
<cas:${fn:escapeXml(attr.key)}>${fn:escapeXml(attr.value)}</cas:${fn:escapeXml(attr.key)}>
</c:forEach>
</cas:attributes>
</c:if>
3、如果启用代理模式,再增加:
<c:if test="${not empty pgtIou}">
<cas:proxyGrantingTicket>${pgtIou}</cas:proxyGrantingTicket>
</c:if>
4、在客户端的web.xml的 <filter-name>CAS Validation Filter</filter-name> 节点内,增加:
</init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>