Refine search
@Test public void setDateHeader() { response.setDateHeader("Last-Modified", 1437472800000L); assertEquals("Tue, 21 Jul 2015 10:00:00 GMT", response.getHeader("Last-Modified")); }
@Test public void httpBasicUnauthorizedOnDefault() throws Exception { // @formatter:off loadContext("<http>\n" + " <intercept-url pattern=\"/**\" access=\"hasRole('USER')\" />\n" + " <http-basic />\n" + " </http>\n" + "\n" + " <authentication-manager />"); // @formatter:on this.springSecurityFilterChain.doFilter(this.request, this.response, this.chain); assertThat(this.response.getStatus()).isEqualTo(HttpServletResponse.SC_UNAUTHORIZED); assertThat(this.response.getHeader("WWW-Authenticate")).isEqualTo("Basic realm=\"Realm\""); }
.andReturn(); URL url = new URL(result.getResponse().getHeader("Location").replace("redirect#", "redirect?")); Map<String, List<String>> hashFragmentParams = splitQuery(url); assertEquals("bearer", hashFragmentParams.get("token_type").get(0)); assertNotNull(hashFragmentParams.get("access_token").get(0)); assertNotNull(hashFragmentParams.get("id_token").get(0)); assertNotNull(hashFragmentParams.get("code").get(0)); assertEquals(state, hashFragmentParams.get("state").get(0)); assertNotNull(hashFragmentParams.get("expires_in").get(0)); assertEquals("testnonce", hashFragmentParams.get("nonce").get(0)); assertNotNull(hashFragmentParams.get("jti").get(0)); validateOpenIdConnectToken(hashFragmentParams.get("id_token").get(0), developer.getId(), clientId);
@Test public void testHttpProxyScenario() throws Exception { DateTimeFormatter dateTimeFormatter = DateTimeFormatter.RFC_1123_DATE_TIME; assertEquals(new URI("http://testServer/test?foo=bar&FOO=BAR"), uri); HttpEntity<?> httpEntity = (HttpEntity<?>) invocation.getArguments()[2]; HttpHeaders httpHeaders = httpEntity.getHeaders(); assertEquals(ifModifiedSince, httpHeaders.getIfModifiedSince()); assertEquals(ifUnmodifiedSinceValue, httpHeaders.getFirst("If-Unmodified-Since")); assertEquals("Keep-Alive", httpHeaders.getFirst("Connection")); assertEquals(ifUnmodifiedSinceValue, response.getHeaderValue("If-Unmodified-Since")); assertEquals("close", response.getHeaderValue("Connection")); assertEquals(contentDispositionValue, response.getHeader("Content-Disposition")); assertEquals("text/plain", response.getContentType());
@Test public void cookies() { Cookie cookie = new Cookie("foo", "bar"); cookie.setPath("/path"); cookie.setDomain("example.com"); cookie.setMaxAge(0); cookie.setSecure(true); cookie.setHttpOnly(true); response.addCookie(cookie); assertEquals("foo=bar; Path=/path; Domain=example.com; " + "Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; " + "Secure; HttpOnly", response.getHeader(HttpHeaders.SET_COOKIE)); }
@Test public void commenceWhenNoBearerTokenErrorThenStatus401AndAuthHeader() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); this.authenticationEntryPoint.commence(request, response, new BadCredentialsException("test")); assertThat(response.getStatus()).isEqualTo(401); assertThat(response.getHeader("WWW-Authenticate")).isEqualTo("Bearer"); }
.andReturn(); URL url = new URL(result.getResponse().getHeader("Location").replace("redirect#", "redirect?")); Map<String, List<String>> hashFragmentParams = splitQuery(url); assertEquals("bearer", hashFragmentParams.get("token_type").get(0)); assertNotNull(hashFragmentParams.get("access_token").get(0)); assertNull(hashFragmentParams.get("id_token")); assertNotNull(hashFragmentParams.get("code").get(0)); assertEquals(state, hashFragmentParams.get("state").get(0)); assertNotNull(hashFragmentParams.get("expires_in").get(0)); assertEquals("testnonce", hashFragmentParams.get("nonce").get(0)); assertNotNull(hashFragmentParams.get("jti").get(0)); String code = hashFragmentParams.get("code").get(0);
@Test public void contentLengthHeader() { response.addHeader("Content-Length", "66"); assertEquals(66, response.getContentLength()); assertEquals("66", response.getHeader("Content-Length")); }
@Test public void commenceWhenNoBearerTokenErrorAndRealmSetThenStatus401AndAuthHeaderWithRealm() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); this.authenticationEntryPoint.setRealmName("test"); this.authenticationEntryPoint.commence(request, response, new BadCredentialsException("test")); assertThat(response.getStatus()).isEqualTo(401); assertThat(response.getHeader("WWW-Authenticate")).isEqualTo("Bearer realm=\"test\""); }
.andReturn(); URL url = new URL(result.getResponse().getHeader("Location").replace("redirect#", "redirect?")); Map<String, List<String>> hashFragmentParams = splitQuery(url); assertEquals("bearer", hashFragmentParams.get("token_type").get(0)); assertNull(hashFragmentParams.get("access_token")); assertNotNull(hashFragmentParams.get("id_token").get(0)); validateOpenIdConnectToken(hashFragmentParams.get("id_token").get(0), developer.getId(), clientId); assertNotNull(hashFragmentParams.get("code").get(0)); assertEquals(state, hashFragmentParams.get("state").get(0)); assertNotNull(hashFragmentParams.get("expires_in").get(0)); assertEquals("testnonce", hashFragmentParams.get("nonce").get(0)); assertNotNull(hashFragmentParams.get("jti").get(0)); String code = hashFragmentParams.get("code").get(0);
@Test public void getDateHeader() { long time = 1437472800000L; response.setDateHeader("Last-Modified", time); assertEquals("Tue, 21 Jul 2015 10:00:00 GMT", response.getHeader("Last-Modified")); assertEquals(time, response.getDateHeader("Last-Modified")); }
@Test public void testNotNullAuthentication() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); handler.onLogoutSuccess(request, response, authentication); assertThat(response.getStatus()).isEqualTo(302); assertThat(response.getHeader("Location")).isEqualTo("/defaultTargetUrl"); verify(repository, Mockito.times(1)).logoutUser(mockUser); } }
.andReturn(); String redirectUri = result.getResponse().getHeader("Location"); assertFalse("Redirect URL should not be a fragment.", redirectUri.contains("#")); assertTrue("Redirect URL should contain query params.", redirectUri.contains("?")); Map<String, List<String>> queryParams = splitQuery(new URL(redirectUri)); assertEquals(state, queryParams.get("state").get(0)); assertNotNull(queryParams.get("code").get(0)); String code = queryParams.get("code").get(0); validateOpenIdConnectToken(tokenResponse.get("id_token"), developer.getId(), clientId); Map<String, Object> claims = getClaimsForToken(tokenResponse.get("id_token")); assertEquals("testnonce", claims.get(ClaimConstants.NONCE)); assertEquals("openid", ((ArrayList<String>) getClaimsForToken(tokenResponse.get(ACCESS_TOKEN)).get("scope")).get(0));
@Test public void contentLength() { response.setContentLength(66); assertEquals(66, response.getContentLength()); assertEquals("66", response.getHeader("Content-Length")); }
@Test public void testNullAuthentication() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); handler.onLogoutSuccess(request, response, null); assertThat(response.getStatus()).isEqualTo(302); assertThat(response.getHeader("Location")).isEqualTo("/defaultTargetUrl"); }
private void testImplicitGrantRedirectUri(String redirectUri, boolean noPrompt) throws Exception { String clientId = "authclient-" + generator.generate(); String scopes = "openid"; setUpClients(clientId, scopes, scopes, GRANT_TYPES, true, redirectUri); String username = "authuser" + generator.generate(); String userScopes = "openid"; ScimUser developer = setUpUser(username, userScopes, OriginKeys.UAA, IdentityZoneHolder.get().getId()); MockHttpSession session = getAuthenticatedSession(developer); String state = generator.generate(); MockHttpServletRequestBuilder authRequest = get("/oauth/authorize") .session(session) .param(OAuth2Utils.RESPONSE_TYPE, "token") .param(SCOPE, "openid") .param(OAuth2Utils.STATE, state) .param(OAuth2Utils.CLIENT_ID, clientId) .param(OAuth2Utils.REDIRECT_URI, redirectUri); if (noPrompt) { authRequest = authRequest.param(ID_TOKEN_HINT_PROMPT, ID_TOKEN_HINT_PROMPT_NONE); } MvcResult result = mockMvc.perform(authRequest).andExpect(status().is3xxRedirection()).andReturn(); String location = result.getResponse().getHeader("Location"); containsExactlyOneInstance(location, "#"); String[] locationParts = location.split("#"); String locationUri = locationParts[0]; String locationToken = locationParts[1]; assertEquals(redirectUri.split("#")[0], locationUri); String[] locationParams = locationToken.split("&"); assertThat(Arrays.asList(locationParams), hasItem(is("token_type=bearer"))); assertThat(Arrays.asList(locationParams), hasItem(startsWith("access_token="))); }
@Test public void contentLengthIntHeader() { response.addIntHeader("Content-Length", 66); assertEquals(66, response.getContentLength()); assertEquals("66", response.getHeader("Content-Length")); }
@Test public void redirectsToErrorPageInCaseOfException() throws Exception { XOAuthAuthenticationManager xOAuthAuthenticationManager = mock(XOAuthAuthenticationManager.class); XOAuthAuthenticationFilter filter = new XOAuthAuthenticationFilter(xOAuthAuthenticationManager, successHandler); HttpServletRequest request = mock(HttpServletRequest.class); FilterChain chain = mock(FilterChain.class); MockHttpServletResponse response = new MockHttpServletResponse(); when(request.getRequestURL()).thenReturn(new StringBuffer("http://localhost/uaa/login/callback/the_origin")); when(request.getServletPath()).thenReturn("/login/callback/the_origin"); when(request.getParameter("code")).thenReturn("the_code"); Mockito.doThrow(new HttpClientErrorException(HttpStatus.BAD_REQUEST, "error from oauth server")).when(xOAuthAuthenticationManager).authenticate(any()); filter.doFilter(request, response, chain); Assert.assertThat(response.getHeader("Location"), Matchers.containsString(request.getContextPath() + "/oauth_error?error=There+was+an+error+when+authenticating+against+the+external+identity+provider%3A")); } }
.andReturn(); String redirectUri = result.getResponse().getHeader("Location"); assertFalse("Redirect URL should not be a fragment.", redirectUri.contains("#")); assertTrue("Redirect URL should contain query params.", redirectUri.contains("?")); Map<String, List<String>> queryParams = splitQuery(new URL(redirectUri)); assertEquals(state, queryParams.get("state").get(0)); assertNotNull(queryParams.get("code").get(0)); String code = queryParams.get("code").get(0); assertNotNull(tokenResponse.get(ACCESS_TOKEN)); assertNotEquals(tokenResponse.get(ACCESS_TOKEN), queryParams.get(ACCESS_TOKEN)); assertEquals("not-openid", ((ArrayList<String>) getClaimsForToken(tokenResponse.get(ACCESS_TOKEN)).get("scope")).get(0)); assertNotNull(tokenResponse.get(REFRESH_TOKEN));
@Test(expected = IllegalArgumentException.class) public void getInvalidDateHeader() { response.setHeader("Last-Modified", "invalid"); assertEquals("invalid", response.getHeader("Last-Modified")); response.getDateHeader("Last-Modified"); }