List of usage examples for javax.security.auth.spi LoginModule logout
boolean logout() throws LoginException;
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 {// ww w .jav a 2 s. 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()); }