summaryrefslogtreecommitdiff
path: root/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/ManagedUser.java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/ManagedUser.java')
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/ManagedUser.java43
1 files changed, 8 insertions, 35 deletions
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/ManagedUser.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/ManagedUser.java
index 6f36ec7d11..db69445c41 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/ManagedUser.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/ManagedUser.java
@@ -40,7 +40,6 @@ import org.apache.qpid.server.model.PreferencesProvider;
import org.apache.qpid.server.model.State;
import org.apache.qpid.server.model.StateTransition;
import org.apache.qpid.server.model.User;
-import org.apache.qpid.server.security.access.Operation;
@ManagedObject( category = false, type = ManagedUser.MANAGED_USER_TYPE)
class ManagedUser extends AbstractConfiguredObject<ManagedUser> implements User<ManagedUser>
@@ -88,16 +87,6 @@ class ManagedUser extends AbstractConfiguredObject<ManagedUser> implements User<
}
}
- @Override
- protected void authoriseSetDesiredState(final State desiredState) throws AccessControlException
- {
- if(desiredState == State.DELETED)
- {
- _authenticationManager.getSecurityManager().authoriseUserOperation(Operation.DELETE, getName());
- }
-
- }
-
@StateTransition(currentState = {State.ACTIVE}, desiredState = State.DELETED)
private ListenableFuture<Void> doDelete()
{
@@ -106,31 +95,18 @@ class ManagedUser extends AbstractConfiguredObject<ManagedUser> implements User<
return Futures.immediateFuture(null);
}
-
@Override
- public void setAttributes(final Map<String, Object> attributes)
- throws IllegalStateException, AccessControlException, IllegalArgumentException
+ protected boolean changeAttribute(String name, Object expected, Object desired)
{
- runTask(new VoidTask()
+ if (User.PASSWORD.equals(name))
{
-
- @Override
- public void execute()
+ String storedPassword = _authenticationManager.createStoredPassword((String)desired);
+ if (!storedPassword.equals(getActualAttributes().get(User.PASSWORD)))
{
- Map<String, Object> modifiedAttributes = new HashMap<String, Object>(attributes);
- final String newPassword = (String) attributes.get(User.PASSWORD);
- if (attributes.containsKey(User.PASSWORD)
- && !newPassword.equals(getActualAttributes().get(User.PASSWORD)))
- {
- modifiedAttributes.put(User.PASSWORD,
- _authenticationManager.createStoredPassword(newPassword));
-
- }
- ManagedUser.super.setAttributes(modifiedAttributes);
+ desired = storedPassword;
}
- });
-
-
+ }
+ return super.changeAttribute(name, expected, desired);
}
@Override
@@ -142,10 +118,7 @@ class ManagedUser extends AbstractConfiguredObject<ManagedUser> implements User<
@Override
public void setPassword(final String password)
{
- _authenticationManager.getSecurityManager().authoriseUserOperation(Operation.UPDATE, getName());
-
- changeAttribute(User.PASSWORD, getAttribute(User.PASSWORD),
- _authenticationManager.createStoredPassword(password));
+ setAttributes(Collections.<String, Object>singletonMap(User.PASSWORD, password));
}