我正在尝试使用Spring Security使用CAS身份验证配置一个简单的Spring Boot应用程序,视图都是JSP,并使用Spring MVC呈现。但是,在测试安全视图时,我遇到了字符编码问题。非ASCII字符似乎显示不正确(例如,用š代替š,用á代替á等)。
我正在使用Spring Boot 2.2.4和CAS客户端核心3.6.1。该应用程序是使用Maven(带有自定义父项)构建的,并作为WAR文件部署到完整的Tomcat 9.0.30实例(默认配置)。
到目前为止,我已经尝试过:
CharacterEncodingFilter
注册FilterRegistrationBean
addFilterBefore
中的WebSecurityConfigurerAdapter
(beforeFilter
参数使用不同过滤器的几种变化)CharacterEncodingFilter
的@Order(Ordered.HIGHEST_PRECEDENCE)
bean添加到SpringBootServletInitializer
(用@SpringBootApplication
注释,因为这是我的入口点)AbstractSecurityWebApplicationInitializer
并覆盖beforeSpringSecurityFilterChain
FilterRegistrationBean
,在其中配置过滤器并将顺序设置为非常小的数字onStartup
中覆盖SpringBootServletInitializer
并将过滤器直接添加到Servlet上下文中>]使用Spring Security taglib作为<security:authentication property="principal.firstName"/>
获得有问题的字符串。如果使用SLF4J记录,则文本已正确编码。我想避免使用web.xml
我正在尝试使用Spring Security使用CAS身份验证配置一个简单的Spring Boot应用程序,视图都是JSP,并使用Spring MVC呈现。但是,我遇到了字符编码问题...
在尝试使用多种其他方法解决此问题均未成功后,我的同事建议查看一下CAS中是否可以设置字符编码的任何内容。