diff options
Diffstat (limited to 'plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util')
2 files changed, 16 insertions, 18 deletions
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/security/UserManager.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/security/UserManager.java index d77d7bb430..1237ee25ab 100644 --- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/security/UserManager.java +++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/security/UserManager.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008-2012 Eike Stepper (Berlin, Germany) and others. + * Copyright (c) 2008-2016 Eike Stepper (Berlin, Germany) and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -13,8 +13,8 @@ package org.eclipse.net4j.util.security; import org.eclipse.net4j.util.ReflectUtil.ExcludeFromDump; import org.eclipse.net4j.util.io.IORuntimeException; import org.eclipse.net4j.util.lifecycle.Lifecycle; +import org.eclipse.net4j.util.lifecycle.LifecycleUtil; -import java.util.Arrays; import java.util.HashMap; import java.util.Map; @@ -23,6 +23,8 @@ import java.util.Map; */ public class UserManager extends Lifecycle implements IUserManager, IAuthenticator { + private UserManagerAuthenticator userManagerAuthenticator = new UserManagerAuthenticator(this); + @ExcludeFromDump protected transient Map<String, char[]> users = new HashMap<String, char[]>(); @@ -57,21 +59,8 @@ public class UserManager extends Lifecycle implements IUserManager, IAuthenticat */ public void authenticate(String userID, char[] password) { - char[] userPassword; - synchronized (this) - { - userPassword = users.get(userID); - } - - if (userPassword == null) - { - throw new SecurityException("No such user: " + userID); //$NON-NLS-1$ - } - - if (!Arrays.equals(userPassword, password)) - { - throw new SecurityException("Wrong password for user: " + userID); //$NON-NLS-1$ - } + // delegate to UserManagerAuthenticator + userManagerAuthenticator.authenticate(userID, password); } /** @@ -108,6 +97,7 @@ public class UserManager extends Lifecycle implements IUserManager, IAuthenticat protected void doActivate() throws Exception { super.doActivate(); + LifecycleUtil.activate(userManagerAuthenticator); load(users); } diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/security/UserManagerAuthenticator.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/security/UserManagerAuthenticator.java index 38f64999d2..b91160096d 100644 --- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/security/UserManagerAuthenticator.java +++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/security/UserManagerAuthenticator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2015 Eike Stepper (Berlin, Germany) and others. + * Copyright (c) 2012, 2016 Eike Stepper (Berlin, Germany) and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -43,6 +43,14 @@ public class UserManagerAuthenticator extends Lifecycle implements IAuthenticato { } + /** + * @since 3.7 + */ + public UserManagerAuthenticator(IUserManager userManager) + { + setUserManager(userManager); + } + public String getEncryptionAlgorithmName() { return encryptionAlgorithmName; |