Compoze Software, Inc.

portlets.compoze.groupware.c13n
Class BEALoginExchangeAccountListener

java.lang.Object
  extended byportlets.compoze.groupware.c13n.DefaultAccountListener
      extended byportlets.compoze.groupware.c13n.BEALoginExchangeAccountListener
All Implemented Interfaces:
AccountListener, java.io.Serializable

public class BEALoginExchangeAccountListener
extends DefaultAccountListener
implements java.io.Serializable

This class represents an Exchange account listener for handling SSO with the BEA Portal Username and Password being the same as the Microsoft Exchange Username and Password respectively. Modifications to the LoginBacking file is necessary as well to obtain the BEA Portal Password.

Code is for example purpose.

See Also:
Serialized Form

Constructor Summary
BEALoginExchangeAccountListener()
           
 
Method Summary
 ConnectionPropertyValue[] getAdditionalConnectionPropertyValues(javax.servlet.http.HttpSession httpSession, GroupwareSession groupwareSession, javax.servlet.http.HttpServletRequest request, Account account, com.bea.p13n.usermgmt.profile.ProfileWrapper userProfileWrapper)
          Invoked when getting additional account property values.
 ConnectionPropertyValue[] getConnectionPropertyValues(javax.servlet.http.HttpSession session, com.bea.p13n.usermgmt.profile.ProfileWrapper userProfileWrapper, Account account, ConnectionPropertyValue[] values)
          Invoked when getting account property values.
 ConnectionPropertyValue[] getDefaultConnectionPropertyValues(javax.servlet.http.HttpSession session, com.bea.p13n.usermgmt.profile.ProfileWrapper userProfileWrapper, ConnectionPropertyValue[] values)
          Invoked when getting default account property values.
 portlets.compoze.groupware.controls.provider.Provider getDefaultProvider()
          Invoked when checking for the default provider.
 java.lang.String getRequiredAccountName(javax.servlet.http.HttpSession session, com.bea.p13n.usermgmt.profile.ProfileWrapper userProfileWrapper)
          Gets the name of the required account.
 boolean isAccountRequired(javax.servlet.http.HttpSession session, com.bea.p13n.usermgmt.profile.ProfileWrapper userProfileWrapper)
          Checks if at least one account is required.
 boolean isConfigurable()
          Invoked when checking if users can configure accounts.
 boolean isPropertyModifiable(ConnectionProperty connProp)
          Invoked when checking if the connection property is modifiable.
 boolean isPropertyRequired(ConnectionProperty connProp)
          Invoked when checking if the connection property is required.
 boolean supportsMultipleAccounts()
          Invoked when checking if multiple accounts are supported.
 
Methods inherited from class portlets.compoze.groupware.c13n.DefaultAccountListener
appendConnectionPropertyValue, appendConnectionPropertyValues, decodeValue, dumpConnectionPropertyValues, encodeValue, getAccountListener, getConnectionPropertyValue, isPasswordEncrypted, setConnectionPropertyValues
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BEALoginExchangeAccountListener

public BEALoginExchangeAccountListener()
Method Detail

isPropertyModifiable

public boolean isPropertyModifiable(ConnectionProperty connProp)
Invoked when checking if the connection property is modifiable.

Specified by:
isPropertyModifiable in interface AccountListener
Overrides:
isPropertyModifiable in class DefaultAccountListener
Parameters:
connProp - the connection property
Returns:
true if the connection property is modifiable; false otherwise

To enable the BEA portal Single-Sign-On (SSO), the connection properties for a user should be resolved through the Globla Addressbook Lookup (GAL) at login time.

For SSO, all connection properties could be made unmodifiable. If user is not allowed to configure the account (see # isConfigurable), then user will not be able to view the connection properties in the portal even if the property is modifiable.

If you don't want to persist the connection properties and values of a groupware account, you can make the property unmodifiable.


isPropertyRequired

public boolean isPropertyRequired(ConnectionProperty connProp)
Invoked when checking if the connection property is required.

Specified by:
isPropertyRequired in interface AccountListener
Overrides:
isPropertyRequired in class DefaultAccountListener
Parameters:
connProp - the connection property
Returns:
true if the connection property is required; false otherwise

Connection required to establish a connection to the Exchange service include:

  1. Username
  2. Password
  3. Exchange Server URL (hostname)
  4. SOAP Server URL (Exchange Service URL)
  5. User domain

Connection not required to establish a connection to the Exchange service include:

  1. Mailbox: default to the Username unless it is specifically set
  2. SOAP Username
  3. SOAP Password
  4. SOAP Encryption Key
  5. Prococol Class


supportsMultipleAccounts

public boolean supportsMultipleAccounts()
Invoked when checking if multiple accounts are supported.

Specified by:
supportsMultipleAccounts in interface AccountListener
Overrides:
supportsMultipleAccounts in class DefaultAccountListener
Returns:
true if multiple accounts are supported; false otherwise

In case of SSO, a BEA portal user will be mapped to only one Exchange account. Therefore multiple acounts are not supported.


isConfigurable

public boolean isConfigurable()
Invoked when checking if users can configure accounts.

Specified by:
isConfigurable in interface AccountListener
Overrides:
isConfigurable in class DefaultAccountListener
Returns:
true if accounts are configurable; false otherwise

In case of SSO, user is not allowed to configure the account.


getDefaultProvider

public portlets.compoze.groupware.controls.provider.Provider getDefaultProvider()
Invoked when checking for the default provider.

Specified by:
getDefaultProvider in interface AccountListener
Overrides:
getDefaultProvider in class DefaultAccountListener
Returns:
the default provider

Exchange service is required groupware provider.


getConnectionPropertyValues

public ConnectionPropertyValue[] getConnectionPropertyValues(javax.servlet.http.HttpSession session,
                                                             com.bea.p13n.usermgmt.profile.ProfileWrapper userProfileWrapper,
                                                             Account account,
                                                             ConnectionPropertyValue[] values)
                                                      throws GroupwareException
Invoked when getting account property values.

Specified by:
getConnectionPropertyValues in interface AccountListener
Overrides:
getConnectionPropertyValues in class DefaultAccountListener
Parameters:
session - the http session (may not be null)
userProfileWrapper - the user profile (may not be null)
account - the account (may not be null)
values - an array of connection property values
Returns:
an array of connection property values

Connection property values are obtained to initialize or create a session for a groupware account. The connection property values belongs to the account passed to this method.

The connection property values passed to this method could be re-processed here. The returned connection property value could also be obtained from the portal through the user profile wrapper. They could also be extracted from a file, database or any network resources.

In case of SSO, it is not necessary to persist the general connection property values.

Throws:
GroupwareException

getDefaultConnectionPropertyValues

public ConnectionPropertyValue[] getDefaultConnectionPropertyValues(javax.servlet.http.HttpSession session,
                                                                    com.bea.p13n.usermgmt.profile.ProfileWrapper userProfileWrapper,
                                                                    ConnectionPropertyValue[] values)
                                                             throws GroupwareException
Invoked when getting default account property values.

Specified by:
getDefaultConnectionPropertyValues in interface AccountListener
Overrides:
getDefaultConnectionPropertyValues in class DefaultAccountListener
Parameters:
session - the http session (may not be null)
userProfileWrapper - the user profile (may not be null)
values - an array of connection property values (may not be null)

SSO - The BEA Portal Username and Password will be used to create the Exchange Session. This is only possible if the BEA Portal Username and Password are the same as the MS Exchange Server Username and Password. If a GAL Lookup is desired (to determine the Exchange Server and/or Mailbox), don't pass in the PROP_EXCHANGE_SERVER and/or PROP_EXCHANGE_MAILBOX properties. Some configuration may be necessary on the Compoze Exchange Connector Service machine (SOAP Server) to allow for the GAL Lookup (see the Compoze Exchange Connector setup guide).

Throws:
GroupwareException

isAccountRequired

public boolean isAccountRequired(javax.servlet.http.HttpSession session,
                                 com.bea.p13n.usermgmt.profile.ProfileWrapper userProfileWrapper)
                          throws GroupwareException
Checks if at least one account is required.

Specified by:
isAccountRequired in interface AccountListener
Overrides:
isAccountRequired in class DefaultAccountListener
Parameters:
session - the http session (may not be null)
userProfileWrapper - the user profile (may not be null)
Returns:
true if an account is required; false otherwise

At least one groupware account is required for a user to use the groupware portlet. Without one account, user will not be able to establish a groupware session and then a connection to the Exchange service.

Throws:
GroupwareException

getRequiredAccountName

public java.lang.String getRequiredAccountName(javax.servlet.http.HttpSession session,
                                               com.bea.p13n.usermgmt.profile.ProfileWrapper userProfileWrapper)
                                        throws GroupwareException
Gets the name of the required account.

Specified by:
getRequiredAccountName in interface AccountListener
Overrides:
getRequiredAccountName in class DefaultAccountListener
Parameters:
session - the http session (may not be null)
userProfileWrapper - the user profile (may not be null)
Returns:
the account name (may not be null)
Throws:
GroupwareException
See Also:

SSO - only one groupware account is required and only one groupware account is supported. The account properties (account name, service provider name, etc.) will be persisted.


getAdditionalConnectionPropertyValues

public ConnectionPropertyValue[] getAdditionalConnectionPropertyValues(javax.servlet.http.HttpSession httpSession,
                                                                       GroupwareSession groupwareSession,
                                                                       javax.servlet.http.HttpServletRequest request,
                                                                       Account account,
                                                                       com.bea.p13n.usermgmt.profile.ProfileWrapper userProfileWrapper)
                                                                throws GroupwareException
Invoked when getting additional account property values.

Specified by:
getAdditionalConnectionPropertyValues in interface AccountListener
Overrides:
getAdditionalConnectionPropertyValues in class DefaultAccountListener
Parameters:
httpSession - the http session (may not be null)
groupwareSession - the groupware session (may not be null)
account - the grouwpware account for which to retrieve additional property values (may not be null)
userProfileWrapper - the user profile (may not be null)
Returns:
an array of connection property values or an empty array
Throws:
GroupwareException

Compoze Software, Inc.

Copyright ©1999-2003 Compoze Software, Inc. All rights reserved.