public class ProfileServices extends GenericService implements atg.userprofiling.ProfileServiceConstants
| Modifier and Type | Field and Description | 
|---|---|
static java.lang.String | 
CLASS_VERSION
Class version string 
 | 
SERVICE_INFO_KEYADMIN_UPDATE_NULL_ELEMENT, AUTHENTICATE_HASHKEY_ATTRIBUTE, AUTHENTICATE_TIMER_ATTRIBUTE, CHANGE_PASSWORD_MISMATCH, COPY_NULL_ITEM, CREATE_EXISTING_ITEM_ID, CREATE_EXISTING_ITEM_LOGIN, CREATE_ID_PARAM, CREATE_ID_PARAM_NAME, CREATE_NULL_ITEM, DEFAULT_LOGIN_PROFILE_TYPE, DEFAULT_PROFILE_PATH, DEFAULT_PROFILE_TOOLS_PATH, DEFAULT_REQUEST_LOCALE_PATH, DEFAULT_USER_PATH, DYNAMIC_ALGORITHM_INDICATOR, DYNAMIC_ALGORITHM_METHOD, ENCRYPT_INVALID_PASS_CONVERSATION, ENCRYPT_INVALID_SESSION_ATTRS, ENCRYPT_NULL_HASHKEY, HASHKEY_PARAM, HASHKEY_PARAM_NAME, LOGIN_BAD_ARGS, LOGIN_PARAM, LOGIN_PARAM_NAME, LOGIN_PASSWORD_MISMATCH, LOGOUT_ID_PARAM, LOGOUT_ID_PARAM_NAME, MATCH_PROP_PARAM, MATCH_PROP_PARAM_NAME, NEW_PASSWORD_PARAM, NEW_PASSWORD_PARAM_NAME, NO_ALGORITHM_FOUND, NULL_CURRENT_PROFILE, NULL_PROFILE_BY_ID, NULL_PROFILE_REPOSITORY, NULL_REQUEST, NULL_REQUEST_LOCALE, NULL_REQUEST_PARAMETER, NULL_SENTINEL, OPERATION_END_PARAM, OPERATION_END_PARAM_NAME, PASSWORD_PARAM, PASSWORD_PARAM_NAME, PUSH_REALM_PARAM, PUSH_REALM_PARAM_NAME, PUSH_SITE_PARAM, PUSH_SITE_PARAM_NAME, REGISTER_BAD_ARGS, SERVICE_NO_TOOLS, UPDATE_EVENT_PARAM, UPDATE_EVENT_PARAM_NAME, UPDATE_ID_PARAM, UPDATE_ID_PARAM_NAME, UPDATE_INVALID_REP, UPDATE_NO_ARGS, UPDATE_NO_ITEM, XML_ITEM_PARAM, XML_ITEM_PARAM_NAMEDEFAULT_LOG_TRACE_STATUSDEFAULT_LOG_DEBUG_STATUS, DEFAULT_LOG_ERROR_STATUS, DEFAULT_LOG_INFO_STATUS, DEFAULT_LOG_WARNING_STATUS| Constructor and Description | 
|---|
ProfileServices()  | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
addProperties(RepositoryItem pGuestUser,
             RepositoryItem pAuthenticatedUser,
             java.lang.String[] pPropertiesToAdd)
Adds values from multi-valued properties from the guest user to
 the authenticated user 
 | 
void | 
addProperty(java.lang.String pPropertyName,
           RepositoryItem pGuestUser,
           RepositoryItem pAuthenticatedUser)
Adds a specific multi-valued property's values from the given guest
 user to the given authenticated user 
 | 
void | 
addSwapEventListener(atg.userprofiling.ProfileSwapEventListener pListener)
Adds a ProfileSwapEventListener to the list of listeners that
 care about ProfileSwapEvents 
 | 
void | 
addUpdateListener(atg.userprofiling.ProfileUpdateListener pListener)
Adds the given update listener to the list of listeners we already
 know about 
 | 
RepositoryItem | 
addXMLItem(java.lang.String pItemAsXML,
          boolean pPersist)
Adds or creates the given pItemAsXML, depending on the value
 of pPersist. 
 | 
boolean | 
canClientEncryptPasswords()
Tests to see whether we can allow clients to encrypt their passwords. 
 | 
protected void | 
commitTransaction()
Commits the current transaction 
 | 
void | 
copyProperties(RepositoryItem pGuestUser,
              RepositoryItem pAuthenticatedUser,
              java.lang.String[] pPropertiesToCopy)
Copies the properties named in  
pPropertiesToCopy from
 the pGuestUser to the pAuthenticatedUser | 
java.lang.String | 
createUser(java.lang.String pProfileAsXML)
Creates a persistent user using the profile values given in
  
pProfileAsXML. | 
boolean | 
deleteUser(java.lang.String pProfileId)
Deletes a persistent user whose id matches  
pProfileId. | 
protected void | 
doCreateUser(DynamoHttpServletRequest pRequest,
            DynamoHttpServletResponse pResponse)
Creates a user that is present as the request parameter,
 XML_ITEM_PARAM 
 | 
protected void | 
doDeleteUser(DynamoHttpServletRequest pRequest,
            DynamoHttpServletResponse pResponse)
Deletes a user that matches the id present as the request parameter,
 UPDATE_ID_PARAM. 
 | 
protected void | 
doLoginUser(DynamoHttpServletRequest pRequest,
           DynamoHttpServletResponse pResponse)
Logs in a user. 
 | 
protected void | 
doLoginUser(DynamoHttpServletRequest pRequest,
           DynamoHttpServletResponse pResponse,
           boolean pTrusted)
Logs in a user. 
 | 
protected void | 
doLogoutUser(DynamoHttpServletRequest pRequest,
            DynamoHttpServletResponse pResponse)
Called to logout a user. 
 | 
protected void | 
doSetPassword(DynamoHttpServletRequest pRequest,
             DynamoHttpServletResponse pResponse)
Called to actually change the current user's password. 
 | 
void | 
doStartService()
Called when this service starts, after its properties have been
 set. 
 | 
protected void | 
doUpdateUser(DynamoHttpServletRequest pRequest,
            DynamoHttpServletResponse pResponse)
Updates the user that is present as the request parameter,
 XML_ITEM_PARAM. 
 | 
void | 
encryptPassword(MutableRepositoryItem pProfile)
Takes the cleartext password of the given profile, encrypts it,
 and resets it to the encrypted version 
 | 
boolean | 
endOperation(DynamoHttpServletRequest pRequest)
Checks the given request to see if the OPERATION_END_PARAM is
 present and set to true 
 | 
java.lang.Object | 
endOperationValue(DynamoHttpServletRequest pRequest)
Gets the value of the OPERATION_END_PARAM_NAME from the given
 request. 
 | 
protected javax.transaction.Transaction | 
ensureTransaction()
This method ensures that a transaction exists before returning. 
 | 
long | 
getBadPasswordDelay()
Get property  
badPasswordDelay
 DEFAULT: 1000 (1 second) | 
java.lang.String | 
getCreateProfileType()
Get property  
createProfileType
 DEFAULT: user | 
Profile | 
getCurrentProfile()
Gets the profile of the current thread's user 
 | 
java.lang.String | 
getCurrentProfileId()
Gets the profileId of the current thread's user 
 | 
PasswordHasher | 
getLoginPasswordHasher()
Gets a password hasher for logging in 
 | 
java.lang.String | 
getLoginProfileType()
Get property  
loginProfileType
 DEFAULT: user | 
java.lang.String | 
getLogoutProfileType()
Get property  
logoutProfileType
 DEFAULT: user | 
java.lang.String | 
getMappingFile(Repository pRepository,
              java.lang.String pItemDescriptorName)
Gets a mapping file for a particular repository:itemDescriptorName
 combination 
 | 
atg.repository.xml.ItemDescriptorMappingManager | 
getMappingManager()
Get property  
mappingManager
 DEFAULT: null | 
long | 
getMaxAuthenticationWait()
Get property  
maxAuthenticationWait
 DEFAULT: 30000 (30 seconds) | 
java.lang.String | 
getPasswordHashAlgorithm()
Gets the algorithm for the password hasher used by
 the profile property manager 
 | 
java.lang.String | 
getPasswordHashKey()
Gets a hashkey for a password. 
 | 
java.lang.String | 
getProfile(java.lang.String pProfileId)
Gets the profile using the given profile id 
 | 
java.lang.String | 
getProfile(java.lang.String pProfileId,
          java.lang.String pMappingFile)
Gets the profile using the given profile id, and applies the
 given mapping file to the returned Repo2Xml string 
 | 
java.lang.String | 
getProfileId(java.lang.String pLogin)
Gets the profile id of the person with the given login 
 | 
java.lang.String | 
getProfilePath()
Get property  
profilePath
 DEFAULT: /atg/userprofiling/Profile | 
ProfileRealmManager | 
getProfileRealmManager()
get ProfileRealmManager 
 | 
ProfileTools | 
getProfileTools()
Get property  
profileTools
 DEFAULT: null | 
java.lang.String[] | 
getPropertiesToAddOnLogin()
Get property  
propertiesToAddOnLogin
 DEFAULT: null | 
java.lang.String[] | 
getPropertiesToCopyOnLogin()
Get property  
propertiesToCopyOnLogin
 DEFAULT: null | 
RepositoryItem | 
getRepositoryItemFromXML(java.lang.String pItemAsXML)
Gets a RepositoryItem object from the given XML representation
 The item is matched based on the id property in the
 XML file 
 | 
RepositoryItem | 
getRepositoryItemFromXML(java.lang.String pItemAsXML,
                        java.lang.String[] pMatchedProperties)
Gets a RepositoryItem object from the given XML representation
 The item is matched based on the id property in the
 XML file 
 | 
java.lang.String | 
getRequestLocalePath()
Get property  
RequestLocalePath
 DEFAULT: /atg/dynamo/servlet/RequestLocale | 
javax.transaction.TransactionManager | 
getTransactionManager()
Get property  
transactionManager
 DEFAULT: null | 
atg.userprofiling.ProfileUpdateListener[] | 
getUpdateEventListeners()
Get property  
UpdateEventListeners
 DEFAULT: null | 
AddService | 
getXmlAddService()
Get property  
XmlAddService
 DEFAULT: null | 
GetService | 
getXmlGetService()
Get property  
xmlGetService
 DEFAULT: null | 
java.lang.String | 
getXMLItem(RepositoryItem pItem,
          Repository pRepository,
          java.lang.String pItemDescriptorName,
          java.lang.String pMappingFile)
Transforms the given repository item into XML, possibly using
 a mapping file to cull properties 
 | 
UpdateService | 
getXmlUpdateService()
Get property  
xmlUpdateService
 DEFAULT: null | 
boolean | 
isAllowEncryptedPasswords()
Get property  
AllowEncryptedPasswords
 DEFAULT: true | 
boolean | 
isExpireSessionOnLogout()
Get property  
expireSessionOnLogout
 DEFAULT: true | 
boolean | 
isGenerateLoginEvents()
Get property  
GenerateLoginEvents
 DEFAULT: true | 
boolean | 
isGenerateLogoutEvents()
Get property  
GenerateLogoutEvents
 DEFAULT: true | 
boolean | 
isGenerateRegisterEvents()
Get property  
GenerateRegisterEvents
 DEFAULT: true | 
boolean | 
isGenerateUpdateEvents()
Get property  
GenerateUpdateEvents
 DEFAULT: true | 
boolean | 
isUseDefaultMappings()
Get property  
UseDefaultMappings
 DEFAULT: true | 
boolean | 
isUsingLDAPProfile()
Get property  
usingLDAPProfile
 DEFAULT: false | 
java.lang.String | 
loginTrustedUser(java.lang.String pLogin)
Attempts to login a user using the given login. 
 | 
java.lang.String | 
loginUser(java.lang.String pLogin,
         java.lang.String pPassword)
Attempts to login a user using the given login and password. 
 | 
java.lang.String | 
loginUser(java.lang.String pLogin,
         java.lang.String pPassword,
         boolean pIsPasswordEncrypted)
Attempts to login a user using the given login and password. 
 | 
java.lang.String | 
loginUserOnRealm(java.lang.String pLogin,
                java.lang.String pPassword,
                boolean pIsPasswordEncrypted,
                java.lang.String pPushRealm,
                java.lang.String pPushSite)
Attempts to login a user using the given login and password. 
 | 
void | 
logoutUser()
Logs out the current user. 
 | 
boolean | 
popRealm(java.lang.String pRealmId)  | 
protected void | 
postCreateUser(DynamoHttpServletRequest pRequest,
              DynamoHttpServletResponse pResponse)
Called after a new user is created. 
 | 
protected void | 
postDeleteUser(DynamoHttpServletRequest pRequest,
              DynamoHttpServletResponse pResponse)
Called after a user is succesfully deleted. 
 | 
protected void | 
postLoginUser(DynamoHttpServletRequest pRequest,
             DynamoHttpServletResponse pResponse)
Called after a user is successfully logged in. 
 | 
protected void | 
postLoginUser(DynamoHttpServletRequest pRequest,
             DynamoHttpServletResponse pResponse,
             boolean pTrusted)
Called after a user is successfully logged in. 
 | 
protected void | 
postLogoutUser(DynamoHttpServletRequest pRequest,
              DynamoHttpServletResponse pResponse)
Called after a user is logged out. 
 | 
protected void | 
postSetPassword(DynamoHttpServletRequest pRequest,
               DynamoHttpServletResponse pResponse)
Called after the current user's password is setd. 
 | 
protected void | 
postUpdateUser(DynamoHttpServletRequest pRequest,
              DynamoHttpServletResponse pResponse)
Called after a user is updated. 
 | 
protected void | 
preCreateUser(DynamoHttpServletRequest pRequest,
             DynamoHttpServletResponse pResponse)
Called before a user is created. 
 | 
protected void | 
preDeleteUser(DynamoHttpServletRequest pRequest,
             DynamoHttpServletResponse pResponse)
Called before a user is deleted. 
 | 
protected void | 
preLoginUser(DynamoHttpServletRequest pRequest,
            DynamoHttpServletResponse pResponse)
Called before a login actually takes place. 
 | 
protected void | 
preLoginUser(DynamoHttpServletRequest pRequest,
            DynamoHttpServletResponse pResponse,
            boolean pTrusted)
Called before a login actually takes place. 
 | 
protected void | 
preLogoutUser(DynamoHttpServletRequest pRequest,
             DynamoHttpServletResponse pResponse)
Called before a user is logged out. 
 | 
protected void | 
preSetPassword(DynamoHttpServletRequest pRequest,
              DynamoHttpServletResponse pResponse)
Called before the current user's password is changed. 
 | 
java.lang.String | 
pushRealmFromRequest(DynamoHttpServletRequest pRequest)  | 
void | 
removeSwapEventListener(atg.userprofiling.ProfileSwapEventListener pListener)
Removes a ProfileSwapEventListener to the list of listeners that
 care about ProfileSwapEvents 
 | 
void | 
removeUpdateListener(atg.userprofiling.ProfileUpdateListener pListener)
Removes the given update listener from the list of listeners we already
 know about 
 | 
void | 
sendProfileSwapEvent(int pEventType,
                    RepositoryItem pPreSwapItem,
                    RepositoryItem pPostSwapItem)
Sends a ProfileSwapEvent using the given arguments 
 | 
void | 
sendUpdateEvent(atg.userprofiling.ProfileUpdateEvent pEvent)
Sends the given update event to all of the registered update listeners 
 | 
void | 
setAllowEncryptedPasswords(boolean pAllowEncryptedPasswords)
Set property  
AllowEncryptedPasswords
 DEFAULT: true | 
void | 
setBadPasswordDelay(long pBadPasswordDelay)
Set property  
badPasswordDelay
 DEFAULT: 1000 (1 second) | 
void | 
setContactInfo(java.lang.String pProfileId,
              java.lang.String pContactInfoAsXML)
Changes the contact info property for a user. 
 | 
void | 
setCreateProfileType(java.lang.String pCreateProfileType)
Set property  
createProfileType
 DEFAULT: user | 
void | 
setExpireSessionOnLogout(boolean pExpireSessionOnLogout)
Set property  
expireSessionOnLogout
 DEFAULT: true | 
void | 
setGenerateLoginEvents(boolean pGenerateLoginEvents)
Set property  
GenerateLoginEvents
 DEFAULT: true | 
void | 
setGenerateLogoutEvents(boolean pGenerateLogoutEvents)
Set property  
GenerateLogoutEvents
 DEFAULT: true | 
void | 
setGenerateRegisterEvents(boolean pGenerateRegisterEvents)
Set property  
GenerateRegisterEvents
 DEFAULT: true | 
void | 
setGenerateUpdateEvents(boolean pGenerateUpdateEvents)
Set property  
GenerateUpdateEvents
 DEFAULT: true | 
void | 
setLocale(java.lang.String pProfileId,
         java.lang.String pLocaleName)
Changes the locale property for a user. 
 | 
void | 
setLoginProfileType(java.lang.String pLoginProfileType)
Set property  
loginProfileType
 DEFAULT: user | 
void | 
setLogoutProfileType(java.lang.String pLogoutProfileType)
Set property  
logoutProfileType
 DEFAULT: user | 
void | 
setMappingManager(atg.repository.xml.ItemDescriptorMappingManager pMappingManager)
Set property  
mappingManager
 DEFAULT: null | 
void | 
setMaxAuthenticationWait(long pMaxAuthenticationWait)
Set property  
maxAuthenticationWait
 DEFAULT: 30000 (30 seconds) | 
void | 
setPassword(java.lang.String pProfileId,
           java.lang.String pOldPassword,
           java.lang.String pNewPassword)
Allows a user to set their own password. 
 | 
void | 
setProfilePath(java.lang.String pProfilePath)
Set property  
profilePath
 DEFAULT: /atg/userprofiling/Profile | 
void | 
setProfileRealmManager(ProfileRealmManager pProfileRealmManager)
set ProfileRealmManager 
 | 
void | 
setProfileTools(ProfileTools pProfileTools)
Set property  
profileTools
 DEFAULT: null | 
void | 
setPropertiesToAddOnLogin(java.lang.String[] pPropertiesToAddOnLogin)
Set property  
propertiesToAddOnLogin
 DEFAULT: null | 
void | 
setPropertiesToCopyOnLogin(java.lang.String[] pPropertiesToCopyOnLogin)
Set property  
propertiesToCopyOnLogin
 DEFAULT: null | 
void | 
setRequestLocalePath(java.lang.String pRequestLocalePath)
Set property  
RequestLocalePath
 DEFAULT: /atg/dynamo/servlet/RequestLocale | 
void | 
setSessionLocale(java.lang.String pLocaleName)
Sets the locale of the current session by changing the
 session-scoped RequestLocale component. 
 | 
void | 
setTransactionManager(javax.transaction.TransactionManager pTransactionManager)
Set property  
transactionManager
 DEFAULT: null | 
void | 
setUpdateEventListeners(atg.userprofiling.ProfileUpdateListener[] pUpdateEventListeners)
Set property  
UpdateEventListeners
 DEFAULT: null | 
void | 
setUseDefaultMappings(boolean pUseDefaultMappings)
Set property  
UseDefaultMappings
 DEFAULT: true | 
void | 
setUsingLDAPProfile(boolean pUsingLDAPProfile)
Set property  
usingLDAPProfile
 DEFAULT: false | 
void | 
setXmlAddService(AddService pXmlAddService)
Set property  
XmlAddService
 DEFAULT: null | 
void | 
setXmlGetService(GetService pXmlGetService)
Set property  
xmlGetService
 DEFAULT: null | 
void | 
setXmlUpdateService(UpdateService pXmlUpdateService)
Set property  
xmlUpdateService
 DEFAULT: null | 
void | 
updateLDAPProfileAttributes(MutableRepositoryItem pItem)
Updates profile attributes pertaining to LDAP. 
 | 
void | 
updateUser(java.lang.String pProfileAsXML)
Updates a persistent user using the profile values given in
  
pProfileAsXML. | 
void | 
updateUser(java.lang.String pProfileAsXML,
          java.lang.String[] pMatchProperties)
Updates a persistent user using the profile values given in
  
pProfileAsXML. | 
void | 
updateXMLItem(java.lang.String pItemAsXML,
             java.lang.String[] pMatchedProperties)
Updates a Repo2Xml item 
 | 
addLogListener, createAdminServlet, doStopService, getAbsoluteName, getAdminServlet, getAdminServletOutputStreamEncoding, getLoggingForVlogging, getLogListenerCount, getLogListeners, getName, getNameContext, getNucleus, getRoot, getServiceConfiguration, getServiceInfo, isAdminServletUseServletOutputStream, isLoggingDebug, isLoggingError, isLoggingInfo, isLoggingTrace, isLoggingWarning, isRunning, logDebug, logDebug, logDebug, logError, logError, logError, logInfo, logInfo, logInfo, logTrace, logTrace, logTrace, logWarning, logWarning, logWarning, nameContextElementBound, nameContextElementUnbound, removeLogListener, reResolveThis, resolveName, resolveName, resolveName, resolveName, sendLogEvent, setAdminServletOutputStreamEncoding, setAdminServletUseServletOutputStream, setLoggingDebug, setLoggingError, setLoggingInfo, setLoggingTrace, setLoggingWarning, setNucleus, setServiceInfo, startService, stopServicevlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogDebugTrace, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarningpublic void setAllowEncryptedPasswords(boolean pAllowEncryptedPasswords)
AllowEncryptedPasswords
 DEFAULT: truepAllowEncryptedPasswords - true if services that accept
 or require passwords allow those passwords to be encrypted. This
 only applies to services that compare password values, not services
 that set passwords. Services that set passwords should NOT be called
 with encrypted passwordspublic boolean isAllowEncryptedPasswords()
AllowEncryptedPasswords
 DEFAULT: truepublic void setUseDefaultMappings(boolean pUseDefaultMappings)
UseDefaultMappings
 DEFAULT: truepUseDefaultMappings - true if services that return Repo2Xml
 items should use default mapping files supplied by the
 ItemMappingManager configured for this component. This
 property is ignored if a mapping file is explicitly passed to
 the servicepublic boolean isUseDefaultMappings()
UseDefaultMappings
 DEFAULT: trueItemMappingManager configured for this component. This
 property is ignored if a mapping file is explicitly passed to
 the servicepublic void setGenerateLoginEvents(boolean pGenerateLoginEvents)
GenerateLoginEvents
 DEFAULT: truepGenerateLoginEvents - true if login events should be
 fired when a login occurspublic boolean isGenerateLoginEvents()
GenerateLoginEvents
 DEFAULT: truepublic void setGenerateUpdateEvents(boolean pGenerateUpdateEvents)
GenerateUpdateEvents
 DEFAULT: truepGenerateUpdateEvents - true if update events should be fired when
 an update occurspublic boolean isGenerateUpdateEvents()
GenerateUpdateEvents
 DEFAULT: truepublic void setGenerateRegisterEvents(boolean pGenerateRegisterEvents)
GenerateRegisterEvents
 DEFAULT: truepGenerateRegisterEvents - true if register events should be
 fired when someone registerspublic boolean isGenerateRegisterEvents()
GenerateRegisterEvents
 DEFAULT: truepublic void setGenerateLogoutEvents(boolean pGenerateLogoutEvents)
GenerateLogoutEvents
 DEFAULT: truepGenerateLogoutEvents - true if a logout events should be fired
 when a user logs outpublic boolean isGenerateLogoutEvents()
GenerateLogoutEvents
 DEFAULT: truepublic void setUpdateEventListeners(atg.userprofiling.ProfileUpdateListener[] pUpdateEventListeners)
UpdateEventListeners
 DEFAULT: nullpUpdateEventListeners - an array of objects that listen
 for ProfileUpdateEvents i.e. events that are fired when
 user updates occur through services in this classpublic atg.userprofiling.ProfileUpdateListener[] getUpdateEventListeners()
UpdateEventListeners
 DEFAULT: nullpublic void setRequestLocalePath(java.lang.String pRequestLocalePath)
RequestLocalePath
 DEFAULT: /atg/dynamo/servlet/RequestLocalepRequestLocalePath - the path to a session-scoped RequestLocale
 component, which handles locale-based redirecting on a per-session
 basispublic java.lang.String getRequestLocalePath()
RequestLocalePath
 DEFAULT: /atg/dynamo/servlet/RequestLocalepublic void setProfilePath(java.lang.String pProfilePath)
profilePath
 DEFAULT: /atg/userprofiling/ProfilepProfilePath - the path to the profile component used in
 all userprofiling operationspublic java.lang.String getProfilePath()
profilePath
 DEFAULT: /atg/userprofiling/Profilepublic void setCreateProfileType(java.lang.String pCreateProfileType)
createProfileType
 DEFAULT: userpCreateProfileType - when creating a new profile, this
 it the item type it should be i.e. item descriptor namepublic java.lang.String getCreateProfileType()
createProfileType
 DEFAULT: userpublic void setLoginProfileType(java.lang.String pLoginProfileType)
loginProfileType
 DEFAULT: userpLoginProfileType - when logging in a user, the item type
 that their profile is expected to be. If there are many possible profile
 types due to subtyping, then this value should be set to their
 collective supertypepublic java.lang.String getLoginProfileType()
loginProfileType
 DEFAULT: userpublic void setLogoutProfileType(java.lang.String pLogoutProfileType)
logoutProfileType
 DEFAULT: userpLogoutProfileType - when a user logs out, this is the item
 type that next guest user will havepublic java.lang.String getLogoutProfileType()
logoutProfileType
 DEFAULT: userpublic void setUsingLDAPProfile(boolean pUsingLDAPProfile)
usingLDAPProfile
 DEFAULT: falsepUsingLDAPProfile - true if these userprofiling services
 act upon an LDAP-based profile (this includes composite profiles
 with an LDAP component)public boolean isUsingLDAPProfile()
usingLDAPProfile
 DEFAULT: falsepublic void setBadPasswordDelay(long pBadPasswordDelay)
badPasswordDelay
 DEFAULT: 1000 (1 second)pBadPasswordDelay - the number of milliseconds to pause
 when a login is attempted with a bad password. This value must
 not be negativepublic long getBadPasswordDelay()
badPasswordDelay
 DEFAULT: 1000 (1 second)public void setExpireSessionOnLogout(boolean pExpireSessionOnLogout)
expireSessionOnLogout
 DEFAULT: truepExpireSessionOnLogout - true if a person's entire session should
 be expired after they logoutpublic boolean isExpireSessionOnLogout()
expireSessionOnLogout
 DEFAULT: truepublic void setPropertiesToCopyOnLogin(java.lang.String[] pPropertiesToCopyOnLogin)
propertiesToCopyOnLogin
 DEFAULT: nullpPropertiesToCopyOnLogin - an array of properties that
 should be copied from a guest user to a persistent user upon
 login. Both single-value and multi-valued properties will be
 copied entirely i.e. any previous values are overwrittenpublic java.lang.String[] getPropertiesToCopyOnLogin()
propertiesToCopyOnLogin
 DEFAULT: nullpublic void setPropertiesToAddOnLogin(java.lang.String[] pPropertiesToAddOnLogin)
propertiesToAddOnLogin
 DEFAULT: nullpPropertiesToAddOnLogin - an array of multi-valued properties
 whose values should be added from a guest user to the existing values
 of a persistent user when the guest logs inpublic java.lang.String[] getPropertiesToAddOnLogin()
propertiesToAddOnLogin
 DEFAULT: nullpublic void setMappingManager(atg.repository.xml.ItemDescriptorMappingManager pMappingManager)
mappingManager
 DEFAULT: nullpMappingManager - the service that controls mapping files for all
 item descriptors. This is used to provide default mapping files for
 particular repository:itemDescriptor pairs, so if a service returns
 Repo2Xml items of a type that has had an ItemDescriptorMapping
 defined for it, that mapping will automatically be applied before
 the Repo2Xml item is returned (unless useDefaultMappings
 is false)public atg.repository.xml.ItemDescriptorMappingManager getMappingManager()
mappingManager
 DEFAULT: nulluseDefaultMappings
 is false)public void setXmlAddService(AddService pXmlAddService)
XmlAddService
 DEFAULT: nullpXmlAddService - a service that knows how to add Repo2Xml
 items to a repositorypublic AddService getXmlAddService()
XmlAddService
 DEFAULT: nullpublic void setXmlGetService(GetService pXmlGetService)
xmlGetService
 DEFAULT: nullpXmlGetService - the service that turns a RepositoryItem
 into an xml representation (known as a Repo2Xml item)public GetService getXmlGetService()
xmlGetService
 DEFAULT: nullpublic void setXmlUpdateService(UpdateService pXmlUpdateService)
xmlUpdateService
 DEFAULT: nullpXmlUpdateService - a service that knows how to add Repo2Xml
 items to a repositorypublic UpdateService getXmlUpdateService()
xmlUpdateService
 DEFAULT: nullpublic void setProfileTools(ProfileTools pProfileTools)
profileTools
 DEFAULT: nullpProfileTools - a collection of utility methods that help
 perform common funtions used by several profile servicespublic ProfileTools getProfileTools()
profileTools
 DEFAULT: nullpublic void setTransactionManager(javax.transaction.TransactionManager pTransactionManager)
transactionManager
 DEFAULT: nullpTransactionManager - the transaction manager for all web servicespublic javax.transaction.TransactionManager getTransactionManager()
transactionManager
 DEFAULT: nullpublic void setMaxAuthenticationWait(long pMaxAuthenticationWait)
maxAuthenticationWait
 DEFAULT: 30000 (30 seconds)pMaxAuthenticationWait - the number of milliseconds allowed
 before an encrypted login conversation becomes invalid. An
 encrypted login conversation requires a client to call several
 methods in order to correctly encrypt a password to be passed to
 the login web service. The timer for this conversation is started
 when getPasswordHashKey is called, since this hashkey is intended
 to be temporary and unique for one login attempt. The timer ends
 when loginUser is called. The difference in time between
 those two calls should not exceed pMaxAuthenticationWait,
 otherwise the login attempt is considered invalid.public long getMaxAuthenticationWait()
maxAuthenticationWait
 DEFAULT: 30000 (30 seconds)pMaxAuthenticationWait,
 otherwise the login attempt is considered invalid.public void addSwapEventListener(atg.userprofiling.ProfileSwapEventListener pListener)
pListener - the ProfileSwapEventListener to addpublic void removeSwapEventListener(atg.userprofiling.ProfileSwapEventListener pListener)
pListener - the ProfileSwapEventListener to removepublic void setProfileRealmManager(ProfileRealmManager pProfileRealmManager)
pProfileRealmManager - the ProfileRealmManagerpublic ProfileRealmManager getProfileRealmManager()
public void setSessionLocale(java.lang.String pLocaleName)
                      throws javax.servlet.ServletException
setLocale to accomplish this. This method is also
 intended to be called in the context of an HTTP request.pLocaleName - the locale to change to for the length of
 the session. If this is null, then the current locale will be
 set to the default locale for the RequestLocale componentjavax.servlet.ServletException - if an error occurs trying
 to change the locale, or this method is not called in the
 context of an HTTP requestpublic void setPassword(java.lang.String pProfileId,
               java.lang.String pOldPassword,
               java.lang.String pNewPassword)
                 throws javax.servlet.ServletException
pNewPassword supplied. This
 "password property" is defined as the profile property whose name
 matches the profileTools.propertyManager.passwordPropertyName
 property value. The password that is to be changed should belong to
 the current session's profile.
 
 This method is not intended to be used by an admin changing someone
 else's password, use adminSetPassword if you wish to do this.
 
 This method calls preSetPassword,
 doSetPassword , and
 postSetPassword in turn, to
 do the actual property change. 
 
 The following request parameters are set in this method
 PASSWORD_PARAM - for the old password
 NEW_PASSWORD_PARAM - for the new password
 UPDATE_ID_PARAM - the id of the profile being
 updated
 
Extensions of this class, or of the preSet, doSet, and postSet methods can use these parameters to get access to this methods original arguments This method is expected to be called in the context of an HTTP request. Also, a transaction is required when executing this method. If no transaction is in place, a new one is started and committed before this method returns.
pProfileId - the id of the current profile, whose password
 is being changed. This argument is used by the ProfileOwnerPolicy
 to ensure that the person who calls this service is the person
 who is in the current session, if this security policy is applied.
 This argument must not be nullpOldPassword - the old password that is being changed. This is
 needed to verify the credentials of the current profile before changing
 the password. This argument can be null (if your profile
 repository allows null passwords)pNewPassword - the new value for the user's password property.
 This argument can be null (if your profile repository allows null
 passwords)javax.servlet.ServletException - if an error occurs changing the passwordprotected void preSetPassword(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws javax.servlet.ServletException
pRequest - the current request, which is guaranteed to
 contain the following parameters:
   PASSWORD_PARAM - for the old password
NEW_PASSWORD_PARAM - for the new password
UPDATE_ID_PARAM - the id of the profile being updated
pResponse - the current responsejavax.servlet.ServletException - if an error occurs hereprotected void doSetPassword(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws javax.servlet.ServletException
profileTools.propertyManager.passwordHasher
 objectpRequest - the current request, which is guaranteed to
 contain the following parameters:
   PASSWORD_PARAM - for the old password
NEW_PASSWORD_PARAM - for the new password
UPDATE_ID_PARAM - the id of the profile being updated
pResponse - the current responsejavax.servlet.ServletException - occurs in the following cases:
 pRequest
 does not match the given profile's current password
 (note that the password in the request will be encrypted before
 comparing its value with the current profile's password)
 protected void postSetPassword(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws javax.servlet.ServletException
pRequest - the current request, which is guaranteed to
 contain the following parameters:
   PASSWORD_PARAM - for the old password
NEW_PASSWORD_PARAM - for the new password
UPDATE_ID_PARAM - the id of the profile being updated
pResponse - the current responsejavax.servlet.ServletException - if an error occurs herepublic java.lang.String getProfile(java.lang.String pProfileId)
                            throws RepositoryException
A transaction is required when executing this method. If no transaction is in place, a new one is started and committed before this method returns.
pProfileId - the id of the profile to get. If null
 is entered for this argument, then null is returneduseDefaultMappings, a default mapping file could
 be applied to the resulting Repo2XmlRepositoryException - if an error occurs trying to
 retrieve the itempublic java.lang.String getProfile(java.lang.String pProfileId,
                          java.lang.String pMappingFile)
                            throws RepositoryException
A transaction is required when executing this method. If no transaction is in place, a new one is started and committed before this method returns.
pProfileId - the id of the profile to get. If null is entered
 for this argument, then this method returns nullpMappingFile - a mapping file that dictates what
 profile properties are returned in the resulting XML. If null is
 entered for this argument, then a default mapping file could
 be applied, depending on the value of useDefaultMappingsRepositoryException - if any of the following occurs:
 public java.lang.String getProfileId(java.lang.String pLogin)
                              throws RepositoryException
A transaction is required when executing this method. If no transaction is in place, a new one is started and committed before this method returns.
pLogin - the login to find the id for. If this argument is
 null, then null is returnedRepositoryException - if an error occurs trying to
 find the person. This error will come from the profile repository
 directly, and not from this methodpublic void updateUser(java.lang.String pProfileAsXML)
                throws javax.servlet.ServletException
pProfileAsXML. It's intended that this service be
 used by users to update their own profile, and certain session
 actions will take place based on that assumption i.e. cookie handling,
 locale changing, etc. Admins that want to update other users' profiles
 should use adminUpdateUser,
 and not this method.
 
 This method calls preUpdateUser,
 doUpdateUser , and
 postUpdateUser in turn
 
This method is expected to be called in the context of an HTTP request. Also, a transaction is required when executing this method. If no transaction is in place, a new one is started and committed before this method returns.
 The following request parameter is set in this method
 XML_ITEM_PARAM - the current Repo2Xml item
 that is being updated
pProfileAsXML - the profile with updated values, as a Repo2Xml
 itemjavax.servlet.ServletException - if any of the following occurs:
 pProfileAsXML argument is null or empty
 public void updateUser(java.lang.String pProfileAsXML,
              java.lang.String[] pMatchProperties)
                throws javax.servlet.ServletException
pProfileAsXML. It's intended that this service be
 used by users to update their own profile, and certain session
 actions will take place based on that assumption i.e. cookie handling,
 locale changing, etc. Admins that want to update other users' profiles
 should use adminUpdateUser,
 and not this method.
 
 This method calls preUpdateUser,
 doUpdateUser , and
 postUpdateUser in turn
 
This method is expected to be called in the context of an HTTP request. Also, a transaction is required when executing this method. If no transaction is in place, a new one is started and committed before this method returns.
 The following request parameter is set in this method
 XML_ITEM_PARAM - the current Repo2Xml item
 that is being updated
pProfileAsXML - the profile with updated values, as a Repo2Xml
 itempMatchProperties - an array of properties present in the
 given xml items whose values will be used to find their persistent
 counterparts in the repository. The Repo2Xml values for all the given
 property names must exactly match the values or a corresponding
 repository item in order for the item to be properly updatedjavax.servlet.ServletException - if any of the following occurs:
 pProfileAsXML argument is null or empty
 protected void doUpdateUser(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws javax.servlet.ServletException
pRequest - the current request, expected to have the following
 parameter:
   XML_ITEM_PARAM - the xml item that is to be updated
And can optionally have the following parameter:
UPDATE_EVENT_PARAM - a map of property names to values, which represents a snapshot of the item-to-update before the update occurs
pResponse - the current responsejavax.servlet.ServletException - if any of the following errors occur:
 pRequest
 protected void postUpdateUser(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws javax.servlet.ServletException
pRequest - the current request, expected to have the following
 parameter:
   XML_ITEM_PARAM - the xml item that is to be updated
And can optionally have the following parameter:
UPDATE_EVENT_PARAM - a map of property names to values, which represents a snapshot of the item-to-update before the update occurs
pRequest - the current responsepResponse - the current responsejavax.servlet.ServletException - if any of the following occur:
 public void setContactInfo(java.lang.String pProfileId,
                  java.lang.String pContactInfoAsXML)
                    throws RepositoryException
profileTools.propertyManager.contactInfoPropertyName
 value that resolves to an actual profile property. This property
 must also be of type atg.repository.RepositoryItem
 A transaction is required when executing this method. If no transaction is in place, a new one is started and committed before this method returns.
pProfileId - the profile id of the user whose contactInfo
 property is to be changed. This argument must not be null.pContactInfoAsXML - a Repo2Xml item of the contact info
 that the user's contactInfo property should be set to. This
 argument can be null.RepositoryException - if any of the following occurs:
 pProfileId is null
 pProfileId
 public void setLocale(java.lang.String pProfileId,
             java.lang.String pLocaleName)
               throws RepositoryException
profileTools.propertyManager.localePropertyName
 value that resolves to an actual profile property. This property
 must also be of type java.lang.String
 A transaction is required when executing this method. If no transaction is in place, a new one is started and committed before this method returns.
pProfileId - the profile id of the user whose contactInfo
 property is to be changed. This argument must not be null.pLocaleName - The locale string that represents the locale
 that the user's locale property should be set to e.g. en_EN. This
 argument can be null.RepositoryException - if any of the following occurs:
 pProfileId is null
 pProfileId
 public java.lang.String loginTrustedUser(java.lang.String pLogin)
                                  throws javax.servlet.ServletException
 This method calls preLogin,
 doLoginUser , and
 postLoginUser in turn
 
This method is expected to be called in the context of an HTTP request. Also, a transaction is required when executing this method. If no transaction is in place, a new one is started and committed before this method returns.
The following request parameters are set in this method:
LOGIN_PARAM - the login of the user
 pLogin - the login of the user to login. This argument cannot
 be nulljavax.servlet.ServletException - if any of the following errors occur:
 pLogin is null
 public java.lang.String loginUser(java.lang.String pLogin,
                         java.lang.String pPassword)
                           throws javax.servlet.ServletException
 This method calls preLogin,
 doLoginUser , and
 postLoginUser in turn
 
This method is expected to be called in the context of an HTTP request. Also, a transaction is required when executing this method. If no transaction is in place, a new one is started and committed before this method returns.
The following request parameters are set in this method:
LOGIN_PARAM - the login of the user
 PASSWORD_PARAM - the password of the user
 pLogin - the login of the user to login. This argument cannot
 be nullpPassword - the cleartext password of the user to login. This
 argument can be nulljavax.servlet.ServletException - if any of the following errors occur:
 pLogin is null
 public java.lang.String loginUser(java.lang.String pLogin,
                         java.lang.String pPassword,
                         boolean pIsPasswordEncrypted)
                           throws javax.servlet.ServletException
getPasswordHashKey() method was called
 prior to this method in order to get a temporary hashkey used
 to encrypt the password on the method caller's end.
 Password encryption on the client side is an option when using this
 service with a non-secure protocol, such as http. It should be
 stressed in triplicate that this mechanism for encryption is not
 meant to be un-hackable. If you really want password security, then
 use https when calling this service. Just for completeness, here is
 the required conversation for logging in a user with client-side password
 encryption (this conversation must be handled in a timely fasion, since
 there is a timer starting when getPasswordHashKey is called, and ending
 when this method is called. The time between these method calls cannot
 exceed the value of maxAuthenticationWait in milliseconds):
 1) Client calls canClientEncryptPasswords
 2) If canClientEncryptPasswords returns false, client should use
 https and send the password as cleartext. Currently, only the
 MD5PasswordHasher is a supported for encrypted passwords. Client should
 call loginUser(login, cleartext_password, false)
 3) If canClientEncryptPasswords returns true, client
 calls getPasswordHashAlgorithm
 4) Client encrypts the user's password using the rules required by
 the returned algorithm. These rules vary depending on the password
 hasher being used for a given application. Consult the documentation
 for specifics. 
 5) Client calls getPasswordHashKey - note that the conversation
 timer is started here. Clients have maxAuthenticationWait
 milliseconds to call loginUser. If loginUser is not
 called quickly enough, an error is thrown when it is eventually
 called
 6) Client further encrypts the user's password using the returned
 hash key. The order and manner in which this encryption occurs is
 based on the rules of the password hasher being used. Consult
 the documentation for specifics.
 7) Client calls
 loginUser(login, encrypted_password_from_step_6, true)
 As you can see, encrypting passwords on the client side is tricky, and
 not 100% safe. It is strongly recommended that you call this service
 using https and cleartext passwords
 
 This method calls preLogin,
 doLoginUser , and
 postLoginUser in turn
 
This method is expected to be called in the context of an HTTP request. Also, a transaction is required when executing this method. If no transaction is in place, a new one is started and committed before this method returns.
The following request parameters are set in this method:
LOGIN_PARAM - the login of the user
 PASSWORD_PARAM - the password of the user
 If this method is called by a user that is already logged in, then that user's login is returned (assuming the credentials match)
pLogin - the login of the user. This argument cannot be nullpPassword - the password of the user to login. This argument
 can be nullpIsPasswordEncrypted - true if the given password is
 encrypted according to the rules above, false if the password
 is cleartextjavax.servlet.ServletException - if any of the following errors occur:
 pLogin is null
 public java.lang.String loginUserOnRealm(java.lang.String pLogin,
                                java.lang.String pPassword,
                                boolean pIsPasswordEncrypted,
                                java.lang.String pPushRealm,
                                java.lang.String pPushSite)
                                  throws javax.servlet.ServletException
getPasswordHashKey() method was called
 prior to this method in order to get a temporary hashkey used
 to encrypt the password on the method caller's end.
 Password encryption on the client side is an option when using this
 service with a non-secure protocol, such as http. It should be
 stressed in triplicate that this mechanism for encryption is not
 meant to be un-hackable. If you really want password security, then
 use https when calling this service. Just for completeness, here is
 the required conversation for logging in a user with client-side password
 encryption (this conversation must be handled in a timely fasion, since
 there is a timer starting when getPasswordHashKey is called, and ending
 when this method is called. The time between these method calls cannot
 exceed the value of maxAuthenticationWait in milliseconds):
 1) Client calls canClientEncryptPasswords
 2) If canClientEncryptPasswords returns false, client should use
 https and send the password as cleartext. Currently, only the
 MD5PasswordHasher is a supported for encrypted passwords. Client should
 call loginUser(login, cleartext_password, false)
 3) If canClientEncryptPasswords returns true, client
 calls getPasswordHashAlgorithm
 4) Client encrypts the user's password using the rules required by
 the returned algorithm. These rules vary depending on the password
 hasher being used for a given application. Consult the documentation
 for specifics. 
 5) Client calls getPasswordHashKey - note that the conversation
 timer is started here. Clients have maxAuthenticationWait
 milliseconds to call loginUser. If loginUser is not
 called quickly enough, an error is thrown when it is eventually
 called
 6) Client further encrypts the user's password using the returned
 hash key. The order and manner in which this encryption occurs is
 based on the rules of the password hasher being used. Consult
 the documentation for specifics.
 7) Client calls
 loginUser(login, encrypted_password_from_step_6, true)
 As you can see, encrypting passwords on the client side is tricky, and
 not 100% safe. It is strongly recommended that you call this service
 using https and cleartext passwords
 
 This method calls preLogin,
 doLoginUser , and
 postLoginUser in turn
 
This method is expected to be called in the context of an HTTP request. Also, a transaction is required when executing this method. If no transaction is in place, a new one is started and committed before this method returns.
The following request parameters are set in this method:
LOGIN_PARAM - the login of the user
 PASSWORD_PARAM - the password of the user
 PUSH_REALM_PARAM - the profile realm of the user
 PUSH_SITE_PARAM - the site to log in the user to
 If this method is called by a user that is already logged in, then that user's login is returned (assuming the credentials match)
pLogin - the login of the user. This argument cannot be nullpPassword - the password of the user to login. This argument
 can be nullpPushRealm - the realm the user is a part ofpPushSite - the site to log in the user topIsPasswordEncrypted - true if the given password is
 encrypted according to the rules above, false if the password
 is cleartextjavax.servlet.ServletException - if any of the following errors occur:
 pLogin is null
 protected void preLoginUser(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws javax.servlet.ServletException
pRequest - the current request, expected to have the following
 parameters:
 LOGIN_PARAM - the login of the user
 PASSWORD_PARAM - the password of the user
HASHKEY_PARAM - the hashkey that was given to
 the client if they called getPasswordHashKey. Note
 that this only applies in the case that the client signaled that
 this authentication attempt used an encrypted password
 pResponse - the current responsejavax.servlet.ServletException - if any of the following occur:
 protected void preLoginUser(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse, boolean pTrusted) throws javax.servlet.ServletException
pRequest - the current request, expected to have the following
 parameters:
 LOGIN_PARAM - the login of the user
pResponse - the current responsepTrusted - True is the user is trusted, false if the user is not trustedjavax.servlet.ServletException - if any of the following occur:
 protected void doLoginUser(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws javax.servlet.ServletException
propertiesToCopyOnLogin or
 propertiesToAddOnLogin are set, then those properties
 will be copied/added from the un-logged in profile to the logged-in
 profilepRequest - the current request, expected to have the following
 parameters:
 LOGIN_PARAM - the login of the user
 PASSWORD_PARAM - the password of the user
HASHKEY_PARAM - the hashkey that was given to
 the client if they called getPasswordHashKey. Note
 that this only applies in the case that the client signaled that
 this authentication attempt used an encrypted password
 pResponse - the current responsejavax.servlet.ServletException - if the password used to login is incorrect,
 or an error occurs doing repository operations associated with logging
 inprotected void doLoginUser(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse, boolean pTrusted) throws javax.servlet.ServletException
propertiesToCopyOnLogin or
 propertiesToAddOnLogin are set, then those properties
 will be copied/added from the un-logged in profile to the logged-in
 profilepRequest - the current request, expected to have the following
 parameters:
 LOGIN_PARAM - the login of the user
pResponse - the current responsepTrusted - True is the user is trusted, false if the user is not trustedjavax.servlet.ServletExceptionprotected void postLoginUser(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws javax.servlet.ServletException
pRequest - the current request, expected to have the following
 parameters:
 LOGIN_PARAM - the login of the user
 PASSWORD_PARAM - the password of the user
HASHKEY_PARAM - the hashkey that was given to
 the client if they called getPasswordHashKey. Note
 that this only applies in the case that the client signaled that
 this authentication attempt used an encrypted password
 pResponse - the current responsejavax.servlet.ServletException - if there is a problem sending cookies,
 or changing the security statusprotected void postLoginUser(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse, boolean pTrusted) throws javax.servlet.ServletException
pRequest - the current request, expected to have the following
 parameters:
 LOGIN_PARAM - the login of the user
pResponse - the current responsepTrusted - True is the user is trusted, false if the user is not trustedjavax.servlet.ServletException - if there is a problem sending cookies,
 or changing the security statuspublic void logoutUser()
                throws javax.servlet.ServletException
 This method calls preLogoutUser,
 doLogoutUser , and
 postLogoutUser in turn
 
This method is expected to be called in the context of an HTTP request. Also, a transaction is required when executing this method. If no transaction is in place, a new one is started and committed before this method returns.
javax.servlet.ServletException - if this method is not called within
 the context of a request, or is propagated up from preLogoutUser,
 doLogoutUser, or postLogoutUserprotected void preLogoutUser(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws javax.servlet.ServletException
 If logout events are to be fired (generateLogoutEvents is
 true), the following request parameter is set in this method
 LOGOUT_ID_PARAM - the id of the person that is being
 logged out. This needs to be saved so we can fire the event after
 the person is sucessfully logged out
pRequest - the current requestpResponse - the current responsejavax.servlet.ServletException - if we're setting up a logout event and
 there is no current profile to get the id fromprotected void doLogoutUser(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws javax.servlet.ServletException
pRequest - the current request, which could have the following
 parameter:
 LOGOUT_ID_PARAM - the id of the person that is being
 logged out
pRequest - the current requestpResponse - the current responsejavax.servlet.ServletException - if a user-defined error occursprotected void postLogoutUser(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws javax.servlet.ServletException
pRequest - the current request, which could have the following
 parameter:
 LOGOUT_ID_PARAM - the id of the person that is being
 logged out
pResponse - the current responsejavax.servlet.ServletException - in the case where we do not
 expire the current session, and get an error trying to create a new
 RepositoryItem for the profile's data sourcepublic java.lang.String createUser(java.lang.String pProfileAsXML)
                            throws javax.servlet.ServletException
pProfileAsXML. It's intended that this service be
 used by users to create their own profile, and certain session
 actions will take place based on that assumption i.e. cookie handling,
 locale changing, etc. Admins that want to create other users' profiles
 should use adminCreateUserService,
 and not this method.
 
 This method calls preCreateUser,
 doCreateUser , and
 postCreateUser in turn
 
This method is expected to be called in the context of an HTTP request. Also, a transaction is required when executing this method. If no transaction is in place, a new one is started and committed before this method returns.
 The following request parameter is set in this method
 XML_ITEM_PARAM - the current Repo2Xml item
 that is being created
pProfileAsXML - the profile of the new persistent
 user. NOTE: Any password present in this XML should not
 have been pre-encrypted by the client. It will be encrypted
 in this operation. This argument may not be nulljavax.servlet.ServletException - if any of the following occurs:
 pProfileAsXML argument is null or empty
 protected void preCreateUser(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws javax.servlet.ServletException
pRequest - the current request, expected to have the following
 parameter:
   XML_ITEM_PARAM - the current item that is to be created
pResponse - the current responsejavax.servlet.ServletException - if an error occurs.protected void doCreateUser(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws javax.servlet.ServletException
pRequest - the current request, expected to have the following
 parameter:
   XML_ITEM_PARAM - the current item that is to be created
pResponse - the current responsejavax.servlet.ServletException - if any of the following errors occur:
 pRequest
 protected void postCreateUser(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws javax.servlet.ServletException
pRequest - the current request, expected to have the following
 parameter:
   XML_ITEM_PARAM - the current item that is to be created
pResponse - the current responsejavax.servlet.ServletException - if an error occurspublic boolean deleteUser(java.lang.String pProfileId)
                   throws javax.servlet.ServletException
pProfileId.
 It's intended that this service be used by users to delete their own
 profile.
 
 This method calls preDeleteUser,
 doDeleteUser , and
 postDeleteUser in turn
 
This method is expected to be called in the context of an HTTP request. Also, a transaction is required when executing this method. If no transaction is in place, a new one is started and committed before this method returns.
 The following request parameter is set in this method
 UPDATE_ID_PARAM - the id of the profile that is to be
 deleted
pProfileId - the profile of the user to delete. This argument
 may not be nulljavax.servlet.ServletException - if any of the following occurs:
 pProfileId argument is null or empty
 protected void preDeleteUser(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws javax.servlet.ServletException
pRequest - the current request, expected to have the following
 parameter:
   UPDATE_ID_PARAM - the id of the user to be deleted
pResponse - the current responsejavax.servlet.ServletException - if an error occurs.protected void postDeleteUser(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws javax.servlet.ServletException
pRequest - the current request, expected to have the following
 parameter:
   UPDATE_ID_PARAM - the id of the user to be deleted
pResponse - the current responsejavax.servlet.ServletException - if an error occurs.protected void doDeleteUser(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws javax.servlet.ServletException
createProfileType propertypRequest - the current request, expected to have the following
 parameter:
   UPDATE_ID_PARAM - the id of the user to be deleted
pResponse - the current responsejavax.servlet.ServletException - if any of the following errors occur:
 pRequest
 public java.lang.String getPasswordHashKey()
                                    throws javax.servlet.ServletException
profileTools property. If this PasswordHasher
 does not support adding hashkeys for extra encryption, this method
 will return null and any web service clients using this call during
 a login conversation should not encrypt their passwords i.e. use
 https. In the case where a non-null hashkey is generated, this method
 starts the login conversation for a login attempt with an encrypted
 password.javax.servlet.ServletException - if we're already in the middle of a
 login conversation and we've exceeded the conversation time limit, as
 specified by maxAuthenticationWaitpublic java.lang.String getPasswordHashAlgorithm()
                                          throws javax.servlet.ServletException
javax.servlet.ServletExceptionpublic boolean canClientEncryptPasswords()
public void updateXMLItem(java.lang.String pItemAsXML,
                 java.lang.String[] pMatchedProperties)
                   throws RepositoryException
pItemAsXML - the item to update in XML format. The name of the
 repository and the item's type are present in the XML format, so
 those do not need to be supplied as arguments. This method will determine
 which known RepositoryItem to update based on the values of the
 properties listed in pMatchedProperties present in the
 pItemAsXML, or if that argument is null, the repositoryId
 will be used to match items. If there is no existing item which matches
 those property values, then the item will be added to the repository
 if the xmlUpdateService
 component has its addWhenNoMatchedItems flag set to true.pMatchedProperties - an array of property names that will be used
 to match up values between the given pItemAsXML and an
 existing RepositoryItem object (note: use "repositoryId" to specify
 the matching of ids)RepositoryException - if an error occurs updating the item
 in the repositorypublic java.lang.String getXMLItem(RepositoryItem pItem, Repository pRepository, java.lang.String pItemDescriptorName, java.lang.String pMappingFile) throws RepositoryException
pItem - the item to transformpRepository - the repository that holds
 the item, used to determine a mapping filepItemDescriptorName - the name of the item descriptor that describes
 the given item, used to determine a mapping filepMappingFile - the mapping file to use when turning the item
 into an XML documentRepositoryException - if an error occurs transforming the itempublic RepositoryItem addXMLItem(java.lang.String pItemAsXML, boolean pPersist) throws RepositoryException
pItemAsXML - the item to add or createpPersist - if true, the given item will be added, otherwise
 it will just be createdRepositoryException - if an error occurs adding or creating
 the itempublic java.lang.String getMappingFile(Repository pRepository, java.lang.String pItemDescriptorName)
pRepository - the repository that contains
 the given item descriptorpItemDescriptorName - the name of the item descriptor to get the
 mapping file forpublic RepositoryItem getRepositoryItemFromXML(java.lang.String pItemAsXML) throws RepositoryException
pItemAsXML - the repository item in XML formpItemAsXML, or null if no such object is
 foundRepositoryExceptionpublic RepositoryItem getRepositoryItemFromXML(java.lang.String pItemAsXML, java.lang.String[] pMatchedProperties) throws RepositoryException
pItemAsXML - the repository item in XML formpMatchedProperties - an array of property names whose
 values are used to find the pItemAsXML objects match in the
 repositorypItemAsXML, or null if no such object is
 foundRepositoryExceptionprotected javax.transaction.Transaction ensureTransaction()
protected void commitTransaction()
public void doStartService()
                    throws ServiceException
doStartService in class GenericServiceServiceException - if there is no ProfileTools component
 to be foundpublic PasswordHasher getLoginPasswordHasher()
public java.lang.String getCurrentProfileId()
public Profile getCurrentProfile()
public void updateLDAPProfileAttributes(MutableRepositoryItem pItem) throws RepositoryException
pItem - the item to change values onRepositoryExceptionpublic void copyProperties(RepositoryItem pGuestUser, RepositoryItem pAuthenticatedUser, java.lang.String[] pPropertiesToCopy) throws RepositoryException
pPropertiesToCopy from
 the pGuestUser to the pAuthenticatedUserpGuestUser - the user to get values frompAuthenticatedUser - the user to copy values topPropertiesToCopy - the properties that should be copiedRepositoryException - if an error occurs updating
 the authenticated userpublic void addProperties(RepositoryItem pGuestUser, RepositoryItem pAuthenticatedUser, java.lang.String[] pPropertiesToAdd) throws RepositoryException
pGuestUser - the user to copy values frompAuthenticatedUser - the user to copy values topPropertiesToAdd - names of multi-valued properties whose
 values should be added from the guest to the authenticated userRepositoryException - if an error occurs updating the
 authenticated user with the added propertiespublic void addProperty(java.lang.String pPropertyName,
               RepositoryItem pGuestUser,
               RepositoryItem pAuthenticatedUser)
                 throws RepositoryException
pGuestUser - the user to copy values frompAuthenticatedUser - the user to copy values topPropertyName - the name of a multi-valued property whose values
 will be copied from the guest user and added to the authenticated userRepositoryExceptionpublic void addUpdateListener(atg.userprofiling.ProfileUpdateListener pListener)
pListener - the listener to addpublic void removeUpdateListener(atg.userprofiling.ProfileUpdateListener pListener)
pListener - the listener to removepublic void sendUpdateEvent(atg.userprofiling.ProfileUpdateEvent pEvent)
pEvent - the event to sendpublic void encryptPassword(MutableRepositoryItem pProfile) throws RepositoryException
pProfile - the profile to encrypt the password ofRepositoryExceptionpublic boolean endOperation(DynamoHttpServletRequest pRequest)
pRequest - the request to examinepublic java.lang.Object endOperationValue(DynamoHttpServletRequest pRequest)
pRequest - the request to be examinedpublic void sendProfileSwapEvent(int pEventType,
                        RepositoryItem pPreSwapItem,
                        RepositoryItem pPostSwapItem)
pEventType - the type of operation that was performed when
 the profiles were swappedpPreSwapItem - the data source of the profile before the
 swap was performedpPostSwapItem - the data source of the profile after the
 swap was performedpublic java.lang.String pushRealmFromRequest(DynamoHttpServletRequest pRequest)
public boolean popRealm(java.lang.String pRealmId)