Package com.mycorp.examples.timeservice.consumer.ds.generic.auth

Source Code of com.mycorp.examples.timeservice.consumer.ds.generic.auth.GenericAuthConsumerContainerSelector

/*******************************************************************************
* Copyright (c) 2014 Composent, Inc. All rights reserved. This
* program and the accompanying materials are made available under the terms of
* the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors: Scott Lewis - initial API and implementation
******************************************************************************/
package com.mycorp.examples.timeservice.consumer.ds.generic.auth;

import java.util.HashMap;
import java.util.Map;

import org.eclipse.ecf.core.ContainerTypeDescription;
import org.eclipse.ecf.core.IContainer;
import org.eclipse.ecf.core.identity.ID;
import org.eclipse.ecf.core.security.IConnectContext;
import org.eclipse.ecf.core.security.IConnectInitiatorPolicy;
import org.eclipse.ecf.core.sharedobject.ISharedObjectContainerClient;
import org.eclipse.ecf.osgi.services.remoteserviceadmin.ConsumerContainerSelector;
import org.eclipse.ecf.osgi.services.remoteserviceadmin.SelectContainerException;
import org.eclipse.ecf.remoteservice.IRemoteServiceContainer;

public class GenericAuthConsumerContainerSelector extends
    ConsumerContainerSelector {

  public GenericAuthConsumerContainerSelector() {
    super(true);
  }

  @Override
  protected IRemoteServiceContainer createContainer(
      ContainerTypeDescription containerTypeDescription,
      String containerTypeDescriptionName,
      @SuppressWarnings("rawtypes") Map properties)
      throws SelectContainerException {
    IRemoteServiceContainer result = super.createContainer(
        containerTypeDescription, containerTypeDescriptionName,
        properties);

    ISharedObjectContainerClient client = (ISharedObjectContainerClient) result
        .getContainer().getAdapter(ISharedObjectContainerClient.class);
    if (client != null) {
      client.setConnectInitiatorPolicy(new IConnectInitiatorPolicy() {
        public void refresh() {
        }

        public Object createConnectData(IContainer container,
            ID targetID, IConnectContext context) {
          // This is called when the client.connect method
          // is called. Here is our chance to send credentials
          // to the server.
          return getConnectData();
        }

        public int getConnectTimeout() {
          return 30000;
        }
      });
    }
    return result;
  }

  @SuppressWarnings({ "rawtypes", "unchecked" })
  Object getConnectData() {
    Map results = new HashMap();
    // Get system properties values, if present
    String username = System.getProperty("myUsername");
    if (username != null) {
      results.put("username",username);
      String password = System.getProperty("myPassword");
      if (password != null)
        results.put("password",password);
    }
    if (results.size() > 0)
      return results;
    return null;
  }
}
TOP

Related Classes of com.mycorp.examples.timeservice.consumer.ds.generic.auth.GenericAuthConsumerContainerSelector

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.