我有 Spring Boot 应用程序,2.7.14。我在其中添加了 OpenAPI,但问题是我可以获得端点。当 swagger 或我向 /api-docs enpoint 发送请求时,它返回 JWT 解析的字符串而不是 JSON。我没有任何过滤器或任何东西,但我也找不到解决方案。
也有同样的问题。基本上你只需要从 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();
// ...
}