CAS单点登录中文用户名乱码问题

CAS单点登录中文用户名乱码问题,有两种情况

1. CAS server乱码

即在向server端提交用户名和密码时,发生了乱码,解决方法是:

打开WEB-INF/web.xml,在其它的Filter之前,添加

 <!-- 字符编码过滤 -->
  <filter>
      <filter-name>characterEncodingFilter</filter-name>
      <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
      <init-param>
       <param-name>encoding</param-name>
       <param-value>UTF-8</param-value>
      </init-param>
      <init-param>
       <param-name>forceEncoding</param-name>
       <param-value>true</param-value>
      </init-param>
  </filter>
  <filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

这里,用的是springframework的filter,因为lib里面已经有了spring的jar。


2. server向client传递用户名的时候,产生乱码,导致了解析错误,跑出了空指针异常,解决方法是:

修改client的web.xml,添加红色部分

<filter>
		<filter-name>CAS Validation Filter</filter-name>
		<filter-class>
			org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter
		</filter-class>
		<init-param>
			<param-name>casServerUrlPrefix</param-name>
			<param-value>http://10.15.62.29:8080/cas</param-value>
		</init-param>
		<init-param>
			<param-name>serverName</param-name>
			<param-value>http://10.15.62.32</param-value>
		</init-param>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
		<init-param>
			<param-name>redirectAfterValidation</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>CAS Validation Filter</filter-name>
		<url-pattern>/user/loginpage</url-pattern>
	</filter-mapping>



posted @ 2014-02-20 19:10  bingtel  阅读(1795)  评论(0编辑  收藏  举报