Example usage for javax.security.auth.spi LoginModule abort

List of usage examples for javax.security.auth.spi LoginModule abort

Introduction

In this page you can find the example usage for javax.security.auth.spi LoginModule abort.

Prototype

boolean abort() throws LoginException;

Source Link

Document

Method to abort the authentication process (phase 2).

Usage

From source file:com.fiveamsolutions.nci.commons.authentication.LoginModuleTest.java

@Test
public void testIt() throws Exception {
    String un = "user";
    String pw = "Password1";
    LoginModule module = new CommonLoginModule();
    Map<String, ?> options = new HashMap<String, Object>();
    Map<String, ?> sharedState = new HashMap<String, Object>();
    Subject subject = new Subject();
    CallbackHandler cbh = new MockCallbackHandler(true);

    module.initialize(subject, cbh, sharedState, options);

    try {/*from w  ww.j  a  v  a 2s  .  c  o  m*/
        module.login();
        fail();
    } catch (LoginException e) {
        // expected
    }
    assertTrue(sharedState.isEmpty());
    assertTrue(module.abort());

    cbh = new MockCallbackHandler(false);
    module.initialize(subject, cbh, sharedState, options);

    try {
        module.login();
        fail();
    } catch (LoginException e) {
        // expected
    }
    assertTrue(sharedState.isEmpty());
    assertTrue(module.abort());

    cbh = new MockCallbackHandler(un, "pass".toCharArray());
    module.initialize(subject, cbh, sharedState, options);

    try {
        module.login();
        fail();
    } catch (FailedLoginException e) {
        // expected
    }
    assertTrue(sharedState.isEmpty());
    assertTrue(module.abort());

    createUser(un, pw);
    try {
        module.login();
        fail();
    } catch (FailedLoginException e) {
        // expected
    }
    assertTrue(sharedState.isEmpty());
    assertTrue(module.abort());

    cbh = new MockCallbackHandler(un.toUpperCase(), pw.toCharArray());
    module.initialize(subject, cbh, sharedState, options);

    assertTrue(module.login());
    assertTrue(!sharedState.isEmpty());
    assertEquals(un, sharedState.get("javax.security.auth.login.name"));
    assertEquals(pw, new String((char[]) sharedState.get("javax.security.auth.login.password")));
    assertTrue(subject.getPrincipals().isEmpty());

    assertTrue(module.commit());
    assertTrue(!subject.getPrincipals().isEmpty());
    assertEquals(un, subject.getPrincipals().iterator().next().getName());

    assertTrue(module.logout());
    assertTrue(subject.getPrincipals().isEmpty());
}