|
|
/*
* Program: SSOContext.java
* Purpose: Interface file for SSOContext
* @author Ray Lai (ray.lai@sun.com)
* @version 1.0
* Updated: April 19, 2005, 8:03 AM
* Copyright: (c) 2005 by Sun Microsystems/Ray Lai under Common Development and Distribution License
* Remarks: Full program and documentation will be available under developer.java.net
* For simplicity, logger class is removed.
* =====================================================================================
* Design summary
*
* The SSOContext contains useful configuration and session information for each
* remote security service provider. it needs to be passed to the remote security
* service provider when invoking createSSOConnection.
*/
package com.csp.identity;
import java.rmi.RemoteException;
import java.util.HashMap;
import com.csp.identity.*;
public interface SSOContext {
/**
* Set session information in a HashMap. This stores specific session variables
* that are relevant to a particular remote secure service provider
*
* @param String session variable name
* @param String session variable value
*/
public void setSessionInfo(String sessionVariable, String sessionValue);
/**
* Get session information from a HashMap. This stores specific session variables
* that are relevant to a particular remote secure service provider
* Need to cast the object type upon return
*
* @return Object return in an Object (e.g. String).
*/
public Object getSessionInfo(String sessionVariable);
/**
* Remove session information from a HashMap. The HashMap stores specific session variables
* that are relevant to a particular remote secure service provider
*
* @param String session variable name
*/
public void removeSessionInfo(String sessionVariable);
/**
* Get private configuration properties specific to a particular
* remote secure service provider. This object needs to be loaded during
* initConfig(), by the constructor or manually
*
* @return Properties a Properties object
*/
public java.util.Properties getConfigProperties();
/**
* Set private configuration properties specific to a particular
* remote secure service provider. This object needs to be loaded during
* initConfig(), by the constructor or manually
*
* @param Properties a Properties object
*/
public void setConfigProperties(java.util.Properties configProps);
/**
* Get protocol binding for the remote security service provider
*
* @return String protocol binding, e.g. SOAP, RMI (arbitrary name)
*/
public String getProtocolBinding();
/**
* Set protocol binding for the remote security service provider
*
* @param String protocol binding, e.g. SOAP, RMI (arbitrary name)
*/
public void setProtocolBinding(String protocolBinding);
/**
* Get service name of the remote security service provider.
* This name needs to match the field 'serviceName' in the
* SSOServiceProvider implementation classes
*
* @return String service name, e.g. service1
*/
public String getServiceName();
/**
* set service name
*
* @param String logical remote service name, e.g. service1
*
**/
public void setServiceName(String serviceName);
/**
* Get component reference
*
* @return SSOServiceProvider component reference to be stored in the HashMap
* once a connection is created
**/
public com.csp.identity.SSOServiceProvider getCompRef();
/**
* Set component reference
*
* @param SSOServiceProvider component reference to be stored in the HashMap
* once a connection is created
**/
public void setCompRef(com.csp.identity.SSOServiceProvider compRef);
/**
* Remove component reference
*
**/
public void removeCompRef();
/**
* Look up the class name or URI by the service name
*
* This example hardcodes one class name for demo.
* You may want to replace it by a Service Locator pattern
*
* @param String service name to look up
* @return String class name (or URI) corresponding service
**/
public String serviceLocator(String serviceName);
}
|