登陆名如果用中文的话,会出现乱码,导致无法验证通过。解决中文问题无非就是编码问题,其中需要转换编码的有以下几个地方.
第一,在Web.xml文件里加上Filter,对所有页面进行一次编码转换.
下面是EncodingFilter类:
第二步,修改CAS登陆验证页面的编码,如果你没换过这个主题的话,默认的是修改WEB-INF\view\jsp\default\ui\casLoginView.jsp文件,在最上面加上<%@ page pageEncoding="gb2312"%>。这里要特别注意一下,这个页面的编码要和上面XML文件里写的编码一致。
第三步,修改验证成功后做跳转的页面。也就是WEB-INF\view\jsp\protocol\2.0\casServiceValidationSuccess.jsp文件,在最上面加上<%@ page pageEncoding="UTF-8"%>。这里特别注意的是这个页面的编码要和你跳转过去的那个页面的编码一致,换句话说,客户端的验证页面的编码要和这个地方的一致,不一致的话,要转换一下。
经过这三步之后,理论上讲就已经可以验证通过了。
眼镜蛇
posted on 2009-07-12 13:02 眼镜蛇 阅读(2838) 评论(1) 编辑 收藏 所属分类: Java 、Liferay 、SSO
感觉很罗嗦的。CAS默认是UTF-8编码,可以不添加Filter,原CAS页面也可以保持不变。唯一需要变化的是WEB-INF\view\jsp\protocol\2.0\casServiceValidationSuccess.jsp需要和跳转过去的那个页面的编码一致。添加:pageEncoding="UTF-8" 或 pageEncoding="GBK" 根据实际情况而定。 回复 更多评论
Powered by: BlogJava Copyright © 眼镜蛇