diff --git a/core/src/test/java/org/acegisecurity/providers/jaas/JaasAuthenticationProviderTests.java b/core/src/test/java/org/acegisecurity/providers/jaas/JaasAuthenticationProviderTests.java index bb30055643..21f6e01ba6 100644 --- a/core/src/test/java/org/acegisecurity/providers/jaas/JaasAuthenticationProviderTests.java +++ b/core/src/test/java/org/acegisecurity/providers/jaas/JaasAuthenticationProviderTests.java @@ -17,10 +17,7 @@ package net.sf.acegisecurity.providers.jaas; import junit.framework.TestCase; -import net.sf.acegisecurity.Authentication; -import net.sf.acegisecurity.AuthenticationException; -import net.sf.acegisecurity.GrantedAuthority; -import net.sf.acegisecurity.GrantedAuthorityImpl; +import net.sf.acegisecurity.*; import net.sf.acegisecurity.providers.TestingAuthenticationToken; import net.sf.acegisecurity.providers.UsernamePasswordAuthenticationToken; @@ -31,9 +28,11 @@ import org.springframework.context.support.ClassPathXmlApplicationContext; import java.util.Arrays; import java.util.List; +import javax.security.auth.login.LoginException; + /** - * DOCUMENT ME! + * Tests for the JaasAuthenticationProvider * * @author Ray Krueger * @version $Id$ @@ -165,6 +164,35 @@ public class JaasAuthenticationProviderTests extends TestCase { assertNull("Failure event was fired", eventCheck.failedEvent); } + public void testLoginExceptionResolver() { + assertNotNull(jaasProvider.getLoginExceptionResolver()); + jaasProvider.setLoginExceptionResolver(new LoginExceptionResolver() { + public AcegiSecurityException resolveException(LoginException e) { + return new LockedException("This is just a test!"); + } + }); + + try { + jaasProvider.authenticate(new UsernamePasswordAuthenticationToken( + "user", "password")); + } catch (LockedException e) {} + catch (Exception e) { + fail("LockedException should have been thrown and caught"); + } + } + + public void testNullDefaultAuthorities() { + UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("user", + "password", null); + + assertTrue(jaasProvider.supports( + UsernamePasswordAuthenticationToken.class)); + + Authentication auth = jaasProvider.authenticate(token); + assertTrue("Only ROLE_TEST should have been returned", + auth.getAuthorities().length == 1); + } + public void testUnsupportedAuthenticationObjectReturnsNull() { assertNull(jaasProvider.authenticate( new TestingAuthenticationToken("foo", "bar",