001: /**
002: * $Id: SSOAdapter.java,v 1.9 2005/06/13 18:08:50 rakeshn Exp $
003: * Copyright 2002 Sun Microsystems, Inc. All
004: * rights reserved. Use of this product is subject
005: * to license terms. Federal Acquisitions:
006: * Commercial Software -- Government Users
007: * Subject to Standard License Terms and
008: * Conditions.
009: *
010: * Sun, Sun Microsystems, the Sun logo, and iPlanet
011: * are trademarks or registered trademarks of Sun Microsystems,
012: * Inc. in the United States and other countries.
013: */package com.sun.ssoadapter;
014:
015: import java.util.Locale;
016: import java.util.List;
017: import java.util.Properties;
018: import com.iplanet.sso.SSOToken;
019: import com.iplanet.sso.SSOTokenListener;
020: import com.iplanet.sso.SSOTokenEvent;
021: import com.iplanet.sso.SSOException;
022:
023: /**
024: * This interface describes an object that implements SSOAdapter functionality.
025: * <p>The primary purpose of an SSOAdapter is to provide SSO enablement
026: * of servlet based middleware, in regards to access to back-end services, e.g.,
027: * mail, calendar, or addressbook.
028: * <p>An SSOAdapter acts as a bridge
029: * between the DSAME authentication and sessioning mechanism and
030: * whatever authentication and sessioning mechanism is employed
031: * by a particular back-end service.
032: *
033: * @version 1.0
034: * @see com.sun.ssoadapter.SSOAdapterFactory
035: * @see com.sun.ssoadapter.SSOAdapterException
036: *
037: */
038:
039: public interface SSOAdapter extends SSOAdapterConstants,
040: SSOTokenListener {
041:
042: /**
043: * Performs SSOAdapter initialization.
044: * <p>When an SSOAdapter is instantiated by an SSOAdapterFactory,
045: * this method is invoked immediately following object creation.
046: * <p>The init() method should not be used to perform any sort
047: * of authencation nor should it establish a connection with any
048: * backend service.
049: * <p>The init() method is only invoked once during the lifetime of
050: * an SSOAdapter.
051: * @param userPropertiesList the list with userPropertie's keys as Strings
052: * @param encodedPropertiesList A list of encodedPropertie's keys as String
053: * @param locale The locale
054: * @param adapterName Used to identify the SSOAdapter
055: * @param token Used to identify the user on who's behalf the request is
056: * being processed.
057: * @param adapterProperties Contains the adapter information that will drive
058: * the operation of this instance of an SSOAdapter.
059: * @throws com.sun.ssoadapter.SSOAdapterException If fails
060: */
061: public void init(String adapterName, SSOToken token,
062: Properties adapterProperties, List userPropertiesList,
063: List encodedPropertiesList, Locale locale)
064: throws SSOAdapterException;
065:
066: /**
067: * Adapter specific Connection.
068: * It typically returns the MailStore for JavaMailSSOAdapter
069: * @return This can be any Object like JavaMailStore
070: */
071: public Object getConnection();
072:
073: /**
074: * Returns the SSOToken bound to this SSOAdapter.
075: * @throws com.sun.ssoadapter.SSOAdapterException Exception if fails
076: * @return The SSOToken
077: */
078: public SSOToken getSSOToken() throws SSOAdapterException;
079:
080: /**
081: * Returns the Name of this SSOAdapter.
082: * @return The Name of this Adapter
083: */
084: public String getName();
085:
086: /**
087: * Returns the Properties bound to this SSOAdapter.
088: * @return A list of properties which are set
089: */
090: public Properties getProperties();
091:
092: /**
093: * If the sepcified Property is a User configurable it will return true else false
094: * @param propertyKey the key you want to check
095: * @return true if the argument is a UserProperty else false
096: * @since Portal 7
097: */
098: public boolean isUserProperty(String propertyKey);
099:
100: /**
101: * if this property can be configured only by Admin returns true else false
102: * @param propertyKey the key you want to test
103: * @return true if it is a admin Property else false
104: * @since Portal 7
105: */
106: public boolean isAdminProperty(String propertyKey);
107:
108: /**
109: * If this is a Encoded property returns true else false
110: * @param propertyKey the key you want to test
111: * @return true if it is a EncodedProperty else false
112: * @since Portal 7
113: */
114: public boolean isEncodedProperty(String propertyKey);
115:
116: /**
117: * A List of the user Properties Keys. The values are available in getProperties
118: * @return the List containing UserProperties keys.
119: * @since Portal 7
120: */
121: public List getUserPropertiesList();
122:
123: /**
124: * A List of the encoded Properties Keys. The values are available in getProperties
125: * @return the List containing EncodedProperties keys.
126: * @since Portal 7
127: */
128: public List getEncodedPropertiesList();
129:
130: /**
131: * Adapter specific Connection termination.
132: * @return true on success , false otherwise
133: */
134: public boolean closeConnection();
135:
136: /**
137: * Implements SSOTokenListener "ssoTokenChanged" method.
138: * @see com.iplanet.sso.SSOTokenListener
139: * @param evt This is passed by AM with
140: * clean if evtType != evt.SSO_TOKEN_DESTROY
141: * || evtType != evt.SSO_TOKEN_IDLE_TIMEOUT
142: * || evtType != evt.SSO_TOKEN_MAX_TIMEOUT
143: */
144: public void ssoTokenChanged(SSOTokenEvent evt);
145:
146: }
|