[DMAAP-DR] Remove AAF/TLS phase 1
[dmaap/datarouter.git] / datarouter-node / src / main / java / org / onap / dmaap / datarouter / node / NodeUtils.java
index d4fc7db..5cca737 100644 (file)
@@ -47,8 +47,11 @@ import java.util.Enumeration;
 import java.util.TimeZone;
 import java.util.UUID;
 import java.util.zip.GZIPInputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import javax.naming.InvalidNameException;
+import javax.naming.ldap.LdapName;
+import javax.naming.ldap.Rdn;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.lang3.StringUtils;
 import org.onap.dmaap.datarouter.node.eelf.EelfMsgs;
@@ -59,8 +62,7 @@ import org.slf4j.MDC;
  */
 public class NodeUtils {
 
-    private static EELFLogger eelfLogger = EELFManager.getInstance()
-            .getLogger(NodeUtils.class);
+    private static final EELFLogger eelfLogger = EELFManager.getInstance().getLogger(NodeUtils.class);
 
     private NodeUtils() {
     }
@@ -96,14 +98,14 @@ public class NodeUtils {
      */
     public static String getNodeAuthHdr(String node, String key) {
         try {
-            MessageDigest md = MessageDigest.getInstance("SHA");
+            MessageDigest md = MessageDigest.getInstance("SHA-512");
             md.update(key.getBytes());
             md.update(node.getBytes());
             md.update(key.getBytes());
             return (getAuthHdr(node, base64Encode(md.digest())));
         } catch (Exception exception) {
             eelfLogger
-                    .error("Exception in generating Credentials for given node name:= " + exception.toString(),
+                    .error("Exception in generating Credentials for given node name:= " + exception.getMessage(),
                             exception);
             return (null);
         }
@@ -315,15 +317,16 @@ public class NodeUtils {
             X509Certificate cert = (X509Certificate) ks.getCertificate(alias);
             if (cert != null) {
                 String subject = cert.getSubjectX500Principal().getName();
-                String[] parts = subject.split(",");
-                if (parts.length < 1) {
-                    return null;
+                try {
+                    LdapName ln = new LdapName(subject);
+                    for (Rdn rdn : ln.getRdns()) {
+                        if (rdn.getType().equalsIgnoreCase("CN")) {
+                            return rdn.getValue().toString();
+                        }
+                    }
+                } catch (InvalidNameException e) {
+                    eelfLogger.error("No valid CN not found for dr-node cert", e);
                 }
-                subject = parts[5].trim();
-                if (!subject.startsWith("CN=")) {
-                    return null;
-                }
-                return subject.substring(3);
             }
         }
         return null;