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

如何禁用zuul解码编码斜杠/?

易和怡
2023-03-14

我正在使用Spring Cloud Zuul和Eureka的解决方案。REST应用程序向Eureka注册,Zuul通过Eureka Service Discovery提供对服务的访问。

我必须将REST应用程序配置为接受URL中的斜杠编码:

System.setProperty("org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH", "true");

要在Spring Boot REST应用程序中接受编码的破折号,请执行以下操作:

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

@Override
public void configure(WebSecurity web) throws Exception {
    web.httpFirewall(allowUrlEncodedSlashHttpFirewall());
}

在WebSecurity配置适配器中,出于相同的目的。以及:

@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
    UrlPathHelper urlPathHelper = new UrlPathHelper();
    urlPathHelper.setUrlDecode(false);
    configurer.setUrlPathHelper(urlPathHelper);
}

WebMvcConfigrer中跳过解码url编码的字符。

之后,REST应用程序单独开始使用编码斜杠正常响应请求。当我将REST应用程序与网关Zuul连接时,斜杠编码的问题再次出现。我使用Zuul对REST应用程序进行了相同的配置,并在应用程序中添加了属性“解码url:false”。yml和Zuul与REST应用程序的结合再次奏效。

当我向Eureka添加服务发现/服务注册解决方案时,问题再次出现。我搜索了很多,甚至克隆了Spring Cloud Netflix Eureka服务器2.1.0。版本和Eureka Core 1.9.8,但找不到任何解决方案。

如何禁用URL中编码的Eureka中斜杠的解码?

共有1个答案

马奇略
2023-03-14

解决方案是从2.1.3更改Spring Boot版本。发布至2.1.4。在网关中释放。

 类似资料:
  • 问题内容: 我有一个字符串存储为: 有没有办法我可以转换成? 问题答案: 您可以为此使用: 输出:

  • 问题内容: 我用python脚本下载了一个网页。在大多数情况下,这可以正常工作。 但是,这个有一个响应标头:GZIP编码,当我尝试打印此网页的源代码时,它的腻子中包含所有符号。 如何将其解码为普通文本? 问题答案: 我使用zlib从Web解压缩压缩的内容。

  • 以下是我的要求: 程序将有一个XML文件作为输入,带有3个标记:、和。所有这些数据都是Base64编码的。注意:程序正在使用BC JAR 下面是我试图解码证书的代码: 当我打印new String(certByteValue, Standard ardCharset.UTF_8)的值时,程序正在打印一些无法识别的文本。当执行代码的最后一行时,系统正在抛出 java.security.cert.证书

  • 问题内容: 在我当前的项目中,我有一个drupal后端,它为我的前端公开了休息服务。对我的后端的某些调用并不真正喜欢对URL实体进行编码。 所以我的问题是:如何禁用某些参数的URL编码? 例: 我需要在不同的搜索字词之间用“ +”号来调用我的后端。像这样: 但是有角度,设置像这样: 调用以下网址: 有什么建议?谢谢! 问题答案: 更新:使用 Angular 1.4中新的httpParamSeria

  • 问题内容: 我有一个HTML编码的字符串: 我想将其更改为: 我希望将其注册为HTML,以便浏览器将其呈现为图像,而不是显示为文本。 字符串的存储方式是这样的,因为我正在使用一种名为的网络抓取工具BeautifulSoup,它将“扫描”网页并从中获取某些内容,然后以该格式返回字符串。 我已经找到了如何在C#中而不是在Python中执行此操作。有人可以帮我吗? 问题答案: 给定Django用例,对此

  • 有人请帮助我如何解决CWE-259:使用硬编码密码缺陷。