private void cookies(MockHttpServletRequest request) { List<Cookie> cookies = new ArrayList<>(); String cookieHeaderValue = header("Cookie"); if (cookieHeaderValue != null) { StringTokenizer tokens = new StringTokenizer(cookieHeaderValue, "=;"); while (tokens.hasMoreTokens()) { String cookieName = tokens.nextToken().trim(); Assert.isTrue(tokens.hasMoreTokens(), () -> "Expected value for cookie name '" + cookieName + "': full cookie header was [" + cookieHeaderValue + "]"); String cookieValue = tokens.nextToken().trim(); processCookie(request, cookies, new Cookie(cookieName, cookieValue)); } } Set<com.gargoylesoftware.htmlunit.util.Cookie> managedCookies = this.webClient.getCookies(this.webRequest.getUrl()); for (com.gargoylesoftware.htmlunit.util.Cookie cookie : managedCookies) { processCookie(request, cookies, new Cookie(cookie.getName(), cookie.getValue())); } Cookie[] parentCookies = request.getCookies(); if (parentCookies != null) { for (Cookie cookie : parentCookies) { cookies.add(cookie); } } if (!ObjectUtils.isEmpty(cookies)) { request.setCookies(cookies.toArray(new Cookie[0])); } }
private void assertSingleSessionCookie(String expected) { com.gargoylesoftware.htmlunit.util.Cookie jsessionidCookie = webClient.getCookieManager().getCookie("JSESSIONID"); if (expected == null || expected.contains("Expires=Thu, 01-Jan-1970 00:00:01 GMT")) { assertThat(jsessionidCookie, nullValue()); return; } String actual = jsessionidCookie.getValue(); assertThat("JSESSIONID=" + actual + "; Path=/test; Domain=example.com", equalTo(expected)); }
private void cookies(WebTestClient.RequestBodySpec request, WebRequest webRequest) { String cookieHeaderValue = header("Cookie", webRequest); if (cookieHeaderValue != null) { StringTokenizer tokens = new StringTokenizer(cookieHeaderValue, "=;"); while (tokens.hasMoreTokens()) { String cookieName = tokens.nextToken().trim(); Assert.isTrue(tokens.hasMoreTokens(), () -> "Expected value for cookie name '" + cookieName + "': full cookie header was [" + cookieHeaderValue + "]"); String cookieValue = tokens.nextToken().trim(); request.cookie(cookieName, cookieValue); } } Set<com.gargoylesoftware.htmlunit.util.Cookie> managedCookies = this.webClient.getCookies(webRequest.getUrl()); for (com.gargoylesoftware.htmlunit.util.Cookie cookie : managedCookies) { request.cookie(cookie.getName(), cookie.getValue()); } }
private void addCookiesToRequest(InProcRequest httpTester) { Set<Cookie> cookies = cookieManager.getCookies(); if (!cookies.isEmpty()) { List<String> cookieStrings = new ArrayList<>(); for (Cookie cookie : cookies) { cookieStrings.add(cookie.getName() + "=" + cookie.getValue()); } String cookieHeaderValue = StringUtils.join(cookieStrings, "; "); httpTester.addHeader("Cookie", cookieHeaderValue); } }
private void addCookiesToRequest(InProcRequest httpTester) { Set<Cookie> cookies = cookieManager.getCookies(); if (!cookies.isEmpty()) { List<String> cookieStrings = new ArrayList<String>(); for (Cookie cookie : cookies) { cookieStrings.add(cookie.getName() + "=" + cookie.getValue()); } String cookieHeaderValue = StringUtils.join(cookieStrings, "; "); httpTester.addHeader("Cookie", cookieHeaderValue); } }
String inspectCookies(Collection<Cookie> col) { String out = ""; out += "Size:" + col.size(); ArrayList<Cookie> sorted = new ArrayList<>(); sorted.addAll(col); Collections.sort(sorted, (c1, c2) -> c1.getName().compareTo(c2.getName())); for (Cookie c : sorted) { out += c.getName() + "=" + c.getValue() + " [" + c.getDomain() + "]\n"; } return out; }
/** * {@inheritDoc} */ @Override public List<HttpCookie> get(final URI uri) { final List<HttpCookie> cookies = new ArrayList<>(); try { final String urlString = uri.toString().replace("ws://", "http://").replace("wss://", "https://"); final java.net.URL url = new java.net.URL(urlString); for (final Cookie cookie : webClient_.getCookies(url)) { final HttpCookie httpCookie = new HttpCookie(cookie.getName(), cookie.getValue()); httpCookie.setVersion(0); cookies.add(httpCookie); } } catch (final Exception e) { throw new RuntimeException(e); } return cookies; }
/** * {@inheritDoc} */ @Override public List<HttpCookie> get(final URI uri) { final List<HttpCookie> cookies = new ArrayList<>(); try { final String urlString = uri.toString().replace("ws://", "http://").replace("wss://", "https://"); final java.net.URL url = new java.net.URL(urlString); for (final Cookie cookie : webClient_.getCookies(url)) { final HttpCookie httpCookie = new HttpCookie(cookie.getName(), cookie.getValue()); httpCookie.setVersion(0); cookies.add(httpCookie); } } catch (final Exception e) { throw new RuntimeException(e); } return cookies; }
private void cookies(MockHttpServletRequest request) { List<Cookie> cookies = new ArrayList<>(); String cookieHeaderValue = header("Cookie"); if (cookieHeaderValue != null) { StringTokenizer tokens = new StringTokenizer(cookieHeaderValue, "=;"); while (tokens.hasMoreTokens()) { String cookieName = tokens.nextToken().trim(); Assert.isTrue(tokens.hasMoreTokens(), () -> "Expected value for cookie name '" + cookieName + "': full cookie header was [" + cookieHeaderValue + "]"); String cookieValue = tokens.nextToken().trim(); processCookie(request, cookies, new Cookie(cookieName, cookieValue)); } } Set<com.gargoylesoftware.htmlunit.util.Cookie> managedCookies = this.webClient.getCookies(this.webRequest.getUrl()); for (com.gargoylesoftware.htmlunit.util.Cookie cookie : managedCookies) { processCookie(request, cookies, new Cookie(cookie.getName(), cookie.getValue())); } Cookie[] parentCookies = request.getCookies(); if (parentCookies != null) { for (Cookie cookie : parentCookies) { cookies.add(cookie); } } if (!ObjectUtils.isEmpty(cookies)) { request.setCookies(cookies.toArray(new Cookie[0])); } }
private void cookies(MockHttpServletRequest request) { List<Cookie> cookies = new ArrayList<Cookie>(); String cookieHeaderValue = header("Cookie"); if (cookieHeaderValue != null) { StringTokenizer tokens = new StringTokenizer(cookieHeaderValue, "=;"); while (tokens.hasMoreTokens()) { String cookieName = tokens.nextToken().trim(); if (!tokens.hasMoreTokens()) { throw new IllegalArgumentException("Expected value for cookie name '" + cookieName + "': full cookie header was [" + cookieHeaderValue + "]"); } String cookieValue = tokens.nextToken().trim(); processCookie(request, cookies, new Cookie(cookieName, cookieValue)); } } Set<com.gargoylesoftware.htmlunit.util.Cookie> managedCookies = this.webClient.getCookies(this.webRequest.getUrl()); for (com.gargoylesoftware.htmlunit.util.Cookie cookie : managedCookies) { processCookie(request, cookies, new Cookie(cookie.getName(), cookie.getValue())); } Cookie[] parentCookies = request.getCookies(); if (parentCookies != null) { for (Cookie cookie : parentCookies) { cookies.add(cookie); } } if (!ObjectUtils.isEmpty(cookies)) { request.setCookies(cookies.toArray(new Cookie[cookies.size()])); } }
public void saveCookies() throws IOException { CookieManager cm = getWebClient().getCookieManager(); ArrayList<BasicClientCookie> list = new ArrayList<>(); for (Cookie c : cm.getCookies()) { BasicClientCookie bc = new BasicClientCookie(c.getName(), c.getValue()); bc.setDomain(c.getDomain()); bc.setPath(c.getPath()); list.add(bc); } File cookiesFile = Directories.META.getDir(cookiesFileName); if (cookiesFile.exists()) { cookiesFile.delete(); } String o = new Gson().toJson(list); FileUtils.writeByteArrayToFile(cookiesFile, o.getBytes()); } /*
/** * {@inheritDoc} */ @Override @JsxGetter public String getCookie() { final HtmlPage page = getPage(); final URL url = page.getUrl(); final StringBuilder builder = new StringBuilder(); final Set<Cookie> cookies = page.getWebClient().getCookies(url); for (final Cookie cookie : cookies) { if (cookie.isHttpOnly()) { continue; } if (builder.length() != 0) { builder.append("; "); } if (!HtmlUnitBrowserCompatCookieSpec.EMPTY_COOKIE_NAME.equals(cookie.getName())) { builder.append(cookie.getName()); builder.append("="); } builder.append(cookie.getValue()); } return builder.toString(); }
public WebResponse getResponse( WebRequest request ) throws IOException { Cookie jsCookie = webClient.getCookieManager().getCookie("JSESSIONID"); if (jsCookie != null && (!jsCookie.getValue().startsWith("\"") && !jsCookie.getValue().endsWith("\""))) { Cookie newCookie = new Cookie(jsCookie.getDomain(), jsCookie.getName(), "\"" + jsCookie.getValue() + "\"", jsCookie.getPath(), jsCookie.getExpires(), jsCookie.isSecure()); webClient.getCookieManager().removeCookie(jsCookie); webClient.getCookieManager().addCookie(newCookie); } return super.getResponse(request); } };
/** * {@inheritDoc} */ @Override @JsxGetter public String getCookie() { final HtmlPage page = getPage(); final URL url = page.getUrl(); final StringBuilder builder = new StringBuilder(); final Set<Cookie> cookies = page.getWebClient().getCookies(url); for (final Cookie cookie : cookies) { if (cookie.isHttpOnly()) { continue; } if (builder.length() != 0) { builder.append("; "); } if (!HtmlUnitBrowserCompatCookieSpec.EMPTY_COOKIE_NAME.equals(cookie.getName())) { builder.append(cookie.getName()); builder.append('='); } builder.append(cookie.getValue()); } return builder.toString(); }
@Override public List<javax.servlet.http.Cookie> getCookies() { List<javax.servlet.http.Cookie> result = new LinkedList<javax.servlet.http.Cookie>(); Set<Cookie> cookies = wc.getCookieManager().getCookies(); for (Cookie cookie : cookies) { javax.servlet.http.Cookie c = new javax.servlet.http.Cookie( cookie.getName(), cookie.getValue()); c.setComment(cookie.toHttpClient().getComment()); c.setDomain(cookie.getDomain()); Date expire = cookie.toHttpClient().getExpiryDate(); if (expire == null) { c.setMaxAge(-1); } else { Date now = Calendar.getInstance().getTime(); // Convert milli-second to second Long second = Long.valueOf((expire.getTime() - now.getTime()) / 1000); c.setMaxAge(second.intValue()); } c.setPath(cookie.getPath()); c.setSecure(cookie.toHttpClient().isSecure()); c.setVersion(cookie.toHttpClient().getVersion()); result.add(c); } return result; }
assertNotNull(cid); assertFalse(cid.isEmpty()); String jsessionid = client.getCookieManager().getCookie(JSESSIONID).getValue(); assertNotNull(jsessionid); assertFalse(jsessionid.isEmpty());
/** * {@inheritDoc} */ @Override public String toString() { return getName() + "=" + getValue() + (getDomain() != null ? ";domain=" + getDomain() : "") + (getPath() != null ? ";path=" + getPath() : "") + (getExpires() != null ? ";expires=" + getExpires() : "") + (isSecure() ? ";secure" : "") + (isHttpOnly() ? ";httpOnly" : ""); }
/** * {@inheritDoc} */ @Override public String toString() { return getName() + "=" + getValue() + (getDomain() != null ? ";domain=" + getDomain() : "") + (getPath() != null ? ";path=" + getPath() : "") + (getExpires() != null ? ";expires=" + getExpires() : "") + (isSecure() ? ";secure" : "") + (isHttpOnly() ? ";httpOnly" : ""); }