OpenAPI /api-docs 返回结果以 JWT 字符串而不是 JSON 进行解析

问题描述 投票:0回答:1

我有 Spring Boot 应用程序,2.7.14。我在其中添加了 OpenAPI,但问题是我可以获得端点。当 swagger 或我向 /api-docs enpoint 发送请求时,它返回 JWT 解析的字符串而不是 JSON。我没有任何过滤器或任何东西,但我也找不到解决方案。

spring-boot openapi springdoc-openapi-ui
1个回答
0
投票

也有同样的问题。基本上你只需要从 base64 解码它,你就有一个 json (字符串),在我的例子中:

protected Map<String, String> loadOpenapi(URL url) throws IOException {
var jwt = mapper.readTree(url);
var jwtWithoutQuotes = jwt.toString().substring(1, jwt.toString().length() - 2);
var decodedStr = Base64.getDecoder().decode(jwtWithoutQuotes);
String decodedJson = new String(decodedStr, StandardCharsets.UTF_8);
JsonNode apiJson = mapper.readTree(decodedJson);
var paths = apiJson.get("paths").iterator();
// ...

}

© www.soinside.com 2019 - 2024. All rights reserved.