小编Kha*_*111的帖子

spring 4.1.1,mockmvc并且不希望HTTP GET请求的url编码

在测试中使用MockMVC,我需要测试已经URL编码的GET URL:

http://host:port/app/controller/[ALREADY URL ENCODED]
Run Code Online (Sandbox Code Playgroud)

代码:

mockmvc.perform(get("/controller/[ALREADY URL ENCODED]")
Run Code Online (Sandbox Code Playgroud)

但是在日志中我看到URL在到达适当的控制器方法之前已经被再次进行了url编码.有没有办法可以阻止spring mockmvc进行url编码?也许在测试中禁用url编码?

"[ALREADY URL ENCODED]"字符串的真实示例:

MEUwQzBBMD8wPTAJBgUrDgMCGgUABBQ%2Fm36Fj2BE19VBYXRO62zrgIYp0gQVAQazEyvlq22wsMBkRyAeaUiZ%2BhTUAgMGJbQ%3D
Run Code Online (Sandbox Code Playgroud)

这会在控制器看到之前再次对URL进行编码.

这是来自日志(该字符串已被重新编码)

xxxxx [main] DEBUG [o.s.t.w.s.TestDispatcherServlet]  DispatcherServlet with name '' processing GET request for [/app/controller/MEUwQzBBMD8wPTAJBgUrDgMCGgUABBQ%252Fm36Fj2BE19VBYXRO62zrgIYp0gQVAQazEyvlq22wsMBkRyAeaUiZ%252BhTUAgMGJbQ%253D]
Run Code Online (Sandbox Code Playgroud)

请注意,如果我使用CURL调用,则spring框架不会执行url编码,并且控制器会获取发送的内容.但是,mockmvc会在进入适当的控制器方法之前进行编码.

curl -X GET http:host:port/app/controller/[ALREADY URL ENCODED]
Run Code Online (Sandbox Code Playgroud)

谢谢.

java spring spring-mvc mockmvc

7
推荐指数
1
解决办法
2616
查看次数

openssl:如何查找使用openssl编译的配置选项

有没有更简单的方法来找出在构建openssl期间指定的选项,例如当时是否定义了OPENSSL_NO_SRTP?我只能从以下内容中浏览有限的信息:
openssl version -a
命令。但是,如果我只有二进制文件,是否有办法找出诸如此类的选项?该问题背后的原因是,如果未使用此选项编译openssl,则会引入漏洞“ CVE-2014-3513”。

openssl

3
推荐指数
2
解决办法
3292
查看次数

bash空变量命令替换导致单引号

以下是一个脚本,其中空变量被单引号替换。如果变量不为空,则我们具有正确的替换。

$ set -x;  aa=""; bb=`curl "$aa" -vvv`; set +x
+ aa=
++ curl '' -vvv
Run Code Online (Sandbox Code Playgroud)

需要注意的是,单引号代替了空变量。

当变量不为空时,一切工作正常,如下所示:

$ set -x;  aa="google.com"; bb=`curl "$aa" -vvv`; set +x
+ aa=google.com
++ curl google.com -vvv
Run Code Online (Sandbox Code Playgroud)

问题1:为什么使用空变量或带空格的变量导致引入单引号?Q2:如何防止单引号代替空变量?

现在,我可以删除双引号,并且一切正常,但是如果有的话,我需要保留空格。

谢谢。

linux bash

1
推荐指数
1
解决办法
348
查看次数

标签 统计

bash ×1

java ×1

linux ×1

mockmvc ×1

openssl ×1

spring ×1

spring-mvc ×1