Search in sources :

Example 71 with UnsupportedCallbackException

use of javax.security.auth.callback.UnsupportedCallbackException in project activemq-artemis by apache.

the class LDAPLoginModuleMaskPasswordTest method testLoginExternalCodec2.

@Test
public void testLoginExternalCodec2() throws LoginException {
    LoginContext context = new LoginContext("LDAPLoginExternalPasswordCodec2", callbacks -> {
        for (int i = 0; i < callbacks.length; i++) {
            if (callbacks[i] instanceof NameCallback) {
                ((NameCallback) callbacks[i]).setName("first");
            } else if (callbacks[i] instanceof PasswordCallback) {
                ((PasswordCallback) callbacks[i]).setPassword("secret".toCharArray());
            } else {
                throw new UnsupportedCallbackException(callbacks[i]);
            }
        }
    });
    context.login();
    context.logout();
}
Also used : LoginContext(javax.security.auth.login.LoginContext) NameCallback(javax.security.auth.callback.NameCallback) PasswordCallback(javax.security.auth.callback.PasswordCallback) UnsupportedCallbackException(javax.security.auth.callback.UnsupportedCallbackException) Test(org.junit.Test)

Example 72 with UnsupportedCallbackException

use of javax.security.auth.callback.UnsupportedCallbackException in project activemq-artemis by apache.

the class LDAPLoginModuleMaskPasswordTest method testLoginMaskedPasswordUnauthenticated.

@Test
public void testLoginMaskedPasswordUnauthenticated() throws LoginException {
    LoginContext context = new LoginContext("LDAPLoginMaskedPassword", callbacks -> {
        for (int i = 0; i < callbacks.length; i++) {
            if (callbacks[i] instanceof NameCallback) {
                ((NameCallback) callbacks[i]).setName("first");
            } else if (callbacks[i] instanceof PasswordCallback) {
                ((PasswordCallback) callbacks[i]).setPassword("nosecret".toCharArray());
            } else {
                throw new UnsupportedCallbackException(callbacks[i]);
            }
        }
    });
    try {
        context.login();
    } catch (FailedLoginException le) {
        assertEquals(le.getMessage(), "Password does not match for user: first");
        return;
    }
    fail("Should have failed authenticating");
}
Also used : LoginContext(javax.security.auth.login.LoginContext) NameCallback(javax.security.auth.callback.NameCallback) FailedLoginException(javax.security.auth.login.FailedLoginException) PasswordCallback(javax.security.auth.callback.PasswordCallback) UnsupportedCallbackException(javax.security.auth.callback.UnsupportedCallbackException) Test(org.junit.Test)

Example 73 with UnsupportedCallbackException

use of javax.security.auth.callback.UnsupportedCallbackException in project activemq-artemis by apache.

the class LDAPLoginModuleTest method testLogin.

@Test
public void testLogin() throws LoginException {
    LoginContext context = new LoginContext("LDAPLogin", new CallbackHandler() {

        @Override
        public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
            for (int i = 0; i < callbacks.length; i++) {
                if (callbacks[i] instanceof NameCallback) {
                    ((NameCallback) callbacks[i]).setName("first");
                } else if (callbacks[i] instanceof PasswordCallback) {
                    ((PasswordCallback) callbacks[i]).setPassword("secret".toCharArray());
                } else {
                    throw new UnsupportedCallbackException(callbacks[i]);
                }
            }
        }
    });
    context.login();
    context.logout();
}
Also used : CallbackHandler(javax.security.auth.callback.CallbackHandler) LoginContext(javax.security.auth.login.LoginContext) PasswordCallback(javax.security.auth.callback.PasswordCallback) NameCallback(javax.security.auth.callback.NameCallback) Callback(javax.security.auth.callback.Callback) NameCallback(javax.security.auth.callback.NameCallback) PasswordCallback(javax.security.auth.callback.PasswordCallback) IOException(java.io.IOException) UnsupportedCallbackException(javax.security.auth.callback.UnsupportedCallbackException) Test(org.junit.Test)

Example 74 with UnsupportedCallbackException

use of javax.security.auth.callback.UnsupportedCallbackException in project activemq-artemis by apache.

the class GuestLoginModuleTest method testLoginWithDefaults.

@Test
public void testLoginWithDefaults() throws LoginException {
    LoginContext context = new LoginContext("GuestLoginWithDefaults", new CallbackHandler() {

        @Override
        public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
            assertEquals("Should have no Callbacks", 0, callbacks.length);
        }
    });
    context.login();
    Subject subject = context.getSubject();
    assertEquals("Should have two principals", 2, subject.getPrincipals().size());
    assertEquals("Should have one user principal", 1, subject.getPrincipals(UserPrincipal.class).size());
    assertTrue("User principal is 'guest'", subject.getPrincipals(UserPrincipal.class).contains(new UserPrincipal("guest")));
    assertEquals("Should have one group principal", 1, subject.getPrincipals(RolePrincipal.class).size());
    assertTrue("Role principal is 'guests'", subject.getPrincipals(RolePrincipal.class).contains(new RolePrincipal("guests")));
    context.logout();
    assertEquals("Should have zero principals", 0, subject.getPrincipals().size());
}
Also used : CallbackHandler(javax.security.auth.callback.CallbackHandler) LoginContext(javax.security.auth.login.LoginContext) Callback(javax.security.auth.callback.Callback) IOException(java.io.IOException) UnsupportedCallbackException(javax.security.auth.callback.UnsupportedCallbackException) RolePrincipal(org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal) Subject(javax.security.auth.Subject) UserPrincipal(org.apache.activemq.artemis.spi.core.security.jaas.UserPrincipal) Test(org.junit.Test)

Example 75 with UnsupportedCallbackException

use of javax.security.auth.callback.UnsupportedCallbackException in project activemq-artemis by apache.

the class GuestLoginModuleTest method testLogin.

@Test
public void testLogin() throws LoginException {
    LoginContext context = new LoginContext("GuestLogin", new CallbackHandler() {

        @Override
        public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
            assertEquals("Should have no Callbacks", 0, callbacks.length);
        }
    });
    context.login();
    Subject subject = context.getSubject();
    assertEquals("Should have two principals", 2, subject.getPrincipals().size());
    assertEquals("Should have one user principal", 1, subject.getPrincipals(UserPrincipal.class).size());
    assertTrue("User principal is 'foo'", subject.getPrincipals(UserPrincipal.class).contains(new UserPrincipal("foo")));
    assertEquals("Should have one group principal", 1, subject.getPrincipals(RolePrincipal.class).size());
    assertTrue("Role principal is 'bar'", subject.getPrincipals(RolePrincipal.class).contains(new RolePrincipal("bar")));
    context.logout();
    assertEquals("Should have zero principals", 0, subject.getPrincipals().size());
}
Also used : CallbackHandler(javax.security.auth.callback.CallbackHandler) LoginContext(javax.security.auth.login.LoginContext) Callback(javax.security.auth.callback.Callback) IOException(java.io.IOException) UnsupportedCallbackException(javax.security.auth.callback.UnsupportedCallbackException) RolePrincipal(org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal) Subject(javax.security.auth.Subject) UserPrincipal(org.apache.activemq.artemis.spi.core.security.jaas.UserPrincipal) Test(org.junit.Test)

Aggregations

UnsupportedCallbackException (javax.security.auth.callback.UnsupportedCallbackException)332 Callback (javax.security.auth.callback.Callback)213 IOException (java.io.IOException)201 NameCallback (javax.security.auth.callback.NameCallback)182 PasswordCallback (javax.security.auth.callback.PasswordCallback)177 LoginException (javax.security.auth.login.LoginException)89 CallbackHandler (javax.security.auth.callback.CallbackHandler)63 FailedLoginException (javax.security.auth.login.FailedLoginException)45 LoginContext (javax.security.auth.login.LoginContext)43 Subject (javax.security.auth.Subject)36 Principal (java.security.Principal)34 AuthorizeCallback (javax.security.sasl.AuthorizeCallback)31 RealmCallback (javax.security.sasl.RealmCallback)27 HttpServletRequest (javax.servlet.http.HttpServletRequest)27 HashMap (java.util.HashMap)23 CallerPrincipalCallback (javax.security.auth.message.callback.CallerPrincipalCallback)23 Test (org.junit.Test)21 GroupPrincipalCallback (javax.security.auth.message.callback.GroupPrincipalCallback)20 SaslException (javax.security.sasl.SaslException)19 AuthException (javax.security.auth.message.AuthException)18