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;
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 {
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 ) {
try {
byte[] postData = postTopic.getBytes();
logger.info( "post fields=" + postData.toString() );
- uc.setRequestProperty("Authorization", auth);
- logger.info( "Authenticating with " + auth );
+
+ // 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");