private void assertCallbackCalled(FakeOAuth2IdentityProvider oAuth2IdentityProvider) { assertThat(logTester.logs(LoggerLevel.ERROR)).isEmpty(); assertThat(oAuth2IdentityProvider.isCallbackCalled()).isTrue(); }
private void assertOAuth2InitCalled() { assertThat(logTester.logs(LoggerLevel.ERROR)).isEmpty(); assertThat(oAuth2IdentityProvider.isInitCalled()).isTrue(); }
public FakeOAuth2IdentityProvider(String key, boolean enabled) { setKey(key); setName("name of " + key); setEnabled(enabled); }
@Test public void fail_on_disabled_provider() throws Exception { when(request.getRequestURI()).thenReturn("/oauth2/callback/" + OAUTH2_PROVIDER_KEY); identityProviderRepository.addIdentityProvider(new FakeOAuth2IdentityProvider(OAUTH2_PROVIDER_KEY, false)); underTest.doFilter(request, response, chain); assertError("Failed to retrieve IdentityProvider for key 'github'"); verifyZeroInteractions(authenticationEvent); }
@Override public void callback(CallbackContext context) { super.callback(context); context.authenticate(UserIdentity.builder() .setLogin(login) .setProviderLogin(login) .setEmail(login + "@toto.com") .setName("name of " + login) .build()); } }
@Test public void do_filter_with_context_no_log_if_provider_did_not_call_authenticate_on_context() { when(server.getContextPath()).thenReturn("/sonarqube"); when(request.getRequestURI()).thenReturn("/sonarqube/oauth2/callback/" + OAUTH2_PROVIDER_KEY); FakeOAuth2IdentityProvider identityProvider = new FakeOAuth2IdentityProvider(OAUTH2_PROVIDER_KEY, true); identityProviderRepository.addIdentityProvider(identityProvider); underTest.doFilter(request, response, chain); assertCallbackCalled(identityProvider); verify(authenticationEvent).loginFailure(eq(request), authenticationExceptionCaptor.capture()); AuthenticationException authenticationException = authenticationExceptionCaptor.getValue(); assertThat(authenticationException).hasMessage("Plugin did not call authenticate"); assertThat(authenticationException.getSource()).isEqualTo(Source.oauth2(identityProvider)); assertThat(authenticationException.getLogin()).isNull(); assertThat(authenticationException.getPublicMessage()).isNull(); }
private void assertError(String expectedError) throws Exception { assertThat(logTester.logs(LoggerLevel.WARN)).contains(expectedError); verify(response).sendRedirect("/sessions/unauthorized"); assertThat(oAuth2IdentityProvider.isInitCalled()).isFalse(); }
private void assertError(String expectedError) throws Exception { assertThat(logTester.logs(LoggerLevel.WARN)).contains(expectedError); verify(response).sendRedirect("/sessions/unauthorized"); assertThat(oAuth2IdentityProvider.isInitCalled()).isFalse(); }