From dfdd9440011d222f12e6e336ed6ab6e59ee2be4b Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Sun, 26 Aug 2007 20:35:25 +0000
Subject: [PATCH] Make a change to the account status notification handler API so that it is possible to provide additional properties along with the notification. This makes it possible to develop account status notification handlers that can act more intelligently and/or provide more useful information.
---
opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendWorkflowElement.java | 121 +++++++++++++++++++++++++++------------
1 files changed, 83 insertions(+), 38 deletions(-)
diff --git a/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendWorkflowElement.java b/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendWorkflowElement.java
index 0e7f481..0be89d4 100644
--- a/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendWorkflowElement.java
+++ b/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendWorkflowElement.java
@@ -94,6 +94,7 @@
import org.opends.server.schema.BooleanSyntax;
import org.opends.server.schema.UserPasswordSyntax;
import org.opends.server.types.AcceptRejectWarn;
+import org.opends.server.types.AccountStatusNotification;
import org.opends.server.types.AccountStatusNotificationType;
import org.opends.server.types.Attribute;
import org.opends.server.types.AttributeType;
@@ -2180,15 +2181,21 @@
Message message = INFO_MODIFY_PASSWORD_CHANGED.get();
pwPolicyState.generateAccountStatusNotification(
- AccountStatusNotificationType.PASSWORD_CHANGED, entryDN,
- message);
+ AccountStatusNotificationType.PASSWORD_CHANGED,
+ modifiedEntry, message,
+ AccountStatusNotification.createProperties(pwPolicyState,
+ false, -1, localOp.getCurrentPasswords(),
+ localOp.getNewPasswords()));
}
else
{
Message message = INFO_MODIFY_PASSWORD_RESET.get();
pwPolicyState.generateAccountStatusNotification(
- AccountStatusNotificationType.PASSWORD_RESET, entryDN,
- message);
+ AccountStatusNotificationType.PASSWORD_RESET, modifiedEntry,
+ message,
+ AccountStatusNotification.createProperties(pwPolicyState,
+ false, -1, localOp.getCurrentPasswords(),
+ localOp.getNewPasswords()));
}
}
@@ -2198,15 +2205,19 @@
{
Message message = INFO_MODIFY_ACCOUNT_ENABLED.get();
pwPolicyState.generateAccountStatusNotification(
- AccountStatusNotificationType.ACCOUNT_ENABLED, entryDN,
- message);
+ AccountStatusNotificationType.ACCOUNT_ENABLED,
+ modifiedEntry, message,
+ AccountStatusNotification.createProperties(pwPolicyState,
+ false, -1, null, null));
}
else
{
Message message = INFO_MODIFY_ACCOUNT_DISABLED.get();
pwPolicyState.generateAccountStatusNotification(
- AccountStatusNotificationType.ACCOUNT_DISABLED, entryDN,
- message);
+ AccountStatusNotificationType.ACCOUNT_DISABLED,
+ modifiedEntry, message,
+ AccountStatusNotification.createProperties(pwPolicyState,
+ false, -1, null, null));
}
}
@@ -2214,8 +2225,10 @@
{
Message message = INFO_MODIFY_ACCOUNT_UNLOCKED.get();
pwPolicyState.generateAccountStatusNotification(
- AccountStatusNotificationType.ACCOUNT_UNLOCKED, entryDN,
- message);
+ AccountStatusNotificationType.ACCOUNT_UNLOCKED, modifiedEntry,
+ message,
+ AccountStatusNotification.createProperties(pwPolicyState,
+ false, -1, null, null));
}
}
@@ -3384,8 +3397,10 @@
localOp.setAuthFailureReason(message);
pwPolicyState.generateAccountStatusNotification(
- AccountStatusNotificationType.ACCOUNT_EXPIRED, bindDN,
- message);
+ AccountStatusNotificationType.ACCOUNT_EXPIRED, userEntry,
+ message,
+ AccountStatusNotification.createProperties(pwPolicyState,
+ false, -1, null, null));
break bindProcessing;
}
@@ -3417,8 +3432,10 @@
localOp.setAuthFailureReason(message);
pwPolicyState.generateAccountStatusNotification(
- AccountStatusNotificationType.ACCOUNT_RESET_LOCKED, bindDN,
- message);
+ AccountStatusNotificationType.ACCOUNT_RESET_LOCKED,
+ userEntry, message,
+ AccountStatusNotification.createProperties(pwPolicyState,
+ false, -1, null, null));
break bindProcessing;
}
@@ -3436,8 +3453,10 @@
localOp.setAuthFailureReason(message);
pwPolicyState.generateAccountStatusNotification(
- AccountStatusNotificationType.ACCOUNT_IDLE_LOCKED, bindDN,
- message);
+ AccountStatusNotificationType.ACCOUNT_IDLE_LOCKED, userEntry,
+ message,
+ AccountStatusNotification.createProperties(pwPolicyState,
+ false, -1, null, null));
break bindProcessing;
}
@@ -3479,8 +3498,10 @@
localOp.setAuthFailureReason(message);
pwPolicyState.generateAccountStatusNotification(
- AccountStatusNotificationType.PASSWORD_EXPIRED, bindDN,
- message);
+ AccountStatusNotificationType.PASSWORD_EXPIRED,
+ userEntry, message,
+ AccountStatusNotification.createProperties(pwPolicyState,
+ false, -1, null, null));
break bindProcessing;
}
@@ -3494,8 +3515,10 @@
localOp.setAuthFailureReason(message);
pwPolicyState.generateAccountStatusNotification(
- AccountStatusNotificationType.PASSWORD_EXPIRED, bindDN,
- message);
+ AccountStatusNotificationType.PASSWORD_EXPIRED, userEntry,
+ message,
+ AccountStatusNotification.createProperties(pwPolicyState,
+ false, -1, null, null));
break bindProcessing;
}
@@ -3766,8 +3789,10 @@
timeToExpiration);
pwPolicyState.generateAccountStatusNotification(
- AccountStatusNotificationType.PASSWORD_EXPIRING, bindDN,
- message);
+ AccountStatusNotificationType.PASSWORD_EXPIRING, userEntry,
+ message,
+ AccountStatusNotification.createProperties(pwPolicyState,
+ false, numSeconds, null, null));
}
if (isGraceLogin)
@@ -3791,11 +3816,13 @@
{
AccountStatusNotificationType notificationType;
+ boolean tempLocked;
int lockoutDuration = pwPolicyState.getSecondsUntilUnlock();
if (lockoutDuration > -1)
{
notificationType = AccountStatusNotificationType.
ACCOUNT_TEMPORARILY_LOCKED;
+ tempLocked = true;
message = ERR_BIND_ACCOUNT_TEMPORARILY_LOCKED.get(
secondsToTimeString(lockoutDuration));
@@ -3804,13 +3831,15 @@
{
notificationType = AccountStatusNotificationType.
ACCOUNT_PERMANENTLY_LOCKED;
+ tempLocked = false;
message = ERR_BIND_ACCOUNT_PERMANENTLY_LOCKED.get();
}
pwPolicyState.generateAccountStatusNotification(
- notificationType, localOp.getUserEntryDN(),
- message);
+ notificationType, userEntry, message,
+ AccountStatusNotification.createProperties(pwPolicyState,
+ tempLocked, -1, null, null));
}
}
}
@@ -3990,8 +4019,10 @@
localOp.setAuthFailureReason(message);
pwPolicyState.generateAccountStatusNotification(
- AccountStatusNotificationType.ACCOUNT_EXPIRED, bindDN,
- message);
+ AccountStatusNotificationType.ACCOUNT_EXPIRED,
+ saslAuthUserEntry, message,
+ AccountStatusNotification.createProperties(pwPolicyState,
+ false, -1, null, null));
break bindProcessing;
}
@@ -4037,8 +4068,10 @@
localOp.setAuthFailureReason(message);
pwPolicyState.generateAccountStatusNotification(
- AccountStatusNotificationType.ACCOUNT_IDLE_LOCKED, bindDN,
- message);
+ AccountStatusNotificationType.ACCOUNT_IDLE_LOCKED,
+ saslAuthUserEntry, message,
+ AccountStatusNotification.createProperties(pwPolicyState,
+ false, -1, null, null));
break bindProcessing;
}
@@ -4060,8 +4093,10 @@
localOp.setAuthFailureReason(message);
pwPolicyState.generateAccountStatusNotification(
- AccountStatusNotificationType.ACCOUNT_RESET_LOCKED, bindDN,
- message);
+ AccountStatusNotificationType.ACCOUNT_RESET_LOCKED,
+ saslAuthUserEntry, message,
+ AccountStatusNotification.createProperties(pwPolicyState,
+ false, -1, null, null));
break bindProcessing;
}
@@ -4101,8 +4136,10 @@
localOp.setAuthFailureReason(message);
pwPolicyState.generateAccountStatusNotification(
- AccountStatusNotificationType.PASSWORD_EXPIRED, bindDN,
- message);
+ AccountStatusNotificationType.PASSWORD_EXPIRED,
+ saslAuthUserEntry, message,
+ AccountStatusNotification.createProperties(
+ pwPolicyState, false, -1, null, null));
break bindProcessing;
}
@@ -4116,8 +4153,10 @@
localOp.setAuthFailureReason(message);
pwPolicyState.generateAccountStatusNotification(
- AccountStatusNotificationType.PASSWORD_EXPIRED, bindDN,
- message);
+ AccountStatusNotificationType.PASSWORD_EXPIRED,
+ saslAuthUserEntry, message,
+ AccountStatusNotification.createProperties(pwPolicyState,
+ false, -1, null, null));
break bindProcessing;
}
@@ -4169,8 +4208,10 @@
timeToExpiration);
pwPolicyState.generateAccountStatusNotification(
- AccountStatusNotificationType.PASSWORD_EXPIRING, bindDN,
- message);
+ AccountStatusNotificationType.PASSWORD_EXPIRING,
+ saslAuthUserEntry, message,
+ AccountStatusNotification.createProperties(pwPolicyState,
+ false, numSeconds, null, null));
}
if (isGraceLogin)
@@ -4369,6 +4410,7 @@
if (pwPolicyState.lockedDueToFailures())
{
AccountStatusNotificationType notificationType;
+ boolean tempLocked;
Message message;
int lockoutDuration = pwPolicyState.getSecondsUntilUnlock();
@@ -4376,6 +4418,7 @@
{
notificationType = AccountStatusNotificationType.
ACCOUNT_TEMPORARILY_LOCKED;
+ tempLocked = true;
message = ERR_BIND_ACCOUNT_TEMPORARILY_LOCKED.get(
secondsToTimeString(lockoutDuration));
}
@@ -4383,12 +4426,14 @@
{
notificationType = AccountStatusNotificationType.
ACCOUNT_PERMANENTLY_LOCKED;
+ tempLocked = false;
message = ERR_BIND_ACCOUNT_PERMANENTLY_LOCKED.get();
}
pwPolicyState.generateAccountStatusNotification(
- notificationType, localOp.getUserEntryDN(),
- message);
+ notificationType, saslAuthUserEntry, message,
+ AccountStatusNotification.createProperties(
+ pwPolicyState, tempLocked, -1, null, null));
}
}
}
--
Gitblit v1.10.0