| | |
| | | import org.opends.server.types.InitializationException; |
| | | |
| | | import static org.opends.server.config.ConfigConstants.*; |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.messages.CoreMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.schema.SchemaConstants.*; |
| | |
| | | */ |
| | | public class PasswordPolicy |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.core.PasswordPolicy"; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | private PasswordPolicy() |
| | | { |
| | | assert debugConstructor(CLASS_NAME); |
| | | |
| | | configEntryDN = null; |
| | | passwordAttribute = null; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_PASSWORD_ATTRIBUTE; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_DEFAULT_STORAGE_SCHEMES; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_DEPRECATED_STORAGE_SCHEMES; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_PASSWORD_VALIDATORS; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_NOTIFICATION_HANDLERS; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_ALLOW_USER_PW_CHANGES; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_REQUIRE_CURRENT_PW; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_FORCE_CHANGE_ON_ADD; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_FORCE_CHANGE_ON_RESET; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_SKIP_ADMIN_VALIDATION; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_PASSWORD_GENERATOR; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_REQUIRE_SECURE_AUTH; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_REQUIRE_SECURE_CHANGES; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_ALLOW_MULTIPLE_PW_VALUES; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_ALLOW_PREENCODED; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_MIN_AGE; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_MAX_AGE; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_MAX_RESET_AGE; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_WARNING_INTERVAL; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_EXPIRE_WITHOUT_WARNING; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_ALLOW_EXPIRED_CHANGES; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_GRACE_LOGIN_COUNT; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_LOCKOUT_FAILURE_COUNT; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_LOCKOUT_DURATION; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_FAILURE_EXPIRATION; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_REQUIRE_CHANGE_BY_TIME; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_LAST_LOGIN_TIME_ATTR; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | throw new InitializationException(msgID, message, e); |
| | | } |
| | | |
| | | |
| | | // Get the last login time format. If specified, it must be a valid format |
| | | // string. |
| | | msgID = MSGID_PWPOLICY_DESCRIPTION_LAST_LOGIN_TIME_FORMAT; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", |
| | | e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_INVALID_LAST_LOGIN_TIME_FORMAT; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_LAST_LOGIN_TIME_FORMAT; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_INVALID_PREVIOUS_LAST_LOGIN_TIME_FORMAT; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_PREVIOUS_LAST_LOGIN_TIME_FORMAT; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "PasswordPolicy", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_PWPOLICY_CANNOT_DETERMINE_IDLE_LOCKOUT_INTERVAL; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | |
| | | */ |
| | | public AttributeType getPasswordAttribute() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getPasswordAttribute"); |
| | | |
| | | return passwordAttribute; |
| | | } |
| | |
| | | */ |
| | | public boolean usesAuthPasswordSyntax() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "usesAuthPasswordSyntax"); |
| | | |
| | | return authPasswordSyntax; |
| | | } |
| | |
| | | */ |
| | | public CopyOnWriteArrayList<PasswordStorageScheme> getDefaultStorageSchemes() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getDefaultStorageSchemes"); |
| | | |
| | | return defaultStorageSchemes; |
| | | } |
| | |
| | | */ |
| | | public boolean isDefaultStorageScheme(String name) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isDefaultStorageScheme", |
| | | String.valueOf(name)); |
| | | |
| | | CopyOnWriteArrayList<PasswordStorageScheme> defaultSchemes = |
| | | getDefaultStorageSchemes(); |
| | |
| | | */ |
| | | public CopyOnWriteArraySet<String> getDeprecatedStorageSchemes() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getDeprecatedStorageSchemes"); |
| | | |
| | | return deprecatedStorageSchemes; |
| | | } |
| | |
| | | */ |
| | | public boolean isDeprecatedStorageScheme(String name) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isDeprecatedStorageScheme", |
| | | String.valueOf(name)); |
| | | |
| | | CopyOnWriteArraySet<String> deprecatedSchemes = |
| | | getDeprecatedStorageSchemes(); |
| | |
| | | */ |
| | | public ConcurrentHashMap<DN,PasswordValidator> getPasswordValidators() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getPasswordValidators"); |
| | | |
| | | return passwordValidators; |
| | | } |
| | |
| | | public ConcurrentHashMap<DN,AccountStatusNotificationHandler> |
| | | getAccountStatusNotificationHandlers() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getAccountStatusNotificationHandlers"); |
| | | |
| | | return notificationHandlers; |
| | | } |
| | |
| | | */ |
| | | public boolean allowUserPasswordChanges() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "allowUserPasswordChanges"); |
| | | |
| | | return allowUserPasswordChanges; |
| | | } |
| | |
| | | */ |
| | | public boolean requireCurrentPassword() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "requireCurrentPassword"); |
| | | |
| | | return requireCurrentPassword; |
| | | } |
| | |
| | | */ |
| | | public boolean forceChangeOnAdd() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "forceChangeOnAdd"); |
| | | |
| | | return forceChangeOnAdd; |
| | | } |
| | |
| | | */ |
| | | public boolean forceChangeOnReset() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "forceChangeOnReset"); |
| | | |
| | | return forceChangeOnReset; |
| | | } |
| | |
| | | */ |
| | | public boolean skipValidationForAdministrators() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "skipValidationForAdministrators"); |
| | | |
| | | return skipValidationForAdministrators; |
| | | } |
| | |
| | | */ |
| | | public DN getPasswordGeneratorDN() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getPasswordGeneratorDN"); |
| | | |
| | | return passwordGeneratorDN; |
| | | } |
| | |
| | | */ |
| | | public PasswordGenerator getPasswordGenerator() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getPasswordGenerator"); |
| | | |
| | | return passwordGenerator; |
| | | } |
| | |
| | | */ |
| | | public boolean requireSecureAuthentication() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "requireSecureAuthentication"); |
| | | |
| | | return requireSecureAuthentication; |
| | | } |
| | |
| | | */ |
| | | public boolean requireSecurePasswordChanges() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "requireSecurePasswordChanges"); |
| | | |
| | | return requireSecurePasswordChanges; |
| | | } |
| | |
| | | */ |
| | | public boolean allowMultiplePasswordValues() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "allowMultiplePasswordValues"); |
| | | |
| | | return allowMultiplePasswordValues; |
| | | } |
| | |
| | | */ |
| | | public boolean allowPreEncodedPasswords() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "allowPreEncodedPasswords"); |
| | | |
| | | return allowPreEncodedPasswords; |
| | | } |
| | |
| | | */ |
| | | public int getMinimumPasswordAge() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getMinimumPasswordAge"); |
| | | |
| | | if (minimumPasswordAge <= 0) |
| | | { |
| | |
| | | */ |
| | | public int getMaximumPasswordAge() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getMaximumPasswordAge"); |
| | | |
| | | if (maximumPasswordAge < 0) |
| | | { |
| | |
| | | */ |
| | | public int getMaximumPasswordResetAge() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getMaximumPasswordResetAge"); |
| | | |
| | | if (maximumPasswordResetAge < 0) |
| | | { |
| | |
| | | */ |
| | | public int getWarningInterval() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getWarningInterval"); |
| | | |
| | | if (warningInterval < 0) |
| | | { |
| | |
| | | */ |
| | | public boolean expirePasswordsWithoutWarning() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "expirePasswordsWithoutWarning"); |
| | | |
| | | return expirePasswordsWithoutWarning; |
| | | } |
| | |
| | | */ |
| | | public boolean allowExpiredPasswordChanges() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "allowExpiredPasswordChanges"); |
| | | |
| | | return allowExpiredPasswordChanges; |
| | | } |
| | |
| | | */ |
| | | public int getGraceLoginCount() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getGraceLoginCount"); |
| | | |
| | | if (graceLoginCount < 0) |
| | | { |
| | |
| | | */ |
| | | public int getLockoutFailureCount() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getLockoutFailureCount"); |
| | | |
| | | if (lockoutFailureCount < 0) |
| | | { |
| | |
| | | */ |
| | | public int getLockoutDuration() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getLockoutDuration"); |
| | | |
| | | if (lockoutDuration < 0) |
| | | { |
| | |
| | | */ |
| | | public int getLockoutFailureExpirationInterval() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getLockoutFailureExpirationInterval"); |
| | | |
| | | if (lockoutFailureExpirationInterval < 0) |
| | | { |
| | |
| | | */ |
| | | public long getRequireChangeByTime() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getRequireChangeTime"); |
| | | |
| | | if (requireChangeByTime < 0) |
| | | { |
| | |
| | | */ |
| | | public AttributeType getLastLoginTimeAttribute() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getLastLoginTimeAttribute"); |
| | | |
| | | return lastLoginTimeAttribute; |
| | | } |
| | |
| | | */ |
| | | public String getLastLoginTimeFormat() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getLastLoginTimeFormat"); |
| | | |
| | | return lastLoginTimeFormat; |
| | | } |
| | |
| | | */ |
| | | public CopyOnWriteArrayList<String> getPreviousLastLoginTimeFormats() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getPreviousLastLoginTimeFormats"); |
| | | |
| | | return previousLastLoginTimeFormats; |
| | | } |
| | |
| | | */ |
| | | public int getIdleLockoutInterval() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getIdleLockoutInterval"); |
| | | |
| | | if (idleLockoutInterval < 0) |
| | | { |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", "java.lang.StringBuilder"); |
| | | |
| | | |
| | | buffer.append("Password Attribute: "); |