From ca49cdf4cf7696ff56ad797660d730632c8a7524 Mon Sep 17 00:00:00 2001 From: Jyoti Wadhwani Date: Tue, 7 Aug 2018 10:56:22 -0700 Subject: [PATCH] add dummy login module --- .../app/security/DummyLoginModule.java | 30 +++++++++++++++++++ wherehows-frontend/conf/jaas.conf | 7 ++++- .../test/DummyLoginModuleTest.java | 29 ++++++++++++++++++ 3 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 wherehows-frontend/app/security/DummyLoginModule.java create mode 100644 wherehows-frontend/test/DummyLoginModuleTest.java diff --git a/wherehows-frontend/app/security/DummyLoginModule.java b/wherehows-frontend/app/security/DummyLoginModule.java new file mode 100644 index 0000000000..548cadc003 --- /dev/null +++ b/wherehows-frontend/app/security/DummyLoginModule.java @@ -0,0 +1,30 @@ +package security; + +import javax.security.auth.Subject; +import javax.security.auth.callback.CallbackHandler; +import javax.security.auth.login.LoginException; +import javax.security.auth.spi.LoginModule; +import java.util.Map; + +public class DummyLoginModule implements LoginModule { + + public void initialize(final Subject subject, final CallbackHandler callbackHandler, final Map sharedState, final Map options) { + } + + public boolean login() throws LoginException { + return true; + } + + public boolean commit() throws LoginException { + return true; + } + + public boolean abort() throws LoginException { + return true; + } + + public boolean logout() throws LoginException { + return true; + } + +} \ No newline at end of file diff --git a/wherehows-frontend/conf/jaas.conf b/wherehows-frontend/conf/jaas.conf index 84993ab763..429a4e929e 100644 --- a/wherehows-frontend/conf/jaas.conf +++ b/wherehows-frontend/conf/jaas.conf @@ -1,5 +1,10 @@ -// This is just a sample JAAS config that uses LDAP for authentication. +// This is a sample JAAS config that uses the following login modules +// DummyLoginModule -- this module can work with a username (that is in user table) and any password +// LdapLoginModule -- this module uses LDAP for authentication + WHZ-Authentication { + security.DummyLoginModule sufficient; + com.sun.security.auth.module.LdapLoginModule sufficient userProvider="ldap://ldap-svr/ou=people,dc=example,dc=com" authIdentity="{USERNAME}" diff --git a/wherehows-frontend/test/DummyLoginModuleTest.java b/wherehows-frontend/test/DummyLoginModuleTest.java new file mode 100644 index 0000000000..bc6ab00749 --- /dev/null +++ b/wherehows-frontend/test/DummyLoginModuleTest.java @@ -0,0 +1,29 @@ +import com.sun.security.auth.callback.TextCallbackHandler; +import java.util.HashMap; +import javax.security.auth.login.LoginException; +import javax.security.auth.Subject; +import org.junit.Test; +import security.DummyLoginModule; + +import static org.junit.Assert.*; + + +public class DummyLoginModuleTest { + + @Test + public void testAuthenticate() { + DummyLoginModule lmodule = new DummyLoginModule(); + lmodule.initialize(new Subject(), new TextCallbackHandler(), null, new HashMap()); + LoginException ex = null; + try { + assertTrue("Failed to login", lmodule.login()); + assertTrue("Failed to logout",lmodule.logout()); + assertTrue("Failed to commit", lmodule.commit()); + assertTrue("Failed to abort", lmodule.abort()); + } catch (LoginException e) { + ex = e; + } + assertNull(ex); + } + +}