List of usage examples for org.apache.http.impl.client BasicCookieStore addCookie
public synchronized void addCookie(final Cookie cookie)
From source file:net.bither.http.BaseHttpResponse.java
private BasicCookieStore getCookieStore(String domain) { BasicCookieStore cookieStore = null; if (cookieCache.containsKey(domain)) { cookieStore = cookieCache.get(domain); } else {/*from w w w. j a va 2 s .com*/ PersistentCookieStore persistentCookieStore = PersistentCookieStore.getInstance(); cookieStore = new BasicCookieStore(); for (Cookie cookie : persistentCookieStore.getCookies()) { BasicClientCookie basicClientCookie = new BasicClientCookie(cookie.getName(), cookie.getValue()); basicClientCookie.setDomain(domain); basicClientCookie.setExpiryDate(cookie.getExpiryDate()); basicClientCookie.setVersion(cookie.getVersion()); basicClientCookie.setPath(cookie.getPath()); cookieStore.addCookie(basicClientCookie); } cookieCache.put(domain, cookieStore); } return cookieStore; }
From source file:gtu.youtube.JavaYoutubeDownloader.java
/** * Cookie key \t value/*w ww . j a v a 2s . c o m*/ */ private BasicCookieStore getCookieString(String cookieStr) { BasicCookieStore cookstore = new BasicCookieStore(); BufferedReader reader = null; try { reader = new BufferedReader(new StringReader(cookieStr)); for (String line = null; (line = reader.readLine()) != null;) { String[] arry = line.split("\t", -1); if (arry != null && arry.length == 2) { arry[0] = StringUtils.trimToEmpty(arry[0]); arry[1] = StringUtils.trimToEmpty(arry[1]); cookstore.addCookie(new BasicClientCookie(arry[0], arry[1])); System.out.println("cookie : " + Arrays.toString(arry)); } } return cookstore; } catch (Exception ex) { throw new RuntimeException(" Err : " + ex.getMessage(), ex); } finally { try { reader.close(); } catch (Exception e) { } } }
From source file:org.cloudfoundry.identity.uaa.integration.RefreshTokenSupportIntegrationTests.java
@Test public void testTokenRefreshedCorrectFlow() throws Exception { BasicCookieStore cookies = new BasicCookieStore(); AuthorizationCodeResourceDetails resource = testAccounts.getDefaultAuthorizationCodeResource(); URI uri = serverRunning.buildUri("/oauth/authorize").queryParam("response_type", "code") .queryParam("state", "mystateid").queryParam("client_id", resource.getClientId()) .queryParam("redirect_uri", resource.getPreEstablishedRedirectUri()).build(); ResponseEntity<Void> result = serverRunning.getForResponse(uri.toString(), getHeaders(cookies)); assertEquals(HttpStatus.FOUND, result.getStatusCode()); String location = result.getHeaders().getLocation().toString(); if (result.getHeaders().containsKey("Set-Cookie")) { for (String cookie : result.getHeaders().get("Set-Cookie")) { int nameLength = cookie.indexOf('='); cookies.addCookie( new BasicClientCookie(cookie.substring(0, nameLength), cookie.substring(nameLength + 1))); }/*from w w w. j av a 2s.c o m*/ } ResponseEntity<String> response = serverRunning.getForString(location, getHeaders(cookies)); if (response.getHeaders().containsKey("Set-Cookie")) { for (String cookie : response.getHeaders().get("Set-Cookie")) { int nameLength = cookie.indexOf('='); cookies.addCookie( new BasicClientCookie(cookie.substring(0, nameLength), cookie.substring(nameLength + 1))); } } // should be directed to the login screen... assertTrue(response.getBody().contains("/login.do")); assertTrue(response.getBody().contains("username")); assertTrue(response.getBody().contains("password")); MultiValueMap<String, String> formData = new LinkedMultiValueMap<String, String>(); formData.add("username", testAccounts.getUserName()); formData.add("password", testAccounts.getPassword()); formData.add(DEFAULT_CSRF_COOKIE_NAME, IntegrationTestUtils.extractCookieCsrf(response.getBody())); // Should be redirected to the original URL, but now authenticated result = serverRunning.postForResponse("/login.do", getHeaders(cookies), formData); cookies.clear(); if (result.getHeaders().containsKey("Set-Cookie")) { for (String cookie : result.getHeaders().get("Set-Cookie")) { int nameLength = cookie.indexOf('='); cookies.addCookie( new BasicClientCookie(cookie.substring(0, nameLength), cookie.substring(nameLength + 1))); } } assertEquals(HttpStatus.FOUND, result.getStatusCode()); response = serverRunning.getForString(result.getHeaders().getLocation().toString(), getHeaders(cookies)); if (response.getHeaders().containsKey("Set-Cookie")) { for (String cookie : response.getHeaders().get("Set-Cookie")) { int nameLength = cookie.indexOf('='); cookies.addCookie( new BasicClientCookie(cookie.substring(0, nameLength), cookie.substring(nameLength + 1))); } } if (response.getStatusCode() == HttpStatus.OK) { // The grant access page should be returned assertTrue(response.getBody().contains("<h1>Application Authorization</h1>")); formData.clear(); formData.add(USER_OAUTH_APPROVAL, "true"); formData.add(DEFAULT_CSRF_COOKIE_NAME, IntegrationTestUtils.extractCookieCsrf(response.getBody())); result = serverRunning.postForResponse("/oauth/authorize", getHeaders(cookies), formData); assertEquals(HttpStatus.FOUND, result.getStatusCode()); location = result.getHeaders().getLocation().toString(); } else { // Token cached so no need for second approval assertEquals(HttpStatus.FOUND, response.getStatusCode()); location = response.getHeaders().getLocation().toString(); } assertTrue("Wrong location: " + location, location.matches(resource.getPreEstablishedRedirectUri() + ".*code=.+")); formData.clear(); formData.add("client_id", resource.getClientId()); formData.add("redirect_uri", resource.getPreEstablishedRedirectUri()); formData.add("grant_type", GRANT_TYPE_AUTHORIZATION_CODE); formData.add("code", location.split("code=")[1].split("&")[0]); HttpHeaders tokenHeaders = new HttpHeaders(); tokenHeaders.set("Authorization", testAccounts.getAuthorizationHeader(resource.getClientId(), resource.getClientSecret())); tokenHeaders.set("Cache-Control", "no-store"); @SuppressWarnings("rawtypes") ResponseEntity<Map> tokenResponse = serverRunning.postForMap("/oauth/token", formData, tokenHeaders); assertEquals(HttpStatus.OK, tokenResponse.getStatusCode()); @SuppressWarnings("unchecked") OAuth2AccessToken accessToken = DefaultOAuth2AccessToken.valueOf(tokenResponse.getBody()); // get the refresh token formData = new LinkedMultiValueMap<String, String>(); formData.add("grant_type", "refresh_token"); formData.add("refresh_token", accessToken.getRefreshToken().getValue()); tokenResponse = serverRunning.postForMap("/oauth/token", formData, tokenHeaders); assertEquals(HttpStatus.OK, tokenResponse.getStatusCode()); assertEquals("no-store", tokenResponse.getHeaders().getFirst("Cache-Control")); @SuppressWarnings("unchecked") OAuth2AccessToken newAccessToken = DefaultOAuth2AccessToken.valueOf(tokenResponse.getBody()); try { JwtHelper.decode(newAccessToken.getValue()); } catch (IllegalArgumentException e) { fail("Refreshed token was not a JWT"); } assertFalse("New access token should be different to the old one.", newAccessToken.getValue().equals(accessToken.getValue())); }
From source file:org.cloudfoundry.identity.uaa.integration.CheckTokenEndpointIntegrationTests.java
@Test public void testDecodeToken() { AuthorizationCodeResourceDetails resource = testAccounts.getDefaultAuthorizationCodeResource(); BasicCookieStore cookies = new BasicCookieStore(); URI uri = serverRunning.buildUri("/oauth/authorize").queryParam("response_type", "code") .queryParam("state", "mystateid").queryParam("client_id", resource.getClientId()) .queryParam("redirect_uri", resource.getPreEstablishedRedirectUri()).build(); ResponseEntity<Void> result = serverRunning.getForResponse(uri.toString(), getHeaders(cookies)); assertEquals(HttpStatus.FOUND, result.getStatusCode()); String location = result.getHeaders().getLocation().toString(); if (result.getHeaders().containsKey("Set-Cookie")) { for (String cookie : result.getHeaders().get("Set-Cookie")) { int nameLength = cookie.indexOf('='); cookies.addCookie( new BasicClientCookie(cookie.substring(0, nameLength), cookie.substring(nameLength + 1))); }/*from ww w . j av a 2 s .co m*/ } ResponseEntity<String> response = serverRunning.getForString(location, getHeaders(cookies)); if (response.getHeaders().containsKey("Set-Cookie")) { for (String cookie : response.getHeaders().get("Set-Cookie")) { int nameLength = cookie.indexOf('='); cookies.addCookie( new BasicClientCookie(cookie.substring(0, nameLength), cookie.substring(nameLength + 1))); } } // should be directed to the login screen... assertTrue(response.getBody().contains("/login.do")); assertTrue(response.getBody().contains("username")); assertTrue(response.getBody().contains("password")); String csrf = IntegrationTestUtils.extractCookieCsrf(response.getBody()); MultiValueMap<String, String> formData = new LinkedMultiValueMap<>(); formData.add("username", testAccounts.getUserName()); formData.add("password", testAccounts.getPassword()); formData.add(DEFAULT_CSRF_COOKIE_NAME, csrf); // Should be redirected to the original URL, but now authenticated result = serverRunning.postForResponse("/login.do", getHeaders(cookies), formData); assertEquals(HttpStatus.FOUND, result.getStatusCode()); if (result.getHeaders().containsKey("Set-Cookie")) { for (String cookie : result.getHeaders().get("Set-Cookie")) { int nameLength = cookie.indexOf('='); cookies.addCookie( new BasicClientCookie(cookie.substring(0, nameLength), cookie.substring(nameLength + 1))); } } response = serverRunning.getForString(result.getHeaders().getLocation().toString(), getHeaders(cookies)); if (response.getHeaders().containsKey("Set-Cookie")) { for (String cookie : response.getHeaders().get("Set-Cookie")) { int nameLength = cookie.indexOf('='); cookies.addCookie( new BasicClientCookie(cookie.substring(0, nameLength), cookie.substring(nameLength + 1))); } } if (response.getStatusCode() == HttpStatus.OK) { // The grant access page should be returned assertTrue(response.getBody().contains("<h1>Application Authorization</h1>")); formData.clear(); formData.add(DEFAULT_CSRF_COOKIE_NAME, IntegrationTestUtils.extractCookieCsrf(response.getBody())); formData.add(USER_OAUTH_APPROVAL, "true"); result = serverRunning.postForResponse("/oauth/authorize", getHeaders(cookies), formData); assertEquals(HttpStatus.FOUND, result.getStatusCode()); location = result.getHeaders().getLocation().toString(); } else { // Token cached so no need for second approval assertEquals(HttpStatus.FOUND, response.getStatusCode()); location = response.getHeaders().getLocation().toString(); } assertTrue("Wrong location: " + location, location.matches(resource.getPreEstablishedRedirectUri() + ".*code=.+")); formData.clear(); formData.add("client_id", resource.getClientId()); formData.add("redirect_uri", resource.getPreEstablishedRedirectUri()); formData.add("grant_type", GRANT_TYPE_AUTHORIZATION_CODE); formData.add("code", location.split("code=")[1].split("&")[0]); HttpHeaders tokenHeaders = new HttpHeaders(); tokenHeaders.set("Authorization", testAccounts.getAuthorizationHeader(resource.getClientId(), resource.getClientSecret())); @SuppressWarnings("rawtypes") ResponseEntity<Map> tokenResponse = serverRunning.postForMap("/oauth/token", formData, tokenHeaders); assertEquals(HttpStatus.OK, tokenResponse.getStatusCode()); @SuppressWarnings("unchecked") OAuth2AccessToken accessToken = DefaultOAuth2AccessToken.valueOf(tokenResponse.getBody()); HttpHeaders headers = new HttpHeaders(); formData = new LinkedMultiValueMap<String, String>(); headers.set("Authorization", testAccounts.getAuthorizationHeader(resource.getClientId(), resource.getClientSecret())); formData.add("token", accessToken.getValue()); tokenResponse = serverRunning.postForMap("/check_token", formData, headers); assertEquals(HttpStatus.OK, tokenResponse.getStatusCode()); @SuppressWarnings("unchecked") Map<String, String> map = tokenResponse.getBody(); assertNotNull(map.get("iss")); assertEquals(testAccounts.getUserName(), map.get("user_name")); assertEquals(testAccounts.getEmail(), map.get("email")); // Test that Spring's default converter can create an auth from the response. Authentication auth = (new DefaultUserAuthenticationConverter()).extractAuthentication(map); }
From source file:edu.mit.scratch.ScratchUser.java
public void setFollowing(final ScratchSession session, final boolean following) throws ScratchUserException { try {/*w ww . ja v a2s . co m*/ final RequestConfig globalConfig = RequestConfig.custom().setCookieSpec(CookieSpecs.DEFAULT).build(); final BasicCookieStore cookieStore = new BasicCookieStore(); final BasicClientCookie lang = new BasicClientCookie("scratchlanguage", "en"); final BasicClientCookie sessionid = new BasicClientCookie("scratchsessionsid", session.getSessionID()); final BasicClientCookie token = new BasicClientCookie("scratchcsrftoken", session.getCSRFToken()); final BasicClientCookie debug = new BasicClientCookie("DEBUG", "true"); lang.setDomain(".scratch.mit.edu"); lang.setPath("/"); sessionid.setDomain(".scratch.mit.edu"); sessionid.setPath("/"); token.setDomain(".scratch.mit.edu"); token.setPath("/"); debug.setDomain(".scratch.mit.edu"); debug.setPath("/"); cookieStore.addCookie(lang); cookieStore.addCookie(sessionid); cookieStore.addCookie(token); cookieStore.addCookie(debug); final CloseableHttpClient httpClient = HttpClients.custom().setDefaultRequestConfig(globalConfig) .setUserAgent(Scratch.USER_AGENT).setDefaultCookieStore(cookieStore).build(); CloseableHttpResponse resp; final HttpUriRequest update = RequestBuilder.put() .setUri("https://scratch.mit.edu/site-api/users/followers/" + this.getUsername() + "/" + ((following) ? "add" : "remove") + "/?usernames=" + session.getUsername()) .addHeader("Accept", "application/json, text/javascript, */*; q=0.01") .addHeader("Referer", "https://scratch.mit.edu/users/" + this.getUsername() + "/") .addHeader("Origin", "https://scratch.mit.edu") .addHeader("Accept-Encoding", "gzip, deflate, sdch") .addHeader("Accept-Language", "en-US,en;q=0.8").addHeader("Content-Type", "application/json") .addHeader("Content-Encoding", "gzip").addHeader("X-Requested-With", "XMLHttpRequest") .addHeader("Cookie", "scratchsessionsid=" + session.getSessionID() + "; scratchcsrftoken=" + session.getCSRFToken()) .addHeader("X-CSRFToken", session.getCSRFToken()).build(); try { resp = httpClient.execute(update); if (resp.getStatusLine().getStatusCode() != 200) throw new ScratchUserException(); } catch (final Exception e) { e.printStackTrace(); throw new ScratchUserException(); } BufferedReader rd; try { rd = new BufferedReader(new InputStreamReader(resp.getEntity().getContent())); } catch (UnsupportedOperationException | IOException e) { e.printStackTrace(); throw new ScratchUserException(); } final StringBuffer result = new StringBuffer(); String line = ""; while ((line = rd.readLine()) != null) result.append(line); // result = your json data } catch (final UnsupportedEncodingException e) { e.printStackTrace(); throw new ScratchUserException(); } catch (final IOException e) { e.printStackTrace(); throw new ScratchUserException(); } }
From source file:com.ibm.sbt.service.basic.ProxyService.java
protected boolean prepareForwardingCookies(HttpRequestBase method, HttpServletRequest request, DefaultHttpClient httpClient) throws ServletException { Object timedObject = ProxyProfiler.getTimedObject(); Cookie[] cookies = request.getCookies(); BasicCookieStore cs = new BasicCookieStore(); httpClient.setCookieStore(cs);/*from w ww . ja v a2s.c o m*/ if (cookies != null) { for (Cookie cookie : cookies) { if (cookie != null) { String cookiename = cookie.getName(); if (StringUtil.isNotEmpty(cookiename)) { String cookieval = cookie.getValue(); if (cookiename.startsWith(PASSTHRUID)) { cookiename = cookiename.substring(PASSTHRUID.length()); if (isCookieAllowed(cookiename)) { String[] parts = decodeCookieNameAndPath(cookiename); if (parts != null && parts.length == 3) { cookiename = parts[0]; String path = parts[1]; String domain = parts[2]; // Got stored domain now see if it matches destination BasicClientCookie methodcookie = new BasicClientCookie(cookiename, cookieval); methodcookie.setDomain(domain); methodcookie.setPath(path); cs.addCookie(methodcookie); if (getDebugHook() != null) { getDebugHook().getDumpRequest().addCookie(methodcookie.getName(), methodcookie.toString()); } } } } else if (isCookieAllowed(cookiename)) { BasicClientCookie methodcookie = new BasicClientCookie(cookiename, cookieval); String domain = cookie.getDomain(); if (domain == null) { try { domain = method.getURI().getHost(); domain = domain.substring(domain.indexOf('.')); } catch (Exception e) { domain = ""; } } methodcookie.setDomain(domain); String path = cookie.getPath(); if (path == null) { path = "/"; } methodcookie.setPath(path); cs.addCookie(methodcookie); if (getDebugHook() != null) { getDebugHook().getDumpRequest().addCookie(methodcookie.getName(), methodcookie.toString()); } } } } } } ProxyProfiler.profileTimedRequest(timedObject, "perpareForwardingCookie"); return true; }
From source file:org.activiti.designer.eclipse.navigator.cloudrepo.ActivitiCloudEditorUtil.java
public static CloseableHttpClient getAuthenticatedClient() { // Get settings from preferences String url = PreferencesUtil.getStringPreference(Preferences.ACTIVITI_CLOUD_EDITOR_URL); String userName = PreferencesUtil.getStringPreference(Preferences.ACTIVITI_CLOUD_EDITOR_USERNAME); String password = PreferencesUtil.getStringPreference(Preferences.ACTIVITI_CLOUD_EDITOR_PASSWORD); String cookieString = PreferencesUtil.getStringPreference(Preferences.ACTIVITI_CLOUD_EDITOR_COOKIE); Cookie cookie = null;/*ww w .ja v a 2 s.c o m*/ if (StringUtils.isNotEmpty(cookieString)) { ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream( hexStringToByteArray(cookieString)); try { ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream); cookie = (BasicClientCookie) objectInputStream.readObject(); } catch (Exception e) { e.printStackTrace(); } } // Build session BasicCookieStore cookieStore = new BasicCookieStore(); CloseableHttpClient httpClient = HttpClients.custom().setDefaultCookieStore(cookieStore).build(); if (cookie == null) { try { HttpUriRequest login = RequestBuilder.post().setUri(new URI(url + "/rest/app/authentication")) .addParameter("j_username", userName).addParameter("j_password", password) .addParameter("_spring_security_remember_me", "true").build(); CloseableHttpResponse response = httpClient.execute(login); try { EntityUtils.consume(response.getEntity()); List<Cookie> cookies = cookieStore.getCookies(); if (cookies.isEmpty()) { // nothing to do } else { Cookie reponseCookie = cookies.get(0); ByteArrayOutputStream os = new ByteArrayOutputStream(); ObjectOutputStream outputStream = new ObjectOutputStream(os); outputStream.writeObject(reponseCookie); PreferencesUtil.getActivitiDesignerPreferenceStore().setValue( Preferences.ACTIVITI_CLOUD_EDITOR_COOKIE.getPreferenceId(), byteArrayToHexString(os.toByteArray())); InstanceScope.INSTANCE.getNode(ActivitiPlugin.PLUGIN_ID).flush(); } } finally { response.close(); } } catch (Exception e) { Logger.logError("Error authenticating " + userName, e); } } else { // setting cookie from cache cookieStore.addCookie(cookie); } return httpClient; }