You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2017/06/02 11:04:41 UTC
[1/2] karaf git commit: [KARAF-5173] Provide an impl of
CallbackHandler
Repository: karaf
Updated Branches:
refs/heads/master 5792ea985 -> 07a6b9d1a
[KARAF-5173] Provide an impl of CallbackHandler
A number of tests use an anonymous class implementing CallbackHandler
with the same pattern, username and password. This patch introduces
NamePasswordCallbackHandler and uses it where appropriate.
Signed-off-by: Stephen Kitt <sk...@redhat.com>
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/02f382f4
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/02f382f4
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/02f382f4
Branch: refs/heads/master
Commit: 02f382f45555a70bf6f159cb1ba18af62754c6cf
Parents: 5792ea9
Author: Stephen Kitt <sk...@redhat.com>
Authored: Wed May 31 23:57:42 2017 -0700
Committer: Jean-Baptiste Onofré <jb...@apache.org>
Committed: Fri Jun 2 10:50:33 2017 +0200
----------------------------------------------------------------------
.../modules/NamePasswordCallbackHandler.java | 47 +++++++
.../jaas/modules/jdbc/JdbcLoginModuleTest.java | 26 +---
.../jaas/modules/krb5/Krb5LoginModuleTest.java | 45 +------
.../modules/ldap/GSSAPILdapLoginModuleTest.java | 71 +---------
.../karaf/jaas/modules/ldap/LdapCacheTest.java | 17 +--
.../modules/ldap/LdapCaseInsensitiveDNTest.java | 26 +---
.../jaas/modules/ldap/LdapLoginModuleTest.java | 133 ++-----------------
.../properties/PropertiesLoginModuleTest.java | 57 +-------
8 files changed, 80 insertions(+), 342 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/02f382f4/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/NamePasswordCallbackHandler.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/NamePasswordCallbackHandler.java b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/NamePasswordCallbackHandler.java
new file mode 100644
index 0000000..2ab2098
--- /dev/null
+++ b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/NamePasswordCallbackHandler.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * under the License.
+ */
+package org.apache.karaf.jaas.modules;
+
+import java.io.IOException;
+import java.util.Objects;
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.NameCallback;
+import javax.security.auth.callback.PasswordCallback;
+import javax.security.auth.callback.UnsupportedCallbackException;
+
+/**
+ * {@link CallbackHandler} implementation handling a name and password.
+ */
+public class NamePasswordCallbackHandler implements CallbackHandler {
+ private final String name;
+ private final String password;
+
+ public NamePasswordCallbackHandler(String name, String password) {
+ this.name = Objects.requireNonNull(name);
+ this.password = Objects.requireNonNull(password);
+ }
+
+ @Override
+ public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
+ for (Callback cb : callbacks) {
+ if (cb instanceof NameCallback) {
+ ((NameCallback) cb).setName(name);
+ } else if (cb instanceof PasswordCallback) {
+ ((PasswordCallback) cb).setPassword(password.toCharArray());
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/karaf/blob/02f382f4/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/jdbc/JdbcLoginModuleTest.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/jdbc/JdbcLoginModuleTest.java b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/jdbc/JdbcLoginModuleTest.java
index 7fe9a7f..cd960ed 100644
--- a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/jdbc/JdbcLoginModuleTest.java
+++ b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/jdbc/JdbcLoginModuleTest.java
@@ -15,7 +15,6 @@
*/
package org.apache.karaf.jaas.modules.jdbc;
-import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
@@ -23,17 +22,13 @@ import java.util.HashMap;
import java.util.Map;
import javax.security.auth.Subject;
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.NameCallback;
-import javax.security.auth.callback.PasswordCallback;
-import javax.security.auth.callback.UnsupportedCallbackException;
import javax.sql.DataSource;
import org.apache.derby.jdbc.EmbeddedDataSource40;
import org.apache.karaf.jaas.boot.principal.GroupPrincipal;
import org.apache.karaf.jaas.boot.principal.RolePrincipal;
import org.apache.karaf.jaas.boot.principal.UserPrincipal;
+import org.apache.karaf.jaas.modules.NamePasswordCallbackHandler;
import org.easymock.EasyMock;
import org.junit.Before;
import org.junit.Test;
@@ -115,7 +110,7 @@ public class JdbcLoginModuleTest {
JDBCLoginModule module = new JDBCLoginModule();
Subject subject = new Subject();
- module.initialize(subject, getCallbackHandler("abc", "xyz"), null, options);
+ module.initialize(subject, new NamePasswordCallbackHandler("abc", "xyz"), null, options);
module.login();
module.commit();
@@ -137,7 +132,7 @@ public class JdbcLoginModuleTest {
JDBCLoginModule module = new JDBCLoginModule();
Subject subject = new Subject();
- module.initialize(subject, getCallbackHandler("abc", "xyz"), null, options);
+ module.initialize(subject, new NamePasswordCallbackHandler("abc", "xyz"), null, options);
module.login();
module.commit();
@@ -218,19 +213,4 @@ public class JdbcLoginModuleTest {
assertTrue(engine.listRoles(new GroupPrincipal("group1")).isEmpty());
assertTrue(engine.listGroups(new UserPrincipal("abc")).isEmpty());
}
-
- private CallbackHandler getCallbackHandler(final String user, final String password) {
- return new CallbackHandler() {
- @Override
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName(user);
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword(password.toCharArray());
- }
- }
- }
- };
- }
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/02f382f4/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/krb5/Krb5LoginModuleTest.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/krb5/Krb5LoginModuleTest.java b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/krb5/Krb5LoginModuleTest.java
index 96dd1cc..e6caf7b 100644
--- a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/krb5/Krb5LoginModuleTest.java
+++ b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/krb5/Krb5LoginModuleTest.java
@@ -52,6 +52,7 @@ import org.apache.directory.shared.kerberos.KerberosUtils;
import org.apache.directory.shared.kerberos.codec.types.EncryptionType;
import org.apache.directory.shared.kerberos.components.EncryptionKey;
import org.apache.directory.shared.kerberos.crypto.checksum.ChecksumType;
+import org.apache.karaf.jaas.modules.NamePasswordCallbackHandler;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
@@ -59,11 +60,6 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import javax.security.auth.Subject;
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.NameCallback;
-import javax.security.auth.callback.PasswordCallback;
-import javax.security.auth.callback.UnsupportedCallbackException;
import javax.security.auth.kerberos.KerberosPrincipal;
import javax.security.auth.kerberos.KerberosTicket;
import javax.security.auth.login.Configuration;
@@ -233,21 +229,10 @@ public class Krb5LoginModuleTest extends AbstractKerberosITest {
@Test
public void testLoginSuccess() throws Exception {
- CallbackHandler cb = new CallbackHandler() {
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("hnelson");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("secret".toCharArray());
- }
- }
- }
- };
Subject subject = new Subject();
Krb5LoginModule module = new Krb5LoginModule();
- module.initialize(subject, cb, null, new HashMap<>());
+ module.initialize(subject, new NamePasswordCallbackHandler("hnelson", "secret"), null, new HashMap<>());
assertEquals("Precondition", 0, subject.getPrincipals().size());
@@ -283,21 +268,10 @@ public class Krb5LoginModuleTest extends AbstractKerberosITest {
@Test(expected = LoginException.class)
public void testLoginUsernameFailure() throws Exception {
- CallbackHandler cb = new CallbackHandler() {
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("hnelson0");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("secret".toCharArray());
- }
- }
- }
- };
Subject subject = new Subject();
Krb5LoginModule module = new Krb5LoginModule();
- module.initialize(subject, cb, null, new HashMap<>());
+ module.initialize(subject, new NamePasswordCallbackHandler("hnelson0", "secret"), null, new HashMap<>());
assertEquals("Precondition", 0, subject.getPrincipals().size());
@@ -307,21 +281,10 @@ public class Krb5LoginModuleTest extends AbstractKerberosITest {
@Test(expected = LoginException.class)
public void testLoginPasswordFailure() throws Exception {
- CallbackHandler cb = new CallbackHandler() {
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("hnelson");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("secret0".toCharArray());
- }
- }
- }
- };
Subject subject = new Subject();
Krb5LoginModule module = new Krb5LoginModule();
- module.initialize(subject, cb, null, new HashMap<>());
+ module.initialize(subject, new NamePasswordCallbackHandler("hnelson", "secret0"), null, new HashMap<>());
assertEquals("Precondition", 0, subject.getPrincipals().size());
http://git-wip-us.apache.org/repos/asf/karaf/blob/02f382f4/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/GSSAPILdapLoginModuleTest.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/GSSAPILdapLoginModuleTest.java b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/GSSAPILdapLoginModuleTest.java
index 9e34749..63382d7 100644
--- a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/GSSAPILdapLoginModuleTest.java
+++ b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/GSSAPILdapLoginModuleTest.java
@@ -47,17 +47,13 @@ import org.apache.directory.shared.kerberos.crypto.checksum.ChecksumType;
import org.apache.felix.utils.properties.Properties;
import org.apache.karaf.jaas.boot.principal.RolePrincipal;
import org.apache.karaf.jaas.boot.principal.UserPrincipal;
+import org.apache.karaf.jaas.modules.NamePasswordCallbackHandler;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import javax.security.auth.Subject;
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.NameCallback;
-import javax.security.auth.callback.PasswordCallback;
-import javax.security.auth.callback.UnsupportedCallbackException;
import javax.security.auth.kerberos.KerberosPrincipal;
import javax.security.auth.kerberos.KerberosTicket;
import javax.security.auth.login.LoginException;
@@ -199,19 +195,8 @@ public class GSSAPILdapLoginModuleTest extends AbstractKerberosITest {
Properties options = ldapLoginModuleOptions();
GSSAPILdapLoginModule module = new GSSAPILdapLoginModule();
- CallbackHandler cb = new CallbackHandler() {
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("hnelson");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("secret".toCharArray());
- }
- }
- }
- };
Subject subject = new Subject();
- module.initialize(subject, cb, null, options);
+ module.initialize(subject, new NamePasswordCallbackHandler("hnelson", "secret"), null, options);
assertEquals("Precondition", 0, subject.getPrincipals().size());
assertTrue(module.login());
@@ -260,19 +245,8 @@ public class GSSAPILdapLoginModuleTest extends AbstractKerberosITest {
Properties options = ldapLoginModuleOptions();
GSSAPILdapLoginModule module = new GSSAPILdapLoginModule();
- CallbackHandler cb = new CallbackHandler() {
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("hnelson0");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("secret".toCharArray());
- }
- }
- }
- };
Subject subject = new Subject();
- module.initialize(subject, cb, null, options);
+ module.initialize(subject, new NamePasswordCallbackHandler("hnelson0", "secret"), null, options);
assertEquals("Precondition", 0, subject.getPrincipals().size());
assertTrue(module.login()); // should throw LoginException
@@ -284,19 +258,8 @@ public class GSSAPILdapLoginModuleTest extends AbstractKerberosITest {
Properties options = ldapLoginModuleOptions();
GSSAPILdapLoginModule module = new GSSAPILdapLoginModule();
- CallbackHandler cb = new CallbackHandler() {
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("hnelson");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("secret0".toCharArray());
- }
- }
- }
- };
Subject subject = new Subject();
- module.initialize(subject, cb, null, options);
+ module.initialize(subject, new NamePasswordCallbackHandler("hnelson", "secret0"), null, options);
assertEquals("Precondition", 0, subject.getPrincipals().size());
assertTrue(module.login());
@@ -308,19 +271,8 @@ public class GSSAPILdapLoginModuleTest extends AbstractKerberosITest {
Properties options = ldapLoginModuleOptions();
GSSAPILdapLoginModule module = new GSSAPILdapLoginModule();
- CallbackHandler cb = new CallbackHandler() {
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("test");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("test".toCharArray());
- }
- }
- }
- };
Subject subject = new Subject();
- module.initialize(subject, cb, null, options);
+ module.initialize(subject, new NamePasswordCallbackHandler("test", "test"), null, options);
assertEquals("Precondition", 0, subject.getPrincipals().size());
assertFalse(module.login());
@@ -333,19 +285,8 @@ public class GSSAPILdapLoginModuleTest extends AbstractKerberosITest {
options.remove(GSSAPILdapLoginModule.REALM_PROPERTY);
GSSAPILdapLoginModule module = new GSSAPILdapLoginModule();
- CallbackHandler cb = new CallbackHandler() {
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("hnelson0");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("secret".toCharArray());
- }
- }
- }
- };
Subject subject = new Subject();
- module.initialize(subject, cb, null, options);
+ module.initialize(subject, new NamePasswordCallbackHandler("hnelson0", "secret"), null, options);
assertEquals("Precondition", 0, subject.getPrincipals().size());
assertTrue(module.login()); // should throw LoginException
http://git-wip-us.apache.org/repos/asf/karaf/blob/02f382f4/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCacheTest.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCacheTest.java b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCacheTest.java
index c4184d5..d998cf6 100644
--- a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCacheTest.java
+++ b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCacheTest.java
@@ -21,11 +21,7 @@ import javax.naming.directory.BasicAttribute;
import javax.naming.directory.BasicAttributes;
import javax.naming.directory.DirContext;
import javax.security.auth.Subject;
-import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.NameCallback;
-import javax.security.auth.callback.PasswordCallback;
-import javax.security.auth.callback.UnsupportedCallbackException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
@@ -43,6 +39,7 @@ import org.apache.directory.server.core.integ.FrameworkRunner;
import org.apache.felix.utils.properties.Properties;
import org.apache.karaf.jaas.boot.principal.RolePrincipal;
import org.apache.karaf.jaas.boot.principal.UserPrincipal;
+import org.apache.karaf.jaas.modules.NamePasswordCallbackHandler;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -95,17 +92,7 @@ public class LdapCacheTest extends AbstractLdapTestUnit {
public void testAdminLogin() throws Exception {
Properties options = ldapLoginModuleOptions();
LDAPLoginModule module = new LDAPLoginModule();
- CallbackHandler cb = new CallbackHandler() {
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("admin");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("admin123".toCharArray());
- }
- }
- }
- };
+ CallbackHandler cb = new NamePasswordCallbackHandler("admin", "admin123");
Subject subject = new Subject();
module.initialize(subject, cb, null, options);
http://git-wip-us.apache.org/repos/asf/karaf/blob/02f382f4/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCaseInsensitiveDNTest.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCaseInsensitiveDNTest.java b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCaseInsensitiveDNTest.java
index cf560c5..ac5ba0e 100644
--- a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCaseInsensitiveDNTest.java
+++ b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCaseInsensitiveDNTest.java
@@ -25,19 +25,8 @@ import java.io.IOException;
import java.security.Principal;
import javax.security.auth.Subject;
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.NameCallback;
-import javax.security.auth.callback.PasswordCallback;
-import javax.security.auth.callback.UnsupportedCallbackException;
import org.apache.commons.io.IOUtils;
-import org.apache.directory.api.ldap.model.constants.SchemaConstants;
-import org.apache.directory.api.ldap.model.message.ModifyRequest;
-import org.apache.directory.api.ldap.model.message.ModifyRequestImpl;
-import org.apache.directory.api.ldap.model.name.Dn;
-import org.apache.directory.ldap.client.api.LdapConnection;
-import org.apache.directory.ldap.client.api.LdapNetworkConnection;
import org.apache.directory.server.core.integ.FrameworkRunner;
import org.apache.directory.server.annotations.CreateLdapServer;
import org.apache.directory.server.annotations.CreateTransport;
@@ -47,7 +36,7 @@ import org.apache.directory.server.core.annotations.CreatePartition;
import org.apache.felix.utils.properties.Properties;
import org.apache.karaf.jaas.boot.principal.RolePrincipal;
import org.apache.karaf.jaas.boot.principal.UserPrincipal;
-import org.apache.karaf.jaas.modules.ldap.LdapLoginModuleTest;
+import org.apache.karaf.jaas.modules.NamePasswordCallbackHandler;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -92,19 +81,8 @@ public class LdapCaseInsensitiveDNTest extends LdapLoginModuleTest {
public void testCaseInsensitiveDN() throws Exception {
Properties options = ldapLoginModuleOptions();
LDAPLoginModule module = new LDAPLoginModule();
- CallbackHandler cb = new CallbackHandler() {
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("admin");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("admin123".toCharArray());
- }
- }
- }
- };
Subject subject = new Subject();
- module.initialize(subject, cb, null, options);
+ module.initialize(subject, new NamePasswordCallbackHandler("admin", "admin123"), null, options);
assertEquals("Precondition", 0, subject.getPrincipals().size());
assertTrue(module.login());
http://git-wip-us.apache.org/repos/asf/karaf/blob/02f382f4/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleTest.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleTest.java b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleTest.java
index f82934f..a514283 100644
--- a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleTest.java
+++ b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleTest.java
@@ -26,13 +26,13 @@ import org.apache.directory.server.core.annotations.CreatePartition;
import org.apache.felix.utils.properties.Properties;
import org.apache.karaf.jaas.boot.principal.RolePrincipal;
import org.apache.karaf.jaas.boot.principal.UserPrincipal;
+import org.apache.karaf.jaas.modules.NamePasswordCallbackHandler;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import javax.security.auth.Subject;
-import javax.security.auth.callback.*;
import javax.security.auth.login.LoginException;
import java.io.File;
@@ -93,19 +93,8 @@ public class LdapLoginModuleTest extends AbstractLdapTestUnit {
public void testAdminLogin() throws Exception {
Properties options = ldapLoginModuleOptions();
LDAPLoginModule module = new LDAPLoginModule();
- CallbackHandler cb = new CallbackHandler() {
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("admin");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("admin123".toCharArray());
- }
- }
- }
- };
Subject subject = new Subject();
- module.initialize(subject, cb, null, options);
+ module.initialize(subject, new NamePasswordCallbackHandler("admin", "admin123"), null, options);
assertEquals("Precondition", 0, subject.getPrincipals().size());
assertTrue(module.login());
@@ -144,19 +133,8 @@ public class LdapLoginModuleTest extends AbstractLdapTestUnit {
public void testNonAdminLogin() throws Exception {
Properties options = ldapLoginModuleOptions();
LDAPLoginModule module = new LDAPLoginModule();
- CallbackHandler cb = new CallbackHandler() {
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("cheese");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("foodie".toCharArray());
- }
- }
- }
- };
Subject subject = new Subject();
- module.initialize(subject, cb, null, options);
+ module.initialize(subject, new NamePasswordCallbackHandler("cheese", "foodie"), null, options);
assertEquals("Precondition", 0, subject.getPrincipals().size());
assertTrue(module.login());
@@ -188,19 +166,8 @@ public class LdapLoginModuleTest extends AbstractLdapTestUnit {
Properties options = ldapLoginModuleOptions();
options.put("usernames.trim", "true");
LDAPLoginModule module = new LDAPLoginModule();
- CallbackHandler cb = new CallbackHandler() {
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("cheese ");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("foodie".toCharArray());
- }
- }
- }
- };
Subject subject = new Subject();
- module.initialize(subject, cb, null, options);
+ module.initialize(subject, new NamePasswordCallbackHandler("cheese ", "foodie"), null, options);
assertEquals("Precondition", 0, subject.getPrincipals().size());
assertTrue(module.login());
@@ -231,19 +198,8 @@ public class LdapLoginModuleTest extends AbstractLdapTestUnit {
public void testBadPassword() throws Exception {
Properties options = ldapLoginModuleOptions();
LDAPLoginModule module = new LDAPLoginModule();
- CallbackHandler cb = new CallbackHandler() {
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("admin");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("blahblah".toCharArray());
- }
- }
- }
- };
Subject subject = new Subject();
- module.initialize(subject, cb, null, options);
+ module.initialize(subject, new NamePasswordCallbackHandler("admin", "blahblah"), null, options);
assertEquals("Precondition", 0, subject.getPrincipals().size());
try {
@@ -258,19 +214,8 @@ public class LdapLoginModuleTest extends AbstractLdapTestUnit {
public void testUserNotFound() throws Exception {
Properties options = ldapLoginModuleOptions();
LDAPLoginModule module = new LDAPLoginModule();
- CallbackHandler cb = new CallbackHandler() {
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("imnothere");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("admin123".toCharArray());
- }
- }
- }
- };
Subject subject = new Subject();
- module.initialize(subject, cb, null, options);
+ module.initialize(subject, new NamePasswordCallbackHandler("imnothere", "admin123"), null, options);
assertEquals("Precondition", 0, subject.getPrincipals().size());
assertFalse(module.login());
@@ -280,19 +225,8 @@ public class LdapLoginModuleTest extends AbstractLdapTestUnit {
public void testEmptyPassword() throws Exception {
Properties options = ldapLoginModuleOptions();
LDAPLoginModule module = new LDAPLoginModule();
- CallbackHandler cb = new CallbackHandler() {
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("imnothere");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("".toCharArray());
- }
- }
- }
- };
Subject subject = new Subject();
- module.initialize(subject, cb, null, options);
+ module.initialize(subject, new NamePasswordCallbackHandler("imnothere", ""), null, options);
assertEquals("Precondition", 0, subject.getPrincipals().size());
try {
@@ -308,20 +242,8 @@ public class LdapLoginModuleTest extends AbstractLdapTestUnit {
Properties options = ldapLoginModuleOptions();
options.put(LDAPOptions.ROLE_MAPPING, "admin=karaf");
LDAPLoginModule module = new LDAPLoginModule();
- CallbackHandler cb = new CallbackHandler() {
- @Override
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("admin");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("admin123".toCharArray());
- }
- }
- }
- };
Subject subject = new Subject();
- module.initialize(subject, cb, null, options);
+ module.initialize(subject, new NamePasswordCallbackHandler("admin", "admin123"), null, options);
assertEquals("Precondition", 0, subject.getPrincipals().size());
assertTrue(module.login());
@@ -352,19 +274,8 @@ public class LdapLoginModuleTest extends AbstractLdapTestUnit {
Properties options = ldapLoginModuleOptions();
options.put(LDAPOptions.ROLE_MAPPING, "admin=karaf,test;admin=another");
LDAPLoginModule module = new LDAPLoginModule();
- CallbackHandler cb = new CallbackHandler() {
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("admin");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("admin123".toCharArray());
- }
- }
- }
- };
Subject subject = new Subject();
- module.initialize(subject, cb, null, options);
+ module.initialize(subject, new NamePasswordCallbackHandler("admin", "admin123"), null, options);
assertEquals("Precondition", 0, subject.getPrincipals().size());
assertTrue(module.login());
@@ -398,19 +309,8 @@ public class LdapLoginModuleTest extends AbstractLdapTestUnit {
Properties options = ldapLoginModuleOptions();
options.put(LDAPOptions.ROLE_MAPPING, "admin = karaf, test; admin = another");
LDAPLoginModule module = new LDAPLoginModule();
- CallbackHandler cb = new CallbackHandler() {
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("admin");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("admin123".toCharArray());
- }
- }
- }
- };
Subject subject = new Subject();
- module.initialize(subject, cb, null, options);
+ module.initialize(subject, new NamePasswordCallbackHandler("admin", "admin123"), null, options);
assertEquals("Precondition", 0, subject.getPrincipals().size());
assertTrue(module.login());
@@ -448,19 +348,8 @@ public class LdapLoginModuleTest extends AbstractLdapTestUnit {
options.put(LDAPOptions.ROLE_FILTER, "(member=%fqdn)");
options.put(LDAPOptions.ROLE_NAME_ATTRIBUTE, "description");
LDAPLoginModule module = new LDAPLoginModule();
- CallbackHandler cb = new CallbackHandler() {
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("admin");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("admin123".toCharArray());
- }
- }
- }
- };
Subject subject = new Subject();
- module.initialize(subject, cb, null, options);
+ module.initialize(subject, new NamePasswordCallbackHandler("admin", "admin123"), null, options);
assertEquals("Precondition", 0, subject.getPrincipals().size());
assertTrue(module.login());
http://git-wip-us.apache.org/repos/asf/karaf/blob/02f382f4/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/properties/PropertiesLoginModuleTest.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/properties/PropertiesLoginModuleTest.java b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/properties/PropertiesLoginModuleTest.java
index 5e75272..5d69d20 100644
--- a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/properties/PropertiesLoginModuleTest.java
+++ b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/properties/PropertiesLoginModuleTest.java
@@ -31,6 +31,7 @@ import org.apache.felix.utils.properties.Properties;
import org.apache.karaf.jaas.boot.principal.GroupPrincipal;
import org.apache.karaf.jaas.boot.principal.RolePrincipal;
import org.apache.karaf.jaas.boot.principal.UserPrincipal;
+import org.apache.karaf.jaas.modules.NamePasswordCallbackHandler;
import org.junit.Assert;
import org.junit.Test;
@@ -49,20 +50,8 @@ public class PropertiesLoginModuleTest {
PropertiesLoginModule module = new PropertiesLoginModule();
Map<String, String> options = new HashMap<>();
options.put(PropertiesLoginModule.USER_FILE, f.getAbsolutePath());
- CallbackHandler cb = new CallbackHandler() {
- @Override
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("abc");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("xyz".toCharArray());
- }
- }
- }
- };
Subject subject = new Subject();
- module.initialize(subject, cb, null, options);
+ module.initialize(subject, new NamePasswordCallbackHandler("abc", "xyz"), null, options);
Assert.assertEquals("Precondition", 0, subject.getPrincipals().size());
Assert.assertTrue(module.login());
@@ -105,19 +94,7 @@ public class PropertiesLoginModuleTest {
PropertiesLoginModule module = new PropertiesLoginModule();
Map<String, String> options = new HashMap<>();
options.put(PropertiesLoginModule.USER_FILE, f.getAbsolutePath());
- CallbackHandler cb = new CallbackHandler() {
- @Override
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("abc");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("abc".toCharArray());
- }
- }
- }
- };
- module.initialize(new Subject(), cb, null, options);
+ module.initialize(new Subject(), new NamePasswordCallbackHandler("abc", "abc"), null, options);
try {
module.login();
Assert.fail("The login should have failed as the passwords didn't match");
@@ -146,20 +123,8 @@ public class PropertiesLoginModuleTest {
PropertiesLoginModule module = new PropertiesLoginModule();
Map<String, String> options = new HashMap<>();
options.put(PropertiesLoginModule.USER_FILE, f.getAbsolutePath());
- CallbackHandler cb = new CallbackHandler() {
- @Override
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName("pqr");
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("abc".toCharArray());
- }
- }
- }
- };
Subject subject = new Subject();
- module.initialize(subject, cb, null, options);
+ module.initialize(subject, new NamePasswordCallbackHandler("pqr", "abc"), null, options);
Assert.assertEquals("Precondition", 0, subject.getPrincipals().size());
Assert.assertTrue(module.login());
@@ -214,19 +179,7 @@ public class PropertiesLoginModuleTest {
PropertiesLoginModule module = new PropertiesLoginModule();
Map<String, String> options = new HashMap<>();
options.put(PropertiesLoginModule.USER_FILE, f.getAbsolutePath());
- CallbackHandler cb = new CallbackHandler() {
- @Override
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
- for (Callback cb : callbacks) {
- if (cb instanceof NameCallback) {
- ((NameCallback) cb).setName(name);
- } else if (cb instanceof PasswordCallback) {
- ((PasswordCallback) cb).setPassword("group".toCharArray());
- }
- }
- }
- };
- module.initialize(new Subject(), cb, null, options);
+ module.initialize(new Subject(), new NamePasswordCallbackHandler(name, "group"), null, options);
try {
module.login();
Assert.fail("The login should have failed as you cannot log in under a group name directly");
[2/2] karaf git commit: [KARAF-5173] This closes #310
Posted by jb...@apache.org.
[KARAF-5173] This closes #310
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/07a6b9d1
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/07a6b9d1
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/07a6b9d1
Branch: refs/heads/master
Commit: 07a6b9d1a7038278488d2c00856ac636dcfe2690
Parents: 5792ea9 02f382f
Author: Jean-Baptiste Onofré <jb...@apache.org>
Authored: Fri Jun 2 13:04:36 2017 +0200
Committer: Jean-Baptiste Onofré <jb...@apache.org>
Committed: Fri Jun 2 13:04:36 2017 +0200
----------------------------------------------------------------------
.../modules/NamePasswordCallbackHandler.java | 47 +++++++
.../jaas/modules/jdbc/JdbcLoginModuleTest.java | 26 +---
.../jaas/modules/krb5/Krb5LoginModuleTest.java | 45 +------
.../modules/ldap/GSSAPILdapLoginModuleTest.java | 71 +---------
.../karaf/jaas/modules/ldap/LdapCacheTest.java | 17 +--
.../modules/ldap/LdapCaseInsensitiveDNTest.java | 26 +---
.../jaas/modules/ldap/LdapLoginModuleTest.java | 133 ++-----------------
.../properties/PropertiesLoginModuleTest.java | 57 +-------
8 files changed, 80 insertions(+), 342 deletions(-)
----------------------------------------------------------------------