Search in sources :

Example 1 with UserPrincipal

use of javax.wbem.client.UserPrincipal in project coprhd-controller by CoprHD.

the class BrocadeNetworkSystemDevice method getWBEMClient.

private WBEMClient getWBEMClient(String ipaddress, String smisport, String username, String password, boolean useSSL) throws NetworkDeviceControllerException {
    try {
        InvokeTestFailure.internalOnlyInvokeTestFailure(InvokeTestFailure.ARTIFICIAL_FAILURE_049);
        WBEMClient client = WBEMClientFactory.getClient(WBEMClientConstants.PROTOCOL_CIMXML);
        String protocol = useSSL ? CimConstants.SECURE_PROTOCOL : CimConstants.DEFAULT_PROTOCOL;
        CIMObjectPath path = CimObjectPathCreator.createInstance(protocol, ipaddress, smisport.toString(), BrocadeNetworkSMIS.getNamespace(), null, null);
        final Subject subject = new Subject();
        subject.getPrincipals().add(new UserPrincipal(username));
        subject.getPrivateCredentials().add(new PasswordCredential(password));
        client.initialize(path, subject, new Locale[] { Locale.US });
        return client;
    } catch (WBEMException ex) {
        _log.info("Failed to connect to Brocade at IP: " + ipaddress + " because: " + ex.getLocalizedMessage());
        throw NetworkDeviceControllerException.exceptions.getWBEMClientFailed(ipaddress, ex);
    }
}
Also used : CIMObjectPath(javax.cim.CIMObjectPath) PasswordCredential(javax.wbem.client.PasswordCredential) WBEMClient(javax.wbem.client.WBEMClient) WBEMException(javax.wbem.WBEMException) Subject(javax.security.auth.Subject) UserPrincipal(javax.wbem.client.UserPrincipal)

Example 2 with UserPrincipal

use of javax.wbem.client.UserPrincipal in project coprhd-controller by CoprHD.

the class DCNMDialog method getClient.

/**
 * Initialize the client interface.
 *
 * @param ipaddress
 * @param username
 * @param password
 * @param smisport
 * @return WBEMClient
 */
public WBEMClient getClient(String ipaddress, String username, String password, Integer smisport) {
    try {
        WBEMClient client = WBEMClientFactory.getClient(WBEMClientConstants.PROTOCOL_CIMXML);
        CIMObjectPath path = CimObjectPathCreator.createInstance("http", ipaddress, smisport.toString(), _namespace, null, null);
        final Subject subject = new Subject();
        subject.getPrincipals().add(new UserPrincipal(username));
        subject.getPrivateCredentials().add(new PasswordCredential(password));
        client.initialize(path, subject, new Locale[] { Locale.US });
        _client = client;
        return client;
    } catch (WBEMException ex) {
        _log.error("Can't open client: WBEMException: " + ex.getLocalizedMessage());
        return null;
    }
}
Also used : CIMObjectPath(javax.cim.CIMObjectPath) PasswordCredential(javax.wbem.client.PasswordCredential) WBEMClient(javax.wbem.client.WBEMClient) WBEMException(javax.wbem.WBEMException) Subject(javax.security.auth.Subject) UserPrincipal(javax.wbem.client.UserPrincipal)

Example 3 with UserPrincipal

use of javax.wbem.client.UserPrincipal in project coprhd-controller by CoprHD.

the class HDSCommunicationInterface method getCIMClient.

/**
 * Creates a new WEBClient for a given IP, based on AccessProfile
 *
 * @param accessProfile
 *            : AccessProfile for the providers
 * @throws WBEMException
 *             : if WBEMException while creating the WBEMClient
 * @throws SMIPluginException
 * @return WBEMClient : initialized instance of WBEMClientCIMXML
 */
private WBEMClient getCIMClient(AccessProfile accessProfile) throws Exception {
    String protocol = Boolean.valueOf(accessProfile.getSslEnable()) ? CimConstants.SECURE_PROTOCOL : CimConstants.DEFAULT_PROTOCOL;
    CIMObjectPath path = CimObjectPathCreator.createInstance(protocol, accessProfile.getIpAddress(), Integer.toString(accessProfile.getPortNumber()), accessProfile.getInteropNamespace(), null, null);
    try {
        Subject subject = new Subject();
        subject.getPrincipals().add(new UserPrincipal(accessProfile.getUserName()));
        subject.getPrivateCredentials().add(new PasswordCredential(accessProfile.getPassword()));
        wbemClient = WBEMClientFactory.getClient(CimConstants.CIM_CLIENT_PROTOCOL);
        // Operations block by default, so a timeout must be set in case the
        // CIM server becomes unreachable.
        // Commenting out, as timeout had been moved to cimom.properties
        // file
        // _cimClient.setProperty(WBEMClientConstants.PROP_TIMEOUT,
        // CimConstants.CIM_CLIENT_TIMEOUT);
        wbemClient.initialize(path, subject, null);
    } catch (Exception e) {
        _logger.error("Could not establish connection for {}", accessProfile.getIpAddress(), e);
        wbemClient.close();
        throw e;
    }
    return wbemClient;
}
Also used : CIMObjectPath(javax.cim.CIMObjectPath) PasswordCredential(javax.wbem.client.PasswordCredential) Subject(javax.security.auth.Subject) UserPrincipal(javax.wbem.client.UserPrincipal) HDSCollectionException(com.emc.storageos.volumecontroller.impl.hds.HDSCollectionException) DatabaseException(com.emc.storageos.db.exceptions.DatabaseException) BaseCollectionException(com.emc.storageos.plugins.BaseCollectionException) HDSException(com.emc.storageos.hds.HDSException) WBEMException(javax.wbem.WBEMException) IOException(java.io.IOException) SMIPluginException(com.emc.storageos.plugins.metering.smis.SMIPluginException)

Example 4 with UserPrincipal

use of javax.wbem.client.UserPrincipal in project coprhd-controller by CoprHD.

the class CimConnection method connect.

/**
 * Opens the connection and sets up indication subscriptions on the CIMOM.
 * Call is synchronized by the caller {@link ConnectionManager}. If the
 * passed flag indicates, prior to setting up the indication subscriptions
 * for the connection, the subscription manager should attempt to delete any
 * old/stale subscriptions that exist on the provider to which the
 * connection is being made. The passed identifier is used by the
 * subscription manager to identify the stale subscriptions to be deleted.
 *
 * Also registers this connection with the indication listener.
 *
 * @param subscriptionsIdentifier The identifier to be used to identify
 *            subscriptions on the provider.
 * @param deleteStaleSubscriptions true to delete stale subscriptions on the
 *            provider to which the connection is being made.
 *
 * @throws Exception if the connection cannot be established or if there is
 *             a problem setting up subscriptions.
 */
public void connect(String subscriptionsIdentifier, boolean deleteStaleSubscriptions) throws Exception {
    s_logger.info("Establising connection for {}", _connectionName);
    String protocol = _useSSL ? CimConstants.SECURE_PROTOCOL : CimConstants.DEFAULT_PROTOCOL;
    CIMObjectPath path = CimObjectPathCreator.createInstance(protocol, _host, Integer.toString(_port), _interopNS, null, null);
    try {
        Subject subject = new Subject();
        subject.getPrincipals().add(new UserPrincipal(_user));
        subject.getPrivateCredentials().add(new PasswordCredential(_pass_word));
        _cimClient = WBEMClientFactory.getClient(CimConstants.CIM_CLIENT_PROTOCOL);
        // Operations block by default, so a timeout must be set in case the
        // CIM server becomes unreachable.
        // Commenting out, as timeout had been moved to cimom.properties file
        // _cimClient.setProperty(WBEMClientConstants.PROP_TIMEOUT, CimConstants.CIM_CLIENT_TIMEOUT);
        _cimClient.initialize(path, subject, null);
    } catch (Exception e) {
        s_logger.error("Could not establish connection for {}", _host, e);
        _cimClient.close();
        throw e;
    }
}
Also used : CIMObjectPath(javax.cim.CIMObjectPath) PasswordCredential(javax.wbem.client.PasswordCredential) Subject(javax.security.auth.Subject) UserPrincipal(javax.wbem.client.UserPrincipal) WBEMException(javax.wbem.WBEMException)

Example 5 with UserPrincipal

use of javax.wbem.client.UserPrincipal in project coprhd-controller by CoprHD.

the class CommunicationInterfaceTest method getCIMClient.

private void getCIMClient(AccessProfile accessProfile, WBEMClient cimClient) throws SMIPluginException {
    try {
        CIMObjectPath path = CimObjectPathCreator.createInstance(accessProfile.getProtocol(), accessProfile.getIpAddress(), accessProfile.getProviderPort(), accessProfile.getInteropNamespace(), null, null);
        UserPrincipal userPr = new UserPrincipal(accessProfile.getUserName(), accessProfile.getIpAddress());
        PasswordCredential pwCred = new PasswordCredential(accessProfile.getPassword(), accessProfile.getIpAddress());
        Subject subject = new Subject();
        subject.getPrincipals().add(userPr);
        subject.getPublicCredentials().add(pwCred);
        subject.getPrivateCredentials().add(pwCred);
        cimClient.initialize(path, subject, new Locale[] { Locale.US });
    } catch (WBEMException e) {
        final int errorCode = e.getID() + SMIPluginException.ERRORCODE_START_WBEMEXCEPTION;
        // _logger.error(fetchWBEMErrorMessage(e), errorCode);
        throw new SMIPluginException("CIMOM Initializing Error", errorCode);
    }
}
Also used : CIMObjectPath(javax.cim.CIMObjectPath) PasswordCredential(javax.wbem.client.PasswordCredential) SMIPluginException(com.emc.storageos.plugins.metering.smis.SMIPluginException) WBEMException(javax.wbem.WBEMException) UserPrincipal(javax.wbem.client.UserPrincipal) Subject(javax.security.auth.Subject)

Aggregations

CIMObjectPath (javax.cim.CIMObjectPath)5 Subject (javax.security.auth.Subject)5 WBEMException (javax.wbem.WBEMException)5 PasswordCredential (javax.wbem.client.PasswordCredential)5 UserPrincipal (javax.wbem.client.UserPrincipal)5 SMIPluginException (com.emc.storageos.plugins.metering.smis.SMIPluginException)2 WBEMClient (javax.wbem.client.WBEMClient)2 DatabaseException (com.emc.storageos.db.exceptions.DatabaseException)1 HDSException (com.emc.storageos.hds.HDSException)1 BaseCollectionException (com.emc.storageos.plugins.BaseCollectionException)1 HDSCollectionException (com.emc.storageos.volumecontroller.impl.hds.HDSCollectionException)1 IOException (java.io.IOException)1