/*
* Copyright 2015 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.wso2.carbon.registry.event.core.qpid;
import org.wso2.carbon.utils.ServerConstants;
public class QpidServerDetails {
private static final String DOMAIN_NAME_SEPARATOR = "@";
private static final String DOMAIN_NAME_SEPARATOR_INTERNAL = "!";
private static final String SECURITY_RESOURCES_DIR = "/repository/resources/security/";
private static final String KEYSTORE_FILE = "wso2carbon.jks";
private static final String TRUSTSTORE_FILE = "client-truststore.jks";
private String accessKey;
private String clientID;
private String virtualHostName;
private String hostName;
private String port;
private boolean sslOnly;
public QpidServerDetails(String accessKey,
String clientID,
String virtualHostName,
String hostName,
String port){
this(accessKey, clientID, virtualHostName, hostName, port, false);
}
public QpidServerDetails(String accessKey,
String clientID,
String virtualHostName,
String hostName,
String port,
boolean sslOnly) {
this.accessKey = accessKey;
this.clientID = clientID;
this.virtualHostName = virtualHostName;
this.hostName = hostName;
this.port = port;
this.sslOnly=sslOnly;
}
public String getTCPConnectionURL(String username, String password) {
// Qpid uses @ to seperate the user name and the client id so
// we need to replace it with !
username = username.replace(DOMAIN_NAME_SEPARATOR, DOMAIN_NAME_SEPARATOR_INTERNAL);
// these are the properties which needs to be passed when ssl is enabled
String KEY_STORE_PATH = System.getProperty(ServerConstants.CARBON_HOME) + SECURITY_RESOURCES_DIR + KEYSTORE_FILE;
String TRUST_STORE_PATH = System.getProperty(ServerConstants.CARBON_HOME) + SECURITY_RESOURCES_DIR + TRUSTSTORE_FILE;
String SSL_PASSWORD = "wso2carbon";
if (sslOnly) {
//"amqp://admin:admin@carbon/carbon?brokerlist='tcp://{hostname}:{port}?ssl='true'&trust_store='{trust_store_path}'&trust_store_password='{trust_store_pwd}'&key_store='{keystore_path}'&key_store_password='{key_store_pwd}''";
return new StringBuffer()
.append("amqp://").append(username).append(":").append(password)
.append("@").append(this.clientID)
.append("/").append(this.virtualHostName)
.append("?brokerlist='tcp://").append(this.hostName).append(":").append(this.port).append("?ssl='true'&trust_store='").append(TRUST_STORE_PATH)
.append("'&trust_store_password='").append(SSL_PASSWORD).append("'&key_store='").append(KEY_STORE_PATH)
.append("'&key_store_password='").append(SSL_PASSWORD).append("''")
.toString();
} else {
// amqp://{username}:{password}@carbon/carbon?brokerlist='tcp://{hostname}:{port}'
return new StringBuffer()
.append("amqp://").append(username).append(":").append(password)
.append("@").append(this.clientID)
.append("/").append(this.virtualHostName)
.append("?brokerlist='tcp://").append(this.hostName).append(":").append(this.port).append("'")
.toString();
}
}
public String getAccessKey() {
return accessKey;
}
public void setAccessKey(String accessKey) {
this.accessKey = accessKey;
}
public String getClientID() {
return clientID;
}
public void setClientID(String clientID) {
this.clientID = clientID;
}
public String getVirtualHostName() {
return virtualHostName;
}
public void setVirtualHostName(String virtualHostName) {
this.virtualHostName = virtualHostName;
}
public String getHostName() {
return hostName;
}
public void setHostName(String hostName) {
this.hostName = hostName;
}
public String getPort() {
return port;
}
public void setPort(String port) {
this.port = port;
}
}