CAS 自定义用户信息中文乱码的解决

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>

猜你喜欢

转载自xuguohua.iteye.com/blog/2310923
Cas
今日推荐