如何在Spring Boot 2中使用Spring MVC和安全性,Jasig CAS和JSP视图配置UTF-8?

问题描述 投票:0回答:1

我正在尝试使用Spring Security使用CAS身份验证配置一个简单的Spring Boot应用程序,视图都是JSP,并使用Spring MVC呈现。但是,在测试安全视图时,我遇到了字符编码问题。非ASCII字符似乎显示不正确(例如,用š代替š,用á代替á等)。

我正在使用Spring Boot 2.2.4和CAS客户端核心3.6.1。该应用程序是使用Maven(带有自定义父项)构建的,并作为WAR文件部署到完整的Tomcat 9.0.30实例(默认配置)。

到目前为止,我已经尝试过:

  1. application.properties中明确强制HTTP UTF-8编码
  2. 使用CharacterEncodingFilter注册FilterRegistrationBean
  3. 使用addFilterBefore中的WebSecurityConfigurerAdapterbeforeFilter参数使用不同过滤器的几种变化)
  4. 将带有CharacterEncodingFilter@Order(Ordered.HIGHEST_PRECEDENCE) bean添加到SpringBootServletInitializer(用@SpringBootApplication注释,因为这是我的入口点)
  5. 扩展AbstractSecurityWebApplicationInitializer并覆盖beforeSpringSecurityFilterChain
  6. 添加FilterRegistrationBean,在其中配置过滤器并将顺序设置为非常小的数字
  7. 注册我自己的过滤器,在该过滤器中我将请求和响应编码明确设置为UTF-8
  8. onStartup中覆盖SpringBootServletInitializer并将过滤器直接添加到Servlet上下文中>]
  9. 使用Spring Security taglib作为<security:authentication property="principal.firstName"/>获得有问题的字符串。如果使用SLF4J记录,则文本已正确编码。我想避免使用web.xml

部署描述符,因为到目前为止这是一个非常Spring Bootish的应用程序。

我正在尝试使用Spring Security使用CAS身份验证配置一个简单的Spring Boot应用程序,视图都是JSP,并使用Spring MVC呈现。但是,我遇到了字符编码问题...

spring-boot spring-mvc jsp spring-security cas
1个回答
0
投票

在尝试使用多种其他方法解决此问题均未成功后,我的同事建议查看一下CAS中是否可以设置字符编码的任何内容。

© www.soinside.com 2019 - 2024. All rights reserved.