![](/img/trans.png)
[英]How to pass an unknown incoming requestParam to a post in spring boot?
[英]How to pass encrypted value in @Requestparam java spring boot
我创建了一个带有参数@Requestparam String Id 的java 服务,当我传递精确值时它工作正常,当我尝试传递加密值时它不能正常工作。 我在下面给出了我的工作。
@GetMapping("fetch")
@Produces(value = "application/json")
@ApiOperation("Get user detail from Okta")
public ResponseEntity<UserInfoRespone> getUserDetailsFromOkta(@RequestParam String agentId) {
System.out.println("Actual:" +"c4njCC2/reRud+O/I41w3w==");
System.out.println("Incoming agent Id:" + agentId);
}
当我使用 postman 调用服务时,传递了加密值c4njCC2/reRud+O/I41w3w==但是当我尝试打印传入代理 id 时,我发现实际文本中缺少几个字符,看起来像c4njCC2/reRud O/I41w3w= =它错过了 + 符号并为其自身添加了空间。 因此,当我尝试解密字符串时,它会以 null 的形式出现。
Expected : c4njCC2/reRud+O/I41w3w==
Actual : c4njCC2/reRud O/I41w3w==
有人可以帮我解决这个问题吗?
您需要 URL 对您的查询参数进行编码,如下所示:
c4njCC2%2FreRud%2BO%2FI41w3w%3D%3D
有几个网站可以像这样对值进行编码/解码(例如https://www.urlencoder.org/ )。 使用普通的 java 您可以使用java.net.URLEncoder
:
URLEncoder.encode("c4njCC2/reRud+O/I41w3w==", StandardCharsets.UTF_8);
然而,请求参数可能不是加密数据的最佳选择,因为您可能也会遇到其他字符(即使是编码形式)的问题。
我建议改为在请求正文中提交此数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.