public class UserStatus
extends java.lang.Object
User.
The user's status can consist of non-critical failures that have occurred, operations that are required, and/or operations that have occurred. It is designed to provide additional information about a user login or key management operation.
The user status is composed of as set of unique status codes. The user's status can consist of any number of status codes, each of which can also have a corresponding status message.
All currently defined status codes are included as constants in this class.
User| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
DIRECTORY_IS_OLD
Indicates that information in the Directory is old; publication of a user
certificate is pending (has not occurred yet).
|
static java.lang.String |
DN_CHANGE_OCCURRED
Indicates that the user's DN was changed.
|
static java.lang.String |
DN_CHANGE_REQUIRED
Indicates that the user requires a DN change.
|
static java.lang.String |
ENCRYPTION_CERTIFICATE_UPDATE_OCCURRED
Indicates that the user's decryption/encryption key/certificate was
updated.
|
static java.lang.String |
ENCRYPTION_CERTIFICATE_UPDATE_REQUIRED
Indicates that the user's decryption/encryption key/certificate requires
updating.
|
static java.lang.String |
ISSUING_CA_CERTIFICATE_UPDATED
Indicates that the user's issuing CA certificate has been updated.
|
static java.lang.String |
KEY_MANAGEMENT_FAILED
Indicates that an attempt was made to do key management, but that attempt
failed.
|
static java.lang.String |
KEY_MANAGEMENT_NOT_POSSIBLE
Indicates that key management cannot be performed.
|
static java.lang.String |
MSCAPI_CERTIFICATE_PROPERTY_REPAIR_OCCURRED
Indicates that some of the user's certificates stored in Microsoft
CryptoAPI (MSCAPI) had invalid or missing certificate properties that
have since be repaired by restoring the correct certificate property
values.
|
static java.lang.String |
MSCAPI_CERTIFICATE_PROPERTY_REPAIR_REQUIRED
Indicates that some of the user's certificates stored in Microsoft
CryptoAPI (MSCAPI) have invalid or missing certificate properties and
repair is required to restore the correct certificate property values.
|
static java.lang.String |
OPTIONS_CHANGED
Indicates that the 'Options' information in an Entrust file-based Digital
Identity store has been tampered (modified by a third-party).
|
static java.lang.String |
OPTIONS_NOT_AVAILABLE
Indicates that the 'Options' information in an Entrust file-based or
token-based Digital Identity store is not available (missing/empty or
MAC protection is missing).
|
static java.lang.String |
OPTIONS_UPDATED
Indicates that the 'Options' information in an Entrust file-based Digital
Identity store has been updated.
|
static java.lang.String |
PASSWORD_EXPIRED
Indicates that, according to the user's password history and password
policy, the user's current password has expired and must be changed.
|
static java.lang.String |
PASSWORD_HISTORY_NOT_AVAILABLE
Indicates that the password history in an Entrust file-based Digital
Identity store is not available (missing/empty).
|
static java.lang.String |
PASSWORD_NOT_VALID
Indicates that, according to the user's password policy, the user's current
password is not valid.
|
static java.lang.String |
ROOT_CA_CERTIFICATE_UPDATED
When in a hierarchy, indicates that the Root CA certificate has been updated.
|
static java.lang.String |
UAL_UPDATE_FAILED
Indicates that an attempt was made to update the UAL file for Server Login, but that
the attempt failed.
|
static java.lang.String |
USER_CERTIFICATE_SYNCHRONIZATION_OCCURRED
Indicates that additional user keys/certificates were received
through certificate store synchronization.
|
static java.lang.String |
USER_CERTIFICATE_SYNCHRONIZATION_REQUIRED
Indicates that a certificate store synchronization operation is
required.
|
static java.lang.String |
USER_CERTIFICATE_UPDATE_OCCURRED
Indicates that one or more of the user's keys/certificates was updated
(including the encryption/decryption and signing/verification
key/certificate.
|
static java.lang.String |
USER_CERTIFICATE_UPDATE_REQUIRED
Indicates that one or more of the user's keys/certificates requires an
update (including the encryption/decryption and signing/verification
key/certificate).
|
static java.lang.String |
USER_CERTIFICATION_OCCURRED
Indicates that certification occurred for one or more
certificate-definitions that were added to the user's certificate-type.
|
static java.lang.String |
USER_CERTIFICATION_REQUIRED
Indicates that one or more certificate-definitions have been added to
the user's certificate-type, each of which requires certification.
|
static java.lang.String |
USER_EXPORT_COMPLETED
Indicates that a user export operation has been completed, and the user now
exists on a new Security Manager.
|
static java.lang.String |
USER_EXPORT_DETECTED
Indicates that the user has been exported to a new Security Manager, and
that the user must contact the new Security Manager to complete the export
operation.
|
static java.lang.String |
USER_IS_BEING_EXPORTED
Indicates that the user is in the process of being exported to a new
Security Manager.
|
static java.lang.String |
USER_IS_DEACTIVATED
Indicates that the user has been disabled/deactivated.
|
static java.lang.String |
V2_UPGRADE_OCCURRED
Indicates that the user's Digital Identity store was upgraded from
V1-key-pair format to V2-key-pair format.
|
static java.lang.String |
V2_UPGRADE_REQUIRED
Indicates that the user's Digital Identity store requires an upgrade from
V1-key-pair format to V2-key-pair format.
|
static java.lang.String |
VERIFICATION_CERTIFICATE_UPDATE_OCCURRED
Indicates that the user's signing/verification key/certificate was
updated.
|
static java.lang.String |
VERIFICATION_CERTIFICATE_UPDATE_REQUIRED
Indicates that the user's signing/verification key/certificate requires
updating.
|
static java.lang.String |
X500NAME_CHANGED
Indicates that the 'User X.500 Name' information in an Entrust file-based
Digital Identity store has been tampered (modified by a third-party).
|
static java.lang.String |
X500NAME_NOT_AVAILABLE
Indicates that the 'User X.500 Name' information in an Entrust file-based
Digital Identity store is not available (missing/empty or MAC protection is
missing).
|
static java.lang.String |
XCC_READ_FAILED
Indicates that an attempt was made to read a user's Cross-certificate
Cache file (.xcc), but that attempt failed.
|
static java.lang.String |
XCC_WRITE_FAILED
Indicates that an attempt was made to write a user's Cross-certificate
Cache file (.xcc), but that attempt failed.
|
| Modifier and Type | Method and Description |
|---|---|
int |
getLoginStatus()
Returns the user's status after a login.
|
java.lang.String |
getStatusMessage(java.lang.String status)
Returns the status message associated with a status that is present.
|
boolean |
isStatusPresent(java.lang.String status)
Determines whether a specified status is present.
|
boolean |
keyUpdateOccurred()
Returns whether or not any key and certificate update operation occurred.
|
boolean |
keyUpdateRequired()
Returns whether or not any key and certificate update operation is required.
|
java.lang.String |
toString()
Returns a string representation of the user's status.
|
public static final java.lang.String OPTIONS_CHANGED
This can be detected during login, and usually results from someone manually modifying an entry in the 'Options' section of their EPF file (e.g. resetting the 'CertificatePublicationPending' flag). It means that the information in the 'Options' section (miscellaneous Entrust options) has been modified in an unauthorized manner. In this case, the application must decide whether or not to trust the information in the file-based Digital Identity store.
Corresponds to the User.WARNING_OPTIONS_CHANGED field.
public static final java.lang.String OPTIONS_UPDATED
This would normally occur when key management is prevented due to a policy such as "Enforce Token Usage" that prevents writing to certain credential store types. In this case the options section of the EPF file can still be updated without performing any key management.
public static final java.lang.String OPTIONS_NOT_AVAILABLE
This can be detected during login, and usually results from someone manually modifying their EPF file by removing the 'Options' section entirely or removing the 'Options MAC' entry in the 'Password Token' section. It means that the data that is normally contained in the 'Options' section is not available. In this case, the application must decide whether any action is necessary (warn user, disallow login, ignore ...).
Corresponds to the User.WARNING_OPTIONS_NOT_AVAILABLE field.
public static final java.lang.String X500NAME_CHANGED
This can be detected during login, and usually results from someone manually modifying the 'User X.500 Name' section (e.g. changing the 'X500name entry). It means that the information in the 'User X.500 Name' section (user's DN) has been modified in an unauthorized manner. However, this section was designed to provide the user's DN in a human readable format; the information it contains is not used by the Toolkit and most (if not all) other Entrust products. Thus, in almost all cases this status can be ignored, but it is provided so that the application can decide if any action must be taken as a result.
Corresponds to the User.WARNING_X500NAME_CHANGED field.
public static final java.lang.String X500NAME_NOT_AVAILABLE
This can be detected during login, and usually results from someone manually modifying their EPF file by removing the 'User X.500 Name' section entirely or removing the 'User X.500 Name MAC' entry in the 'Password Token' section. It means that the data that is normally contained in the 'User X.500 Name' section is not available. However, this section was designed to provide the user's DN in a human readable format; the information it contains is not used by the Toolkit and most (if not all) other Entrust products. Thus, in almost all cases this status can be ignored, but it is provided so that the application can decide if any action must be taken as a result.
public static final java.lang.String PASSWORD_HISTORY_NOT_AVAILABLE
This can be detected during login, and can result from someone manually modifying their EPF file by removing the '&pwHistory' entry from the 'Protected' section. It can also result from using an EPF that was created by an older version of an Entrust product; some early versions of Entrust software did not support this entry. It means that the user does not have a password history; no record exists of the previous passwords that have already been used by the user or when the last password change occurred.
This status can be important, since it can indicate attempt to by-pass the user's password policy. By deleting the password history entry, a user could then re-use a recently previously used password, or avoid having to change their current password. The application must decide whether any action is necessary (force password change, disallow login, ignore ...).
public static final java.lang.String PASSWORD_EXPIRED
This can be detected during login, and occurs when the user's current password has been in use for longer than is allowed by the user's password policy. The application must decide whether any action is necessary (force password change, suggest password change, ignore ...).
Corresponds to the User.WARNING_PW_EXPIRED field.
public static final java.lang.String PASSWORD_NOT_VALID
This can be detected during login, and occurs when the user's current password does not obey the password rules contained in the user's password policy. The application must decide whether any action is necessary (force password change, suggest password change, ignore ...).
Corresponds to the User.WARNING_PW_NOT_VALID field.
public static final java.lang.String DIRECTORY_IS_OLD
This can be detected during login for a V1-key-pair user. It occurs when the user's decryption/encryption key/certificate has been created or updated, but the new encryption certificate cannot be found in the Directory 24 hours after it should have been published. The application must decide whether any action is necessary (warn user, disallow login ...).
Corresponds to the User.WARNING_DIRECTORY_IS_OLD field.
public static final java.lang.String ENCRYPTION_CERTIFICATE_UPDATE_REQUIRED
This can be detected during any attempt to do key management (login, client
forced update ...). It occurs when the user's decryption/encryption
key/certificate requires update but the resulting update operation could
not be done or did not complete successfully. This status will be
accompanied by either KEY_MANAGEMENT_NOT_POSSIBLE or
KEY_MANAGEMENT_FAILED, which will indicate why the update
operation did not occur. The application must decide whether any action is
necessary (warn user, force login online, force login with a
credential writer ...).
Corresponds to the User.WARNING_ENCRYPTION_KEY_NEEDS_UPDATE field.
public static final java.lang.String ENCRYPTION_CERTIFICATE_UPDATE_OCCURRED
This can be detected during any attempt to do key management (login, client forced update ...). It occurs when the user's decryption/encryption key/certificate requires update, and the resulting update operation is completed successfully. The application must decide whether any action is necessary (notify user, log status ...).
Corresponds to the User.WARNING_ENC_KEY_UPDATED field.
public static final java.lang.String VERIFICATION_CERTIFICATE_UPDATE_REQUIRED
This can be detected during any attempt to do key management (login, client
forced update ...). It occurs when the user's signing/verification
key/certificate requires update but the resulting update operation could
not be done or did not complete successfully. This status will be
accompanied by either KEY_MANAGEMENT_NOT_POSSIBLE or
KEY_MANAGEMENT_FAILED, which will indicate why the update
operation did not occur. The application must decide whether any action is
necessary (warn user, force login online, force login with a
credential writer ...).
Corresponds to the User.WARNING_SIGNING_KEY_NEEDS_UPDATE field.
public static final java.lang.String VERIFICATION_CERTIFICATE_UPDATE_OCCURRED
This can be detected during any attempt to do key management (login, client forced update ...). It occurs when the user's signing/verification key/certificate requires update, and the resulting update operation is completed successfully. The application must decide whether any action is necessary (notify user, log status ...).
Corresponds to the User.WARNING_SIGN_KEY_UPDATED field.
public static final java.lang.String USER_CERTIFICATE_UPDATE_REQUIRED
This can be detected during any attempt to do key management (login, client
forced update ...). It occurs when one or more of the user's
keys/certificates require updates, but, the resulting update operation could
not be done or did not complete successfully. This status will be
accompanied by either KEY_MANAGEMENT_NOT_POSSIBLE or
KEY_MANAGEMENT_FAILED, which will indicate why the update
operation did not occur. The application must decide whether any action is
necessary (warn user, force login online, force login with a
credential writer ...).
public static final java.lang.String USER_CERTIFICATE_UPDATE_OCCURRED
This can be detected during any attempt to do key management (login, client forced update ...). It occurs when one or more of the user's keys/certificates require updates, and the resulting update operation is completed successfully. The application must decide whether any action is necessary (notify user, log status ...).
public static final java.lang.String DN_CHANGE_REQUIRED
This can be detected during any attempt to do key management (login, client
forced update ...). It occurs when the user requires a DN change but the
resulting DN change operation could not be done or did not complete
successfully. This status will be accompanied by either
KEY_MANAGEMENT_NOT_POSSIBLE or
KEY_MANAGEMENT_FAILED, which will indicate why the DN change
operation did not occur. The application must decide whether any action is
necessary (warn user, force login online, force login with a
credential writer ...).
Corresponds to the User.WARNING_DN_CHANGE_REQUIRED field.
public static final java.lang.String DN_CHANGE_OCCURRED
This can be detected during any attempt to do key management (login, client forced update ...). It occurs when the user requires a DN change, and the resulting DN change operation is completed successfully. The application must decide whether any action is necessary (notify user, log status ...).
Corresponds to the User.WARNING_DN_CHANGED field.
public static final java.lang.String USER_CERTIFICATE_SYNCHRONIZATION_REQUIRED
This can be detected for V2-key-pair users during any attempt to do
key management (login, client
forced update ...). It occurs when the Security Manager has backed-up
keys/certificate for the user that the user does not have in their Digital
Identity store but the resulting certificate store synchronization
operation could not be done or did not complete successfully. This status
will be accompanied by either KEY_MANAGEMENT_NOT_POSSIBLE or
KEY_MANAGEMENT_FAILED, which will indicate why the certificate
store synchronization operation did not occur. The application must decide
whether any action is necessary (warn user, force login online, force login
with a credential writer ...).
public static final java.lang.String USER_CERTIFICATE_SYNCHRONIZATION_OCCURRED
This can be detected for V2-key-pair users in any attempt to do key management (login, client initiated update ...). It occurs when the Security Manager has backed-up keys/certificate for the user that the user does not have in their Digital Identity store, and the resulting certificate store synchronization is completed successfully. The application must decide whether any action is necessary (notify user, log status ...).
public static final java.lang.String USER_CERTIFICATION_REQUIRED
This can be detected for V2-key-pair users in any attempt to do
key management (login, client initiated update ...). It occurs when the
user's certificate-type contains one or more certificate-definitions for
which the user does not have keys/certificate in their Digital Identity
store but the resulting key certification operation could not be done or
did not complete successfully. This status will be accompanied by either
KEY_MANAGEMENT_NOT_POSSIBLE or
KEY_MANAGEMENT_FAILED, which will indicate why the key
certification operation did not occur. The application must decide whether
any action is necessary (warn user, force login online, force login with a
credential writer ...).
public static final java.lang.String USER_CERTIFICATION_OCCURRED
This can be detected for V2-key-pair users in any attempt to do key management (login, client initiated update ...). It occurs when the user's certificate-type contains one or more certificate-definitions for which the user does not have keys/certificate in their Digital Identity store, and the resulting key certification operation is completed successfully. The application must decide whether any action is necessary (notify user, log status ...).
public static final java.lang.String V2_UPGRADE_REQUIRED
This can be detected for V1-key-pair users in any attempt to do key management (login, client initiated update ...). It occurs when the user's Digital Identity store exists in V1-key-pair format and the Security Manger supports V2-key-pair but the resulting V2 upgrade operation was not done, could not be done, or did not complete successfully.
A V2 upgrade operation will only be executed when detected during login
where other key management operations are required, or when detected during
a client initiated key management operation. When the V2 upgrade operation
was not executed for some other reason, this status will be accompanied by
either KEY_MANAGEMENT_NOT_POSSIBLE or
KEY_MANAGEMENT_FAILED, which will indicate why the key
V2 upgrade operation did not occur. The application must decide whether
any action is necessary (warn user, initiate key management, ...).
public static final java.lang.String V2_UPGRADE_OCCURRED
This can be detected for V1-key-pair users in any attempt to do key management (login, client initiated update ...). It occurs when the user's Digital Identity store exists in V1-key-pair format and the Security Manger supports V2-key-pair, and the resulting V2 upgrade operation was completed successfully. The application must decide whether any action is necessary (notify user, log status ...).
public static final java.lang.String USER_IS_BEING_EXPORTED
This can be detected for users in any attempt to do key management (login, client initiated update ...). It occurs when an administrator has begun an export operation for a user; the user exists in the 'export hold' state at their old Security Manager. The user can continue to work on the old Security Manager, meaning that their work is not interrupted by the export. However, to ensure that the exported information is complete (that is, no more decryption private keys or verification certificates are created after the user is exported), the old Security Manager will not allow any more key management.
When this status is present, key management operations are not possible.
Any attempt to contact the Security Manager requesting key management will
result in failure, and the KEY_MANAGEMENT_NOT_POSSIBLE status
will be set. The application must decide whether any action is necessary
(notify user, log status ...). Typically, the user must simply wait until
they have been imported into the new Security Manager before any action is
required.
public static final java.lang.String USER_EXPORT_DETECTED
This can be detected for users in any attempt to do key management (login, client initiated update ...). It occurs when an administrator has exported a user from their current Security Manager and imported them into a new Security Manager. The user will exist in the 'exported' state at their old Security Manager and exist in the 'import key recovery' state at their new Security Manager.
While administrators at the old and new Security Manager are exporting and importing a user, the user can continue to work on the old Security Manager so that their work is not interrupted by the export. When this status is present, key management operations with the old Security Manager are not possible, and the user should contact the new Security Manager (as soon as possible) to complete the export process. The application must decide whether or not to complete the user export operation, which may require requesting the address of the new Security Manager and Directory from the user.
The export user operation is completed by calling the
User.completeUserExport(LdapDirectory, ManagerTransport) API.
During this call the user's Digital Identity store is updated to contain the
user's keys/certificate known to the new Security Manager, the user's state
is changed to 'active' at the new Security Manager, and the
USER_EXPORT_COMPLETE status will be set. The old Seucrity
Manager should not be contacted any further by the user; future login should
always be done supplying a connection to the new Security Manager.
public static final java.lang.String USER_EXPORT_COMPLETED
The status is set following a successful call to the
User.completeUserExport(LdapDirectory, ManagerTransport) API.
It indicates that the old Security Manager should not be contacted any
further by the user; future login should always be done supplying a
connection to the new Security Manager. The application must decide
whether any action is necessary (notify user, log status ...).
public static final java.lang.String KEY_MANAGEMENT_NOT_POSSIBLE
This can be detected during any attempt to do key management (login, client forced update ...). It occurs when the key management routine is aborted because the user does not have a connection to a Directory or no credential writer has been set. The application must decide whether any action is necessary (warn user, force login online, ...).
public static final java.lang.String KEY_MANAGEMENT_FAILED
This can be detected during any attempt to do key management (login, client forced update ...). It occurs when the key management routine is aborted because a failure occurred internally. The application must decide whether any action is necessary (warn user, force login with a credential writer, re-attempt login ...).
public static final java.lang.String USER_IS_DEACTIVATED
This can be detected during any attempt to do key management (login, client forced update ...). It occurs when the user has be disabled/deactivated at the Security Manager; in this state key management cannot be done. The application must decide whether any action is necessary (warn user, deny login ...).
public static final java.lang.String UAL_UPDATE_FAILED
UALCredentialReader and there is a failure updating the
UAL file.
The UAL file needs to be updated when one of the computer-specific
parameters used to create the password encryption key changes. Failure to
update it is not fatal, but if more computer-specific parameters change in
the future then Server Login will stop working. It would be a good idea to
run the UALCreator procedure again to re-bind the user's
password to the computer.
UALCreator,
Constant Field Valuespublic static final java.lang.String ISSUING_CA_CERTIFICATE_UPDATED
This can occur during the first time a user logs in after a CA key update. No action is required, although the application may choose to inform the user that this occurred.
public static final java.lang.String ROOT_CA_CERTIFICATE_UPDATED
This can occur during the first time a user logs in after a Root CA key update. No action is required, although the application may choose to inform the user that this occurred.
public static final java.lang.String XCC_READ_FAILED
This is considered a non-fatal failure that can happen during user login. The user login operation will still succeed, however, if the user has logged in offline and a subsequent attempt is made to perform certificate validation, that attempt could fail (the certificates necessary to build a certificate chain that would have been provided by the .xcc file may not be available from any other source).
public static final java.lang.String XCC_WRITE_FAILED
This is considered a non-fatal failure that can happen during user login and/or user logout. The user operation will still succeed, however, if a subsequent attempt is made to perform certificate validation with this user while logged in offline, that attempt could fail (the certificates necessary to build a certificate chain that would have been provided by the .xcc file may not be available from any other source).
public static final java.lang.String MSCAPI_CERTIFICATE_PROPERTY_REPAIR_REQUIRED
Repair is supported for following MSCAPI certificate properties:
public static final java.lang.String MSCAPI_CERTIFICATE_PROPERTY_REPAIR_OCCURRED
See MSCAPI_CERTIFICATE_PROPERTY_REPAIR_REQUIRED for a list of
MSCAPI certificate properties for which repair is supported.
public int getLoginStatus()
User.login, which is a
subset of the full set of status codes. As such, use of this method is not
recommended, it is mostly for internal Toolkit use.User.loginUser.login()public boolean isStatusPresent(java.lang.String status)
The specified status can be any of the fields defined in this class.
status - the status to check fortrue it the user's status contains the specified status,
false otherwisepublic boolean keyUpdateOccurred()
ENCRYPTION_CERTIFICATE_UPDATE_OCCURRED,
VERIFICATION_CERTIFICATE_UPDATE_OCCURRED,
USER_CERTIFICATE_UPDATE_OCCURRED,
USER_CERTIFICATE_SYNCHRONIZATION_OCCURRED,
USER_CERTIFICATION_OCCURRED,
DN_CHANGE_OCCURRED, or USER_EXPORT_COMPLETED
status fields are set.public boolean keyUpdateRequired()
ENCRYPTION_CERTIFICATE_UPDATE_REQUIRED,
VERIFICATION_CERTIFICATE_UPDATE_REQUIRED,
USER_CERTIFICATE_UPDATE_REQUIRED,
USER_CERTIFICATE_SYNCHRONIZATION_REQUIRED,
USER_CERTIFICATION_REQUIRED,
DN_CHANGE_REQUIRED, or USER_EXPORT_DETECTED
status fields are set.public java.lang.String getStatusMessage(java.lang.String status)
The status message is only returned if the status is present and has a status message associated with it. The status message simply provides an indication of why the status exists. It is intended to be used for logging purposes.
status - the status whose message is being requestednull is returnedpublic java.lang.String toString()
This string contains each individual status code it contains and a status message that may be associated with it.
toString in class java.lang.Object