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

使用Spring RequestMapping path param的编码Precent(%25)给出HTTP 400

万俟玉书
2023-03-14

我创建了一个控制器来进行数据搜索。但当我死于关键字“%”时,它返回一个HTTP 400错误。控制程序如下:

@RequestMapping(value = "/search/{txtKeyWord}")
public String pageVipStory(@PathVariable("txtKeyWord") String txtKeyWord, Model model) {
     logger.info("Keyword In URL: " + txtKeyWord);
     model.addAttribute("txtKeyWord", txtKeyWord);
     model.addAttribute("txtKeyWordEndCode", UriUtils.encode(txtKeyWord, "UTF-8"));
     getMenuAndInfo(model, "Search " + txtKeyWord);

     return "web/searchPage";
}

谁能告诉我错误在哪里。又该如何克服呢?谢谢!

共有1个答案

阎作人
2023-03-14

您可以使用自定义的StrictHttpFirewall实例使用默认的Spring Security防火墙。

@Bean
public HttpFirewall allowUrlEncodedPercentHttpFirewall() {
    StrictHttpFirewall firewall = new StrictHttpFirewall();
    firewall.setAllowUrlEncodedPercent(true);
    return firewall;
}

请注意,这可能会导致涉及双重URL编码的攻击,从而绕过安全约束。

 类似资料:
  • 问题内容: 我想向API发送POST请求,以将我的数据作为内容类型发送。由于我需要管理请求标头,因此我正在使用该方法来创建请求。对于此POST请求,我将数据查询附加到URL上,并将正文保留为空,如下所示: 当我回应时,我总是得到。我相信问题取决于我的请求,API无法理解我要发布的有效负载。我知道类似的方法,但不确定在这种情况下如何使用它。也许我缺少一些其他的Header,也许有更好的方法使用参数将

  • 我正在尝试将来自Twits的信息(screen_name,created_at和text)保存到pandas数据帧中,然后将数据帧保存为csv文件。 我收到一个编码错误 我尝试了各种编码增强,但没有成功

  • 概述 编码电机驱动可以控制多达2个直流编码器电机。2台电机的精确速度和位置可以设置和分开。电机驱动器IC是TB6612,与双直流电机驱动相同。我们提供了一个用于调整驱动器的P-I-D参数的软件,以便在不同的条件下可以正常工作。电机的减速比约为46.您也可以在软件中编辑减速比。 注意:它需要一些PID调整经验,以及一个 USB 转 UART 模块。 特点 精确的速度和位置控制。 实时速度和位置反馈。

  • 我在IntelliJ中有一个项目,有两个注释处理器:Lombok和另一个简单的处理器。 当用Gradle编译时,无论是在IntelliJ内部还是外部,一切都很好。 当使用默认的IntelliJ设置运行时,Lombok可以工作,但其他处理器不能 当我选中设置->构建、执行、部署->编译器->批注处理器下的框时,将执行第二个处理器,但编译失败,在使用生成的代码时出现错误 当我还将sources目录更改

  • 我正在尝试运行这段代码,它用于检查设置是否正确: 我所做的所有谷歌搜索都让我一遍又一遍地检查本地库,我很确定我做得对。当我在这个项目的构建路径中找到库时,JRE系统库和Slick2D都会说本地库的位置:…/windows/x64。我只尝试过…/windows,我尝试过JRE没有本地位置。我遵循了两个不同的教程来学习如何做到这一点,并且在尝试运行这段简单代码时不断出现错误。有什么帮助吗?

  • 我的数据库中有六个条目/。当我单击时,我会在文本字段中显示除Date(dob)以外的所有选定数据。它向我显示了一个错误: ArrayIndexOutOfBoundsException:5>=5