【发布时间】:2020-12-19 13:02:59
【问题描述】:
当我在尝试构建 Netty SslContext 的代码上运行 SonarQube 时,为什么我会从 pmd:DataflowAnomalyAnalysis 得到 UR 异常和 DR 异常。
代码运行良好,但我在 keystorePath 和 truststorePath 变量上同时获得了 UR 和 DR。
请指点一下? 谢谢
@Value("${server.ssl.key-store}") private String keyStorePath;
@Value("${server.ssl.key-store-password}") private String keyStorePassPhrase;
@Value("${server.ssl.key-password}") private String keyPassPhrase;
@Value("${server.ssl.key-store-type}") private String keyStoreType;
@Value("${server.ssl.trust-store}") private String trustStorePath;
@Value("${server.ssl.trust-store-password}") private String trustStorePassPhrase;
@Value("${server.ssl.trust-store-type}") private String trustStoreType;
public SslContext getSslContext() {
try {
final Path keystorePath = Paths.get(keyStorePath);
final KeyStore keyStore = KeyStore.getInstance(keyStoreType);
try (InputStream keyStoreFile = Files.newInputStream(keystorePath)) {
keyStore.load(keyStoreFile, keyStorePassPhrase.toCharArray());
}
final KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
keyManagerFactory.init(keyStore, keyPassPhrase.toCharArray());
final Path truststorePath = Paths.get(trustStorePath);
final KeyStore trustStore = KeyStore.getInstance(trustStoreType);
try (InputStream trustStoreFile = Files.newInputStream(truststorePath)) {
trustStore.load(trustStoreFile, trustStorePassPhrase.toCharArray());
}
final TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init(trustStore);
return SslContextBuilder.forClient().keyManager(keyManagerFactory).trustManager(trustManagerFactory).build();
} catch (KeyStoreException | IOException | UnrecoverableKeyException | NoSuchAlgorithmException | CertificateException e) {
e.printStackTrace();
return null;
}
}
【问题讨论】:
-
PMD 已弃用此规则。
-
感谢您的评论@fernal73。不过,是否有可能帮助解决这个问题?是否有可能知道为什么 SonarQube 仍在使用这种恶作剧?
-
不知道 Sonar Cube。我从未接触过它。至于回答你的问题,StackOverflow 上也有类似的查询。也许,你会在那里找到答案。
标签: java sonarqube pmd sslcontext