gpt4 book ai didi

java - 需要清理 Java 8 中的 ResponseEntity 主体

转载 作者:行者123 更新时间:2023-12-01 19:32:13 26 4
gpt4 key购买 nike

我正在运行 Java 8、Tomcat、DynamoDB 堆栈。我有这个方法:

@GET
@Path("/{var:.*}")
@Produces(MediaType.APPLICATION_JSON)
public Response mirrorRest(@Context UriInfo info, @Context HttpHeaders headers, @Context HttpEntity entity,
@PathParam(value = "var") String var) throws URISyntaxException {
URI uri = new URI("https", server, null, null);
UriComponentsBuilder builder = UriComponentsBuilder.fromUri(uri);
builder.path(var);
for(String key : info.getQueryParameters().keySet()){
if(!key.equals("key")){
String queryParam = StringEscapeUtils.escapeHtml(info.getQueryParameters().get(key).get(0));
builder.query(key+ "=" + queryParam);
}
}
builder.query("key="+API_KEY);
RestTemplate restTemplate = new RestTemplate();

try {
ResponseEntity response = restTemplate.exchange(builder.build().toUri(), HttpMethod.GET, entity, String.class);

Object responseBody = response.getBody();

return Response.ok(response.getBody()).build();
} catch(HttpStatusCodeException e) {
return Response.status(e.getStatusCode().value()).entity(e.getResponseBodyAsString()).build();
}
}

在某一时刻,我正在读取springframework.http.HttpEntity,创建一个ResponseEntity。但是,我想在输出之前对其进行清理,以避免 XSS。这是我还没弄清楚该怎么做,因为 getBody() 将返回一个 Object:

Object responseBody = response.getBody();

关于如何处理此对象以确保其得到清理有什么想法吗?

最佳答案

也许就这样

ResponseEntity<String> response = restTemplate.exchange(builder.build().toUri(), 
HttpMethod.GET, entity, String.class);

String responseBody = response.getBody();

ResponseBody 是响应正文的容器,具有可能的类型参数化。

如果您期望一些 JSON 可序列化内容,最好使用此 JSON 可以反序列化的正确类来参数化 ResponseEntity

关于java - 需要清理 Java 8 中的 ResponseEntity 主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59302539/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com