CAS和Spring Security特殊字符

时间:2016-10-04 07:07:33

标签: encoding spring-security cas

我有2个使用CAS的应用程序。我有问题,因为当我问CAS关于分配给机票的用户时,我的编码答案是错误的。有任何特殊字符(来自UTF-8)。
我在web.xml中设置了正确的char编码,并在服务器中更改了设置以允许UTF-8,但它仍然无法正常工作。你知道什么是问题吗? 在cas20响应中的Cas20ServiceTicketValidator中我变为:
albaner.dÄ…b

但我希望:
albaner.döb

1 个答案:

答案 0 :(得分:0)

请你发布你的web.xml文件。

我建议您在casll客户端的web.xml中包含以下内容,

<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>
</filter>
<filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

我的建议基于以下链接中的以下内容: http://docs.spring.io/spring-security/site/docs/3.2.9.RELEASE/reference/htmlsingle/#cas-singlelogout

虽然此文档参考仅针对单点注销,但我认为您的编码问题类似。

  

使用SingleSignOutFilter时,您可能会遇到一些编码问题。因此,建议添加CharacterEncodingFilter以确保在使用SingleSignOutFilter时字符编码正确。再次,请参阅JASIG的文档以获取详细信息。 SingleSignOutHttpSessionListener确保当HttpSession到期时,将删除用于单次注销的映射。