]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-14870 DNS cache never expires causing PR decoration to fail
authorDuarte Meneses <duarte.meneses@sonarsource.com>
Thu, 3 Jun 2021 13:45:20 +0000 (08:45 -0500)
committersonartech <sonartech@sonarsource.com>
Thu, 3 Jun 2021 20:31:39 +0000 (20:31 +0000)
server/sonar-process/src/main/java/org/sonar/process/SecurityManagement.java

index 7a2d32f4fc5867357c70beeb6b3af56a2320bf51..137e0a539c6c8b8c2a2ca3e42f1ef1f3b7552b49 100644 (file)
@@ -25,12 +25,15 @@ import java.security.PermissionCollection;
 import java.security.Permissions;
 import java.security.Policy;
 import java.security.ProtectionDomain;
+import java.security.Security;
 import java.security.SecurityPermission;
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
 
 public class SecurityManagement {
+  private static final String CACHE_TTL_KEY = "networkaddress.cache.ttl";
+
   private SecurityManagement() {
     // static only
   }
@@ -39,6 +42,10 @@ public class SecurityManagement {
     SecurityManager sm = new SecurityManager();
     Policy.setPolicy(new CustomPolicy());
     System.setSecurityManager(sm);
+    // SONAR-14870 By default, with a security manager installed, the DNS cache never times out. See InetAddressCachePolicy.
+    if (Security.getProperty(CACHE_TTL_KEY) == null) {
+      Security.setProperty(CACHE_TTL_KEY, "30");
+    }
   }
 
   static class CustomPolicy extends Policy {