001: package com.sun.ssoadapter;
002:
003: import com.iplanet.sso.SSOToken;
004: import com.iplanet.sso.SSOTokenEvent;
005:
006: import com.sun.ssoadapter.SSOAdapter;
007: import com.sun.ssoadapter.AbstractSSOAdapter;
008: import com.sun.ssoadapter.SSOAdapterException;
009: import com.sun.ssoadapter.SSOAdapterLogger;
010:
011: import java.util.List;
012: import java.util.Iterator;
013: import java.util.Locale;
014: import java.util.logging.Level;
015: import java.util.logging.Logger;
016: import java.util.Properties;
017:
018: /*
019: * This class is a generic SSOAdapter.
020: *
021: */
022: /**
023: * A GenericSSOAdapter, it is created when no ssoClassName is provided.
024: */
025: class GenericSSOAdapter extends AbstractSSOAdapter {
026:
027: /**
028: * Logs data
029: */
030: private static Logger logger = SSOAdapterLogger
031: .getLogger("com.sun.portal.ssoadapter.impl");
032:
033: /**
034: * Constructor
035: */
036: public GenericSSOAdapter() {
037: }
038:
039: /*
040: * Initialize and validate SSOAdapter
041: *
042: * @param adapterName Used to identify the SSOAdapter
043: * @param token Used to identify the user on who's behalf the request is
044: * being processed.
045: * @param adapterProperties Contains the adapter information that will drive
046: * the operation of this instance of an SSOAdapter.
047: */
048: /**
049: * iny called by SSOAdapterFactory
050: * @param adapterName
051: * @param token
052: * @param adapterProperties
053: * @param userPropertiesList
054: * @param encodedProperteisList
055: * @param locale
056: * @throws com.sun.ssoadapter.SSOAdapterException
057: */
058: public void init(String adapterName, SSOToken token,
059: Properties adapterProperties, List userPropertiesList,
060: List encodedPropertiesList, Locale locale)
061: throws SSOAdapterException {
062:
063: super .init(adapterName, token, adapterProperties,
064: userPropertiesList, encodedPropertiesList, locale);
065:
066: if (logger.isLoggable(Level.INFO)) {
067: Properties dp = new Properties();
068: dp.putAll(adapterProperties);
069: dp.remove(PROP_PASSWORD_NAME);
070: dp.remove("proxyAdminPassword");
071: Iterator iter = encodedPropertiesList.iterator();
072: while (iter.hasNext()) {
073: String key = (String) iter.next();
074: dp.remove(key);
075: }
076: String[] param = new String[5];
077: param[0] = adapterName;
078: param[1] = (String) dp.toString();
079: param[2] = identifier;
080: param[3] = userPropertiesList.toString();
081: param[4] = encodedPropertiesList.toString();
082:
083: logger.log(Level.INFO, "PSSA_CSSI0001", param);
084: }
085:
086: }
087:
088: /*
089: * Adapter specific Connection.
090: *
091: * @return Object of adapter specific connection.
092: */
093: /**
094: *
095: * @return
096: */
097: public Object getConnection() {
098: return null;
099: }
100:
101: /*
102: * Adapter specific Connection termination.
103: *
104: * @return true if the connection was terminated successfully.
105: */
106: /**
107: *
108: * @return
109: */
110: public boolean closeConnection() {
111: return true;
112: }
113:
114: /**
115: * Implements SSOTokenListener "ssoTokenChanged" method.
116: *
117: * The following are possible SSO token event types:
118: * <ul>
119: * <li>SSO_TOKEN_IDLE_TIMEOUT
120: * <li>SSO_TOKEN_MAX_TIMEOUT
121: * <li>SSO_TOKEN_DESTROY
122: * </ul>
123: *
124: * @param evt SSOTokenEvent
125: */
126: public void ssoTokenChanged(SSOTokenEvent evt) {
127: }
128:
129: }
|