1
0
mirror of synced 2026-08-04 01:07:02 +00:00

DefaultAuthenticationEventPublisher Default Event

Fixes gh-7825
This commit is contained in:
Zeeshan Adnan
2020-02-07 00:53:55 +06:00
committed by Josh Cummings
parent a90e579350
commit 51b9b2f693
2 changed files with 60 additions and 0 deletions
@@ -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) {