安全工具扫描问题,发现依赖默认编码:new String(byte[])

Security tool scan issue, Found reliance on default encoding: new String(byte[])

我收到以下代码的“发现对默认编码的依赖:new String(byte[])”

InitAuth (Auth auth) {
        String jsonString =String(Base64.getDecoder().decode(token.split(".")[1]));
        context = JsonPath.parse(jsonString);
}

我找到了建议使用这种格式的字符串构造函数的解决方案

new String(bytes, StandardCharsets.UTF_8)

但问题是,在我的代码中,如果我使用第二个参数,它会变成这个签名

new String(string, string)

如您所知,此构造函数并未为 new String() 定义。那么有人可以建议如何解决问题。如果在这里使用 Base64.getMimeDecoder() 有意义,也请添加。

String payloadUTF8 = new String(jsonString.getBytes(),StandardCharsets.UTF_8);
context = JsonPath.parse(payloadUTF8);

为了调用 String constructor,第一个参数必须是 byte[]。将 .getBytes() 的结果作为第一个参数传递,然后您可以将 StandardCharsets.UTF_8 设置为第二个参数。