Compoze Software, Inc.

portlets.compoze.groupware.c13n
Class BEALoginCollabWebDAVAccountListener

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

public class BEALoginCollabWebDAVAccountListener
extends DefaultAccountListener
implements java.io.Serializable

This class represents a Collaboration Exchange WebDAV 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
BEALoginCollabWebDAVAccountListener()
           
 
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

BEALoginCollabWebDAVAccountListener

public BEALoginCollabWebDAVAccountListener()
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 properties required to create a collaboration Exchange WebDAV session include:

  1. Username
  2. Password
  3. Exchange Server URL (hostname)
  4. User domain
  5. Authentication scheme to use when connecting to an Exchange server
  6. WebDAV Active Directory server URL (for Global Address List functionality)

Connection properties not required to create a a collaboration Exchange WebDAV session include:

  1. Proxy host
  2. Port to use when connecting to the proxy host
  3. Username used to authenticate to the proxy server
  4. Password used to authenticate to the proxy server
  5. Mailbox: default to the Username unless it is specifically set
  6. Protocol
  7. Port of the Exchange server to connect to
  8. Root context of the Exchange virtual server under IIS


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

Collaboration Exchange WebDAV 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 Collaboration Exchange WebDAV 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.

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 create a collaboration session using WebDAV.

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, 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.