Program Exit Input Argument and Input XML Buffer Authentication Type

Program exits have a single interface consisting of a single input argument, which is an XML buffer. All program exits are passed to the XML buffer with the following format:
cim1265
Program exits have a single interface consisting of a single input argument, which is an XML buffer. All program exits are passed to the XML buffer with the following format:
<eTExitInvoke eTExitType={one of the exit types}> <{the objectclass of the object being processed}> <dn>{the full DN of the object}</dn> <name>{the name, that is, RDN value, of the object}</name> <{attribute type}>{attribute value}</{attribute type}> ... </{the objectclass of the object being processed}> <Authentication> <Type> </Type> <User> </User> <Password> </Password> </Authentication> </eTExitInvoke>
For example:
<eTExitInvoke eTExitType=PRE_ADD_ACCOUNT> <eTSDKAccount> <dn>eTSDKAccountName=test1, eTSDKAccountContainerName=SDK Accounts, eTSDKDirectoryName=Team1, dc=Dev</dn> <name>test1</name> <eTSDKCity>Renton</eTSDKCity> </eTSDKAccount> <Authentication> <Type>GLOBAL_USER</Type> <User>{the DN of the global user}</User> <Password>{the password of the global user}</Password} </Authentication> </eTExitInvoke>
For modify operations, the modify mode is specific in each tag. The possible modify modes are ADD, DELETE, and REPLACE. For example:
<eTExitInvoke eTExitType=PRE_MOIDFY_ACCOUNT> <eTSDKAccount> <dn>eTSDKAccountName=test1, eTSDKAccountContainerName=SDK Accounts, eTSDKDirectoryName=Team1, dc=Dev</dn> <name>test1</name> <eTSDKCity modify-mode="replace">Kirkland</eTSDKCity> <eTSDKDescription modify-mode="delete" Old description</eTSDKDescription> </eTSDKAccount> </eTExitInvoke>
The program exit parses this input argument to get the data it needs to perform its specific task.
If a program exit is defined to handle only a specific type of exit, it should check the eTExitType to make sure that it can handle that specific type. For example, if a program exit is designed to handle the exit type PRE_ADD_ACCOUNT, it should check eTExitType and should perform only its task, if the exit type is correct. If the exit type is not handled by the program exit, it should do nothing and should return a warning.

Input XML Buffer Authentication Type

Each input XML buffer may contain an optional authentication XML block. The format of the authentication XML block is always defined as follows.
<Authentication> <Type> </Type> <User> </User> <Password> </Password> </Authentication>
The data in the authentication XML block depends on the type of authentication defined for the program exit. The following are the possible authentication types:
  • NONE
    No credentials are passed to the method being invoked. Thus, the input XML buffer does not contain an authentication block.
  • GLOBAL_USER
    The credentials of the currently logged on global user are passed to the program exit being invoked. The <User> tag contains the DN of the global user. The <Password> tag contains the password for that global user.
    The password is not encrypted.
  • PROXY
    The credentials of a specific global user are passed to the program exit being invoked. The <User> tag contains the DN of the specific global user. The <Password> tag contains the password for that global user.
    The password is not encrypted.
  • OTHER
    Indicates that the <User> and <Password> tags are program-exit specific. The <User> and <Password> tags can be any free form text. It is up to the program exits to define what these fields mean.