当前位置: 首页 > 知识库问答 >
问题:

spring security 4.2与spring MVC@MatrixVariable中的

颜熙云
2023-03-14
@GetMapping(path = "/{param}")
public void example(@PathVariable String param,
                    @MatrixVariable Map<String, String> matrix) {
    //...
}
mockMvc.perform(get("/someparam;key=value"))
org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL contained a potentially malicious String ";"

at org.springframework.security.web.firewall.StrictHttpFirewall.rejectedBlacklistedUrls(StrictHttpFirewall.java:140)

顺便说一句:javadoc不正确https://docs.spring.io/autorepo/docs/spring-security/4.2.x/apidocs/index.html?org/springframework/security/web/firewall/strithttpfirewall.html

自:

5.0.1

我猜是被倒车了?

共有1个答案

孟楷
2023-03-14

您可以使用自定义的StrictHttpFirewall实例稀释默认Spring Security防火墙(风险自负)

@Bean
public HttpFirewall allowUrlEncodedSlashHttpFirewall() {
    StrictHttpFirewall firewall = new StrictHttpFirewall();
    firewall.setAllowUrlEncodedSlash(true);
    firewall.setAllowSemicolon(true);
    return firewall;
}

然后在WebSecurity中使用此自定义防火墙bean(Spring boot不需要此更改)

@Override
public void configure(WebSecurity web) throws Exception {
  super.configure(web);
  // @formatter:off
  web.httpFirewall(allowUrlEncodedSlashHttpFirewall());
...
}

这将适用于Spring Security 4.2.4+,但当然会带来一些风险!

 类似资料:
  • 我使用的是Spring4.1.9.版本 配置下一个Rest控制器。 并创建了/get/{id}以某种方式隐藏/get/matrix/{vars}的映射 当我尝试通过下一个url调用它时http://localhost:8080/testmatrixvariables/get/matrix/;v1=1;v2=2;v3=3我从调试日志中获得 org.springframework.beans.Type

  • 我正在通过在线示例学习使用FreeMarker的SpringMVC。我遇到了这个错误,但是我不知道我的getFreemarkerConfig()方法有什么问题,一整天我都在试图修复它,但是没有成功。

  • 本文向大家介绍springmvc中RequestMappingHandlerAdapter与HttpMessageConverter的装配讲解,包括了springmvc中RequestMappingHandlerAdapter与HttpMessageConverter的装配讲解的使用技巧和注意事项,需要的朋友参考一下 一.DispatcherServlet 默认装配 RequestMappingH

  • 我的样本代码在这里 尝试运行junit测试时,收到以下错误消息。 JAVAlang.IllegalStateException:未能加载ApplicationContext 原因:org。springframework。豆。工厂BeanCreationException:创建名为“nameDao”的bean时出错:调用init方法失败;嵌套的异常是java。lang.IllegalArgument

  • 今天,我正在研究可从STS仪表板下载的Spring MVC展示 我对Spring 3.2版本引入的新注释@MatrixVariable以及URI路径中Matrix变量的使用有些怀疑。 在我的家中.jsp视图我有以下链接: 此处阅读有关@MatrixVariable注释的官方文档:http://static.springsource.org/spring-framework/docs/3.2.0.M

  • 我正在使用Spring MVC和Drools expert。spring版本4.0。0 drools版本(6.0.1) 我正在使用RAD 8和WAS 8 应用程序启动失败,出现异常(见下文) spring集成在批处理模式下工作正常。当我从web应用程序调用它时,当我将kie后处理器添加到应用程序上下文时,web应用程序就会失败。 这是堆栈跟踪。