DefaultAuthenticationEventPublisher Default Event
Fixes gh-7825
This commit is contained in:
committed by
Josh Cummings
parent
a90e579350
commit
51b9b2f693
+32
@@ -27,6 +27,7 @@ import org.springframework.security.authentication.event.AuthenticationFailureLo
|
||||
import org.springframework.security.authentication.event.AuthenticationFailureProviderNotFoundEvent;
|
||||
import org.springframework.security.authentication.event.AuthenticationFailureServiceExceptionEvent;
|
||||
import org.springframework.security.authentication.event.AuthenticationSuccessEvent;
|
||||
import org.springframework.security.authentication.event.AbstractAuthenticationFailureEvent;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.security.core.AuthenticationException;
|
||||
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||
@@ -137,6 +138,37 @@ public class DefaultAuthenticationEventPublisherTests {
|
||||
verifyZeroInteractions(appPublisher);
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void defaultAuthenticationFailureEventClassSetNullThen() {
|
||||
publisher = new DefaultAuthenticationEventPublisher();
|
||||
publisher.setDefaultAuthenticationFailureEvent(null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void defaultAuthenticationFailureEventIsPublished() {
|
||||
publisher = new DefaultAuthenticationEventPublisher();
|
||||
publisher.setDefaultAuthenticationFailureEvent(AuthenticationFailureBadCredentialsEvent.class);
|
||||
ApplicationEventPublisher appPublisher = mock(ApplicationEventPublisher.class);
|
||||
|
||||
publisher.setApplicationEventPublisher(appPublisher);
|
||||
publisher.publishAuthenticationFailure(new AuthenticationException("") {
|
||||
}, mock(Authentication.class));
|
||||
verify(appPublisher).publishEvent(isA(AuthenticationFailureBadCredentialsEvent.class));
|
||||
}
|
||||
|
||||
@Test(expected = RuntimeException.class)
|
||||
public void defaultAuthenticationFailureEventMissingAppropriateConstructorThen() {
|
||||
publisher = new DefaultAuthenticationEventPublisher();
|
||||
publisher.setDefaultAuthenticationFailureEvent(AuthenticationFailureEventWithoutAppropriateConstructor.class);
|
||||
}
|
||||
|
||||
private static final class AuthenticationFailureEventWithoutAppropriateConstructor extends
|
||||
AbstractAuthenticationFailureEvent {
|
||||
AuthenticationFailureEventWithoutAppropriateConstructor(Authentication auth) {
|
||||
super(auth, new AuthenticationException("") {});
|
||||
}
|
||||
}
|
||||
|
||||
private static final class MockAuthenticationException extends
|
||||
AuthenticationException {
|
||||
MockAuthenticationException(String msg) {
|
||||
|
||||
Reference in New Issue
Block a user