org.apache.http.cookie.MalformedCookieException#org.apache.http.cookie.CookieOrigin源码实例Demo

下面列出了org.apache.http.cookie.MalformedCookieException#org.apache.http.cookie.CookieOrigin 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: lucene-solr   文件: SolrPortAwareCookieSpecTest.java
@Test
public void testDomainHostPortMatch() throws Exception {
  final BasicClientCookie cookie = new BasicClientCookie("name", "value");
  final CookieOrigin origin = new CookieOrigin("myhost", 80, "/", false);
  final CookieAttributeHandler h = new SolrPortAwareCookieSpecFactory.PortAwareDomainHandler();

  cookie.setDomain("myhost");
  SolrTestCaseJ4.expectThrows(IllegalArgumentException.class, () -> h.match(cookie, null));

  cookie.setDomain(null);
  Assert.assertFalse(h.match(cookie, origin));

  cookie.setDomain("otherhost");
  Assert.assertFalse(h.match(cookie, origin));

  cookie.setDomain("myhost");
  Assert.assertTrue(h.match(cookie, origin));

  cookie.setDomain("myhost:80");
  Assert.assertTrue(h.match(cookie, origin));

  cookie.setDomain("myhost:8080");
  Assert.assertFalse(h.match(cookie, origin));
}
 
源代码2 项目: htmlunit   文件: CookieManager.java
/**
 * Helper that builds a CookieOrigin.
 * @param url the url to be used
 * @return the new CookieOrigin
 */
public CookieOrigin buildCookieOrigin(final URL url) {
    final URL normalizedUrl = replaceForCookieIfNecessary(url);

    return new CookieOrigin(
            normalizedUrl.getHost(),
            getPort(normalizedUrl),
            normalizedUrl.getPath(),
            "https".equals(normalizedUrl.getProtocol()));
}
 
源代码3 项目: htmlunit   文件: HtmlUnitDomainHandler.java
/**
 * {@inheritDoc}
 */
@Override
public boolean match(final Cookie cookie, final CookieOrigin origin) {
    String domain = cookie.getDomain();
    if (domain == null) {
        return false;
    }

    final int dotIndex = domain.indexOf('.');
    if (dotIndex == 0 && domain.length() > 1 && domain.indexOf('.', 1) == -1) {
        final String host = origin.getHost();
        domain = domain.toLowerCase(Locale.ROOT);
        if (browserVersion_.hasFeature(HTTP_COOKIE_REMOVE_DOT_FROM_ROOT_DOMAINS)) {
            domain = domain.substring(1);
        }
        return host.equals(domain);
    }

    if (dotIndex == -1
            && !HtmlUnitBrowserCompatCookieSpec.LOCAL_FILESYSTEM_DOMAIN.equalsIgnoreCase(domain)) {
        try {
            InetAddress.getByName(domain);
        }
        catch (final UnknownHostException e) {
            return false;
        }
    }

    return super.match(cookie, origin);
}
 
源代码4 项目: htmlunit   文件: CookieManager3Test.java
/**
 * Test that " are not discarded.
 * Once this test passes, our hack in HttpWebConnection.HtmlUnitBrowserCompatCookieSpec can safely be removed.
 * @see <a href="https://issues.apache.org/jira/browse/HTTPCLIENT-1006">HttpClient bug 1006</a>
 * @throws Exception if the test fails
 */
@Test
public void httpClientParsesCookiesQuotedValuesCorrectly() throws Exception {
    final Header header = new BasicHeader("Set-Cookie", "first=\"hello world\"");
    final DefaultCookieSpec spec = new DefaultCookieSpec();
    final CookieOrigin origin = new CookieOrigin("localhost", 80, "/", false);
    final List<org.apache.http.cookie.Cookie> list = spec.parse(header, origin);
    assertEquals(1, list.size());
    assertEquals("\"hello world\"", list.get(0).getValue());
}
 
public void validate(final Cookie cookie, final CookieOrigin origin)
    throws MalformedCookieException {
  if (origin != null && origin.getHost() != null && cookie != null) {
    String hostPort = origin.getHost() + ":" + origin.getPort();
    String domain = cookie.getDomain();

    if (hostPort.equals(domain)) {
      return;
    }
  }
  super.validate(cookie, origin);
}
 
@Override
public boolean match(final Cookie cookie, final CookieOrigin origin) {
  if (origin != null && origin.getHost() != null && cookie != null) {
    String hostPort = origin.getHost() + ":" + origin.getPort();
    String domain = cookie.getDomain();
    if (hostPort.equals(domain)) {
      return true;
    }
  }
  return super.match(cookie, origin);
}
 
源代码7 项目: lucene-solr   文件: SolrPortAwareCookieSpecTest.java
@Test
public void testDomainHostPortValidate() throws Exception {
  final BasicClientCookie cookie = new BasicClientCookie("name", "value");
  final CookieOrigin origin = new CookieOrigin("somehost", 80, "/", false);
  final CookieAttributeHandler h = new SolrPortAwareCookieSpecFactory.PortAwareDomainHandler();

  cookie.setDomain("somehost:80");
  h.validate(cookie, origin);

  cookie.setDomain("somehost:1234");
  SolrTestCaseJ4.expectThrows(MalformedCookieException.class, () -> h.validate(cookie, origin));
}
 
源代码8 项目: lucene-solr   文件: SolrPortAwareCookieSpecTest.java
@Test
public void testDomainValidate1() throws Exception {
  final BasicClientCookie cookie = new BasicClientCookie("name", "value");
  final CookieOrigin origin = new CookieOrigin("somehost", 80, "/", false);
  final CookieAttributeHandler h = new SolrPortAwareCookieSpecFactory.PortAwareDomainHandler();

  cookie.setDomain("somehost");
  h.validate(cookie, origin);

  cookie.setDomain("otherhost");
  SolrTestCaseJ4.expectThrows(MalformedCookieException.class, () ->  h.validate(cookie, origin));
}
 
源代码9 项目: lucene-solr   文件: SolrPortAwareCookieSpecTest.java
@Test
public void testDomainValidate2() throws Exception {
  final BasicClientCookie cookie = new BasicClientCookie("name", "value");
  final CookieOrigin origin = new CookieOrigin("www.somedomain.com", 80, "/", false);
  final CookieAttributeHandler h = new SolrPortAwareCookieSpecFactory.PortAwareDomainHandler();

  cookie.setDomain(".somedomain.com");
  h.validate(cookie, origin);

  cookie.setDomain(".otherdomain.com");
  SolrTestCaseJ4.expectThrows(MalformedCookieException.class, () ->  h.validate(cookie, origin));

  cookie.setDomain("www.otherdomain.com");
  SolrTestCaseJ4.expectThrows(MalformedCookieException.class, () ->  h.validate(cookie, origin));
}
 
源代码10 项目: lucene-solr   文件: SolrPortAwareCookieSpecTest.java
@Test
public void testDomainValidate3() throws Exception {
  final BasicClientCookie cookie = new BasicClientCookie("name", "value");
  final CookieOrigin origin = new CookieOrigin("www.a.com", 80, "/", false);
  final CookieAttributeHandler h = new SolrPortAwareCookieSpecFactory.PortAwareDomainHandler();

  cookie.setDomain(".a.com");
  h.validate(cookie, origin);

  cookie.setDomain(".com");
  SolrTestCaseJ4.expectThrows(MalformedCookieException.class, () ->  h.validate(cookie, origin));
}
 
源代码11 项目: lucene-solr   文件: SolrPortAwareCookieSpecTest.java
@Test
public void testDomainValidate4() throws Exception {
  final BasicClientCookie cookie = new BasicClientCookie("name", "value");
  final CookieOrigin origin = new CookieOrigin("www.a.b.c", 80, "/", false);
  final CookieAttributeHandler h = new SolrPortAwareCookieSpecFactory.PortAwareDomainHandler();

  cookie.setDomain(".a.b.c");
  h.validate(cookie, origin);

  cookie.setDomain(".b.c");
  SolrTestCaseJ4.expectThrows(MalformedCookieException.class, () ->  h.validate(cookie, origin));
}
 
源代码12 项目: lucene-solr   文件: SolrPortAwareCookieSpecTest.java
@Test
public void testDomainMatch1() throws Exception {
  final BasicClientCookie cookie = new BasicClientCookie("name", "value");
  final CookieOrigin origin = new CookieOrigin("www.somedomain.com", 80, "/", false);
  final CookieAttributeHandler h = new SolrPortAwareCookieSpecFactory.PortAwareDomainHandler();

  cookie.setDomain(null);
  Assert.assertFalse(h.match(cookie, origin));

  cookie.setDomain(".somedomain.com");
  Assert.assertTrue(h.match(cookie, origin));
}
 
源代码13 项目: lucene-solr   文件: SolrPortAwareCookieSpecTest.java
@Test
public void testDomainMatch2() throws Exception {
  final BasicClientCookie cookie = new BasicClientCookie("name", "value");
  final CookieOrigin origin = new CookieOrigin("www.whatever.somedomain.com", 80, "/", false);
  final CookieAttributeHandler h = new SolrPortAwareCookieSpecFactory.PortAwareDomainHandler();

  cookie.setDomain(".somedomain.com");
  Assert.assertTrue(h.match(cookie, origin));
}
 
源代码14 项目: esigate   文件: HttpResponseUtils.java
/**
 * Removes ";jsessionid=&lt;id&gt;" from the url, if the session id is also set in "httpResponse".
 * <p>
 * This methods first looks for the following header :
 * 
 * <pre>
 * Set-Cookie: JSESSIONID=
 * </pre>
 * 
 * If found and perfectly matches the jsessionid value in url, the complete jsessionid definition is removed from
 * the url.
 * 
 * @param uri
 *            original uri, may contains a jsessionid.
 * @param httpResponse
 *            the response which set the jsessionId
 * @return uri, without jsession
 */
public static String removeSessionId(String uri, HttpResponse httpResponse) {
    CookieSpec cookieSpec = new DefaultCookieSpec();
    // Dummy origin, used only by CookieSpec for setting the domain for the
    // cookie but we don't need it
    CookieOrigin cookieOrigin = new CookieOrigin("dummy", Http.DEFAULT_HTTP_PORT, "/", false);
    Header[] responseHeaders = httpResponse.getHeaders("Set-cookie");
    String jsessionid = null;
    for (Header header : responseHeaders) {
        try {
            List<Cookie> cookies = cookieSpec.parse(header, cookieOrigin);
            for (Cookie cookie : cookies) {
                if ("JSESSIONID".equalsIgnoreCase(cookie.getName())) {
                    jsessionid = cookie.getValue();
                }
                break;
            }
        } catch (MalformedCookieException ex) {
            LOG.warn("Malformed header: " + header.getName() + ": " + header.getValue());
        }
        if (jsessionid != null) {
            break;
        }
    }
    if (jsessionid == null) {
        return uri;
    }

    return UriUtils.removeSessionId(jsessionid, uri);

}
 
public void testAcceptCookieWithLongerPathThanRequestPath() throws Exception {
    Header header = new BasicHeader("Set-Cookie", "wordpress_dce20=admin%7Ca; Path=/wp-content/plugins");
    CookieOrigin origin = new CookieOrigin("www.foo.com", Http.DEFAULT_HTTP_PORT, "/wp-login.php", false);
    Cookie cookie = cookieSpec.parse(header, origin).get(0);
    cookieSpec.validate(cookie, origin);
    // BrowserCompatSpec would throw an exception:
    // org.apache.http.cookie.CookieRestrictionViolationException: Illegal path attribute "/wp-content/plugins".
    // Path of origin: "/wp-login.php"
}
 
源代码16 项目: esigate   文件: CookieUtilTest.java
public void testHttpOnlyCookie() throws Exception {

        String expires = format.format(new Date(System.currentTimeMillis() + ONE_DAY));
        Header header =
                new BasicHeader("Set-Cookie", "K_lm_66638=121203111217326896; Domain=.foo.com; Expires=" + expires
                        + "; HttpOnly;Secure;Path=/");
        CookieOrigin origin = new CookieOrigin("www.foo.com", Http.DEFAULT_HTTP_PORT, "/", false);
        Cookie src = cookieSpec.parse(header, origin).get(0);
        String result = CookieUtil.encodeCookie(src);
        HttpCookie httpcookie = HttpCookie.parse(result).get(0);
        assertTrue("Should be an httponly cookie", httpcookie.isHttpOnly());
        assertTrue("Should be a secure cookie", httpcookie.getSecure());
    }
 
源代码17 项目: esigate   文件: CookieUtilTest.java
public void testRewriteCookieExpires() throws Exception {
    String expires = format.format(new Date(System.currentTimeMillis() + ONE_DAY));
    Header header =
            new BasicHeader("Set-Cookie", "K_lm_66638=121203111217326896; Domain=.foo.com; Expires=" + expires
                    + "; Path=/");
    CookieOrigin origin = new CookieOrigin("www.foo.com", Http.DEFAULT_HTTP_PORT, "/", false);
    Cookie src = cookieSpec.parse(header, origin).get(0);
    String result = CookieUtil.encodeCookie(src);
    HttpCookie httpcookie = HttpCookie.parse(result).get(0);
    assertTrue("maxAge should be greater than 86395, actual value " + httpcookie.getMaxAge(),
            httpcookie.getMaxAge() > 86395);
    assertTrue("maxAge should be lower than 86401, actual value " + httpcookie.getMaxAge(),
            httpcookie.getMaxAge() < 86401);
}
 
源代码18 项目: esigate   文件: CookieUtilTest.java
public void testRewriteCookieExpiresLongTime() throws Exception {
    String expires = format.format(new Date(System.currentTimeMillis() + 15552000000L));
    Header header =
            new BasicHeader("Set-Cookie", "K_66638=121203111217326896; Domain=.foo.com; Expires=" + expires
                    + "; Path=/");
    CookieOrigin origin = new CookieOrigin("www.foo.com", Http.DEFAULT_HTTP_PORT, "/", false);
    Cookie src = cookieSpec.parse(header, origin).get(0);
    String result = CookieUtil.encodeCookie(src);
    HttpCookie httpcookie = HttpCookie.parse(result).get(0);
    assertTrue("maxAge should be greater than 15551995, actual value " + httpcookie.getMaxAge(),
            httpcookie.getMaxAge() > 15551995);
    assertTrue("maxAge should be lower than 15552001, actual value " + httpcookie.getMaxAge(),
            httpcookie.getMaxAge() < 15552001);
}
 
源代码19 项目: esigate   文件: CookieUtilTest.java
public void testCookieValueWithSpacesVersion1IsQuoted() throws Exception {
    String cookieString = "myCookie=\"value with spaces\"; Domain=www.foo.com; Path=/; Version=1";
    Header header = new BasicHeader("Set-Cookie", cookieString);
    CookieOrigin origin = new CookieOrigin("www.foo.com", Http.DEFAULT_HTTP_PORT, "/", false);
    Cookie cookie = cookieSpec.parse(header, origin).get(0);
    cookieSpec.validate(cookie, origin);
    String result = CookieUtil.encodeCookie(cookie);
    assertEquals(cookieString, result);
}
 
源代码20 项目: esigate   文件: CookieUtilTest.java
public void testCookieValueWithoutQuotesIsNotQuoted() throws Exception {
    String cookieString = "myCookie=value; Domain=www.foo.com; Path=/";
    Header header = new BasicHeader("Set-Cookie", cookieString);
    CookieOrigin origin = new CookieOrigin("www.foo.com", Http.DEFAULT_HTTP_PORT, "/", false);
    Cookie cookie = cookieSpec.parse(header, origin).get(0);
    String result = CookieUtil.encodeCookie(cookie);
    assertEquals(cookieString, result);
}
 
源代码21 项目: esigate   文件: CookieUtilTest.java
public void testCookieValueWithoutDotsAndSlashIsNotQuoted() throws Exception {
    String cookieString = "myCookie=value./; Domain=www.foo.com; Path=/";
    Header header = new BasicHeader("Set-Cookie", cookieString);
    CookieOrigin origin = new CookieOrigin("www.foo.com", Http.DEFAULT_HTTP_PORT, "/", false);
    Cookie cookie = cookieSpec.parse(header, origin).get(0);
    String result = CookieUtil.encodeCookie(cookie);
    assertEquals(cookieString, result);
}
 
源代码22 项目: htmlunit   文件: HtmlUnitPathHandler.java
@Override
public void validate(final Cookie cookie, final CookieOrigin origin) throws MalformedCookieException {
    // nothing, browsers seem not to perform any validation
}
 
源代码23 项目: htmlunit   文件: HtmlUnitHttpOnlyHandler.java
@Override
public void validate(final Cookie cookie, final CookieOrigin origin) throws MalformedCookieException {
    // nothing
}
 
源代码24 项目: htmlunit   文件: HtmlUnitHttpOnlyHandler.java
@Override
public boolean match(final Cookie cookie, final CookieOrigin origin) {
    return true;
}
 
源代码25 项目: karate   文件: LenientCookieSpec.java
@Override
public boolean match(Cookie cookie, CookieOrigin origin) {
    return true;
}
 
源代码26 项目: karate   文件: LenientCookieSpec.java
@Override
public void validate(Cookie cookie, CookieOrigin origin) throws MalformedCookieException {
    // do nothing
}
 
源代码27 项目: nexus-public   文件: NexusITSupport.java
/**
 * @return CookieOrigin suitable for validating session cookies from the given base URL
 */
protected CookieOrigin cookieOrigin(final URL url) {
  return new CookieOrigin(url.getHost(), url.getPort(), cookiePath(url), "https".equals(url.getProtocol()));
}
 
源代码28 项目: nexus-public   文件: NexusITSupport.java
/**
 * @return CookieOrigin suitable for validating session cookies from the given base URL
 */
protected CookieOrigin cookieOrigin(final URL url) {
  return new CookieOrigin(url.getHost(), url.getPort(), cookiePath(url), "https".equals(url.getProtocol()));
}