com.ibm.as400.security.auth
Class ProfileHandleCredential

java.lang.Object
  extended bycom.ibm.as400.security.auth.AS400Credential
      extended bycom.ibm.as400.security.auth.ProfileHandleCredential
All Implemented Interfaces:
AS400SwappableCredential, Serializable

public final class ProfileHandleCredential
extends AS400Credential

The ProfileHandleCredential class represents an i5/OS system profile handle.

This credential does not support all possible behavior for i5/OS system profile handles. It is provided to fill a secondary role in support of other credentials when running on the local i5/OS system. A profile handle credential provides the ability to store the current thread identity and restore that identity after performing a swap based on another credential (i.e. ProfileTokenCredential).

See Also:
AS400Credential, ProfileTokenCredential, Serialized Form

Field Summary
static int HANDLE_LENGTH
          Indicates the length of a profile handle (in bytes)
 
Fields inherited from class com.ibm.as400.security.auth.AS400Credential
CR_AUTO_REFRESH_FAILED, CR_AUTO_REFRESH_NOT_VALID, CR_AUTO_REFRESH_STARTED, CR_AUTO_REFRESH_STOPPED
 
Constructor Summary
ProfileHandleCredential()
          Constructs a ProfileHandleCredential object.
 
Method Summary
 boolean equals(Object o)
          Compares the specified Object with the credential for equality.
 byte[] getHandle()
          Returns the actual bytes for the handle as it exists on the i5/OS system.
 int hashCode()
          Returns a hash code for this credential.
 void setHandle()
          Sets the handle based on the current thread identity.
 void setHandle(byte[] bytes)
          Sets the actual bytes for the handle as it exists on the i5/OS system.
 
Methods inherited from class com.ibm.as400.security.auth.AS400Credential
addCredentialListener, addPropertyChangeListener, addVetoableChangeListener, basicAuthenticationPrompt, destroy, finalize, getAutomaticRefreshFailure, getAutomaticRefreshStatus, getPrincipal, getSystem, getTimeToExpiration, isCurrent, isDestroyed, isPrivate, isRenewable, isTimed, refresh, removeCredentialListener, removePropertyChangeListener, removeVetoableChangeListener, setPrincipal, setSystem, startAutomaticRefresh, stopAutomaticRefresh, swap, swap
 
Methods inherited from class java.lang.Object
clone, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

HANDLE_LENGTH

public static int HANDLE_LENGTH
Indicates the length of a profile handle (in bytes)

Constructor Detail

ProfileHandleCredential

public ProfileHandleCredential()
Constructs a ProfileHandleCredential object.

Method Detail

equals

public boolean equals(Object o)
Compares the specified Object with the credential for equality.

Parameters:
o - Object to be compared for equality.
Returns:
true if equal; otherwise false.

getHandle

public byte[] getHandle()
Returns the actual bytes for the handle as it exists on the i5/OS system.

Returns:
The handle bytes; null if not set.

hashCode

public int hashCode()
Returns a hash code for this credential.

Returns:
a hash code for this credential.

setHandle

public void setHandle()
               throws PropertyVetoException,
                      AS400SecurityException
Sets the handle based on the current thread identity.

The system property must be set prior to invoking this method.

If successful, this method results in a new profile handle being created on the i5/OS system.

This property cannot be changed once a request initiates a connection for the object to the i5/OS system.

Throws:
AS400SecurityException - If an i5/OS system security or authentication error occurs.
PropertyVetoException - If the change is vetoed.
ExtendedIllegalStateException - If the token cannot be initialized due to the current state.

setHandle

public void setHandle(byte[] bytes)
               throws PropertyVetoException
Sets the actual bytes for the handle as it exists on the i5/OS system.

This method allows a credential to be constructed based on an existing handle (i.e. previously created using the QSYGETPH system API).

This property cannot be changed once a request initiates a connection for the object to the i5/OS system.

Parameters:
bytes - The handle bytes.
Throws:
PropertyVetoException - If the change is vetoed.
ExtendedIllegalArgumentException - If the provided value exceeds the maximum allowed length.
ExtendedIllegalStateException - If the property cannot be changed due to the current state.