@Override public void filter(final ClientRequestContext clientRequestContext) { final ZonkyApiToken supplied = token == null ? null : token.get(); logger.trace("Using token #{}.", supplied); final char[] t = supplied == null ? AuthenticatedFilter.EMPTY_TOKEN : supplied.getAccessToken(); this.setRequestHeader("Authorization", "Bearer " + String.valueOf(t)); super.filter(clientRequestContext); } }
@Override public void filter(final ClientRequestContext clientRequestContext) { final ZonkyApiToken supplied = token == null ? null : token.get(); final char[] t = supplied == null ? AuthenticatedFilter.EMPTY_TOKEN : supplied.getAccessToken(); this.setRequestHeader("Authorization", "Bearer " + String.valueOf(t)); super.filter(clientRequestContext); } }
private static InputStream c(final ZonkyApiToken token) { final String error = "{\"error\":\"invalid_token\",\"error_description\":\"Invalid access token: " + Arrays.toString(token.getAccessToken()) + "\"}"; return new ByteArrayInputStream(error.getBytes(Defaults.CHARSET)); }
private static ZonkyApiToken mockToken() { final ZonkyApiToken t = mock(ZonkyApiToken.class); when(t.getAccessToken()).thenReturn(UUID.randomUUID().toString().toCharArray()); return t; }
@SuppressWarnings({"unchecked", "rawtypes"}) private ApiProvider mockApi(final String username, final char... password) { final ApiProvider api = spy(new ApiProvider()); final ZonkyApiToken token = mock(ZonkyApiToken.class); when(token.getAccessToken()).thenReturn(new char[0]); final OAuth oauth = mock(OAuth.class); when(oauth.login(eq(username), eq(password))).thenReturn(token); doAnswer(i -> { final Function f = i.getArgument(0); return f.apply(oauth); }).when(api).oauth(any()); final Zonky z = mock(Zonky.class); doAnswer(i -> { final Consumer f = i.getArgument(0); f.accept(z); return null; }).when(api).run(any(Consumer.class), any()); return api; }
@SuppressWarnings({"unchecked", "rawtypes"}) private ApiProvider mockFailingApi() { final ApiProvider api = spy(new ApiProvider()); final ZonkyApiToken token = mock(ZonkyApiToken.class); when(token.getAccessToken()).thenReturn(new char[0]); final OAuth oauth = mock(OAuth.class); when(oauth.login(any(), any())).thenReturn(token); doAnswer(i -> { final Function f = i.getArgument(0); return f.apply(oauth); }).when(api).oauth(any()); final Zonky z = mock(Zonky.class); doAnswer(i -> { final Consumer f = i.getArgument(0); f.accept(z); return null; }).when(api).run(any(Consumer.class), any()); doThrow(IllegalStateException.class).when(z).logout(); // last call will fail return api; }
@Test void hasToken() throws URISyntaxException { final ClientRequestContext crc = mock(ClientRequestContext.class); when(crc.getUri()).thenReturn(new URI("http://somewhere")); when(crc.getHeaders()).thenReturn(new MultivaluedHashMap<>()); getTestedFilter().filter(crc); assertThat(crc.getHeaders().getFirst("Authorization")) .isEqualTo("Bearer " + String.valueOf(AuthenticatedFilterTest.TOKEN.getAccessToken())); }