MrprovConnection.java: Fixed sonar issue
[dmaap/dbcapi.git] / src / main / java / org / onap / dmaap / dbcapi / client / MrProvConnection.java
index 91ed1bb..26c494f 100644 (file)
@@ -26,9 +26,11 @@ import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.net.ConnectException;
+import java.net.HttpURLConnection;
 import java.net.ProtocolException;
 import java.net.URL;
 import java.net.UnknownHostException;
+import java.util.Arrays;
 
 import javax.net.ssl.HttpsURLConnection;
 
@@ -49,51 +51,48 @@ public class MrProvConnection extends BaseLoggingClass{
            
        private String provURL;
        
-       private HttpsURLConnection uc;
+       private HttpURLConnection uc;
 
        
        private String topicMgrCred;
+       private boolean useAAF;
+       private String  user;
+       private String  encPwd;
        
-       private String getCred( ) {
+       public MrProvConnection() {
                String mechIdProperty = "aaf.TopicMgrUser";
                String pwdProperty = "aaf.TopicMgrPassword";
                DmaapConfig p = (DmaapConfig)DmaapConfig.getConfig();
-               logger.info( "templog:getCred: 10");
+               user = p.getProperty( mechIdProperty, "noMechId@domain.netset.com" );
+               encPwd = p.getProperty( pwdProperty, "notSet" );
+               useAAF= "true".equalsIgnoreCase(p.getProperty("UseAAF", "false"));
+               topicMgrCred =  getCred();
+               
+       }
+       
+       private String getCred( ) {
 
-               String user = p.getProperty( mechIdProperty, "noMechId@domain.netset.com" );
-               logger.info( "templog:getCred: 20");
 
                String pwd = "";
-               String encPwd = p.getProperty( pwdProperty, "notSet" );
-               logger.info( "templog:getCred: 30");
-
-               AafDecrypt decryptor = new AafDecrypt();
-               logger.info( "templog:getCred: 40");
+               AafDecrypt decryptor = new AafDecrypt();        
                pwd = decryptor.decrypt(encPwd);
-               logger.info( "templog:getCred: 50");
-       
-               return user + ":" + pwd;
-               
-               
-               
+               return user + ":" + pwd;        
        }
        
        
-       public MrProvConnection( ) {
-               topicMgrCred =  getCred();
-
-       }
-       
        public boolean makeTopicConnection( MR_Cluster cluster ) {
                logger.info( "connect to cluster: " + cluster.getDcaeLocationName());
        
 
                provURL = cluster.getTopicProtocol() + "://" + cluster.getFqdn() + ":" + cluster.getTopicPort() + "/topics/create";
 
+               if ( cluster.getTopicProtocol().equals( "https" ) ) {
+                       return makeSecureConnection( provURL );
+               }
                return makeConnection( provURL );
        }
 
-       private boolean makeConnection( String pURL ) {
+       private boolean makeSecureConnection( String pURL ) {
                logger.info( "makeConnection to " + pURL );
        
                try {
@@ -111,6 +110,25 @@ public class MrProvConnection extends BaseLoggingClass{
             return(false);
         } 
 
+       }
+       private boolean makeConnection( String pURL ) {
+               logger.info( "makeConnection to " + pURL );
+       
+               try {
+                       URL u = new URL( pURL );
+                       uc = (HttpURLConnection) u.openConnection();
+                       uc.setInstanceFollowRedirects(false);
+                       logger.info( "open connect to " + pURL );
+                       return(true);
+               } catch( UnknownHostException uhe ){
+               logger.error( "Caught UnknownHostException for " + pURL);
+               return(false);
+        } catch (Exception e) {
+            logger.error("Unexpected error during openConnection of " + pURL );
+            e.printStackTrace();
+            return(false);
+        } 
+
        }
        
        static String bodyToString( InputStream is ) {
@@ -138,9 +156,13 @@ public class MrProvConnection extends BaseLoggingClass{
 
                try {
                        byte[] postData = postTopic.getBytes();
-                       logger.info( "post fields=" + postData.toString() );
-                       uc.setRequestProperty("Authorization", auth);
-                       logger.info( "Authenticating with " + auth );
+                       logger.info( "post fields=" + Arrays.toString(postData));
+                       
+                       // when not using AAF, do not attempt Basic Authentication
+                       if ( useAAF ) {
+                               uc.setRequestProperty("Authorization", auth);
+                               logger.info( "Authenticating with " + auth );
+                       }
                        uc.setRequestMethod("POST");
                        uc.setRequestProperty("Content-Type", "application/json");
                        uc.setRequestProperty( "charset", "utf-8");