Java 类org.apache.http.conn.routing.RouteInfo.LayerType 实例源码
项目:purecloud-iot
文件:TestRequestAddCookies.java
@Test
public void testAuthDefaultHttpsPortWhenProxy() throws Exception {
final HttpRequest request = new BasicHttpRequest("GET", "/stuff");
this.target = new HttpHost("localhost", -1, "https");
final HttpRoute route = new HttpRoute(
new HttpHost("localhost", 443, "https"), null,
new HttpHost("localhost", 8888), true, TunnelType.TUNNELLED, LayerType.LAYERED);
final HttpClientContext context = HttpClientContext.create();
context.setAttribute(HttpCoreContext.HTTP_TARGET_HOST, this.target);
context.setAttribute(HttpClientContext.HTTP_ROUTE, route);
context.setAttribute(HttpClientContext.COOKIE_STORE, this.cookieStore);
context.setAttribute(HttpClientContext.COOKIESPEC_REGISTRY, this.cookieSpecRegistry);
final HttpRequestInterceptor interceptor = new RequestAddCookies();
interceptor.process(request, context);
final CookieOrigin cookieOrigin = context.getCookieOrigin();
Assert.assertNotNull(cookieOrigin);
Assert.assertEquals(this.target.getHostName(), cookieOrigin.getHost());
Assert.assertEquals(443, cookieOrigin.getPort());
Assert.assertEquals("/stuff", cookieOrigin.getPath());
Assert.assertTrue(cookieOrigin.isSecure());
}
项目:purecloud-iot
文件:TestRequestClientConnControl.java
@Test
public void testConnectionKeepAliveForTunneledRequests() throws Exception {
final HttpRequest request = new BasicHttpRequest("GET", "/");
final HttpClientContext context = HttpClientContext.create();
final HttpHost target = new HttpHost("localhost", 443, "https");
final HttpHost proxy = new HttpHost("localhost", 8080);
final HttpRoute route = new HttpRoute(target, null, proxy, true,
TunnelType.TUNNELLED, LayerType.LAYERED);
context.setAttribute(HttpClientContext.HTTP_ROUTE, route);
final HttpRequestInterceptor interceptor = new RequestClientConnControl();
interceptor.process(request, context);
final Header header1 = request.getFirstHeader(HTTP.CONN_DIRECTIVE);
Assert.assertNotNull(header1);
Assert.assertEquals(HTTP.CONN_KEEP_ALIVE, header1.getValue());
final Header header2 = request.getFirstHeader("Proxy-Connection");
Assert.assertNull(header2);
}
项目:purecloud-iot
文件:TestRequestClientConnControl.java
@Test
public void testProxyConnectionKeepAliveForRequestsOverProxy() throws Exception {
final HttpRequest request = new BasicHttpRequest("GET", "/");
final HttpClientContext context = HttpClientContext.create();
final HttpHost target = new HttpHost("localhost", 80, "http");
final HttpHost proxy = new HttpHost("localhost", 8080);
final HttpRoute route = new HttpRoute(target, null, proxy, false,
TunnelType.PLAIN, LayerType.PLAIN);
context.setAttribute(HttpClientContext.HTTP_ROUTE, route);
final HttpRequestInterceptor interceptor = new RequestClientConnControl();
interceptor.process(request, context);
final Header header1 = request.getFirstHeader("Proxy-Connection");
Assert.assertNotNull(header1);
Assert.assertEquals(HTTP.CONN_KEEP_ALIVE, header1.getValue());
final Header header2 = request.getFirstHeader(HTTP.CONN_DIRECTIVE);
Assert.assertNull(header2);
}
项目:purecloud-iot
文件:TestRequestClientConnControl.java
@Test
public void testPreserveCustomConnectionHeader() throws Exception {
final HttpRequest request = new BasicHttpRequest("GET", "/");
request.addHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_CLOSE);
final HttpClientContext context = HttpClientContext.create();
final HttpHost target = new HttpHost("localhost", 443, "https");
final HttpHost proxy = new HttpHost("localhost", 8080);
final HttpRoute route = new HttpRoute(target, null, proxy, true,
TunnelType.TUNNELLED, LayerType.LAYERED);
context.setAttribute(HttpClientContext.HTTP_ROUTE, route);
final HttpRequestInterceptor interceptor = new RequestClientConnControl();
interceptor.process(request, context);
final Header header1 = request.getFirstHeader(HTTP.CONN_DIRECTIVE);
Assert.assertNotNull(header1);
Assert.assertEquals(HTTP.CONN_CLOSE, header1.getValue());
final Header header2 = request.getFirstHeader("Proxy-Connection");
Assert.assertNull(header2);
}
项目:purecloud-iot
文件:TestRequestClientConnControl.java
@Test
public void testPreserveCustomProxyConnectionHeader() throws Exception {
final HttpRequest request = new BasicHttpRequest("GET", "/");
request.addHeader("Proxy-Connection", HTTP.CONN_CLOSE);
final HttpClientContext context = HttpClientContext.create();
final HttpHost target = new HttpHost("localhost", 80, "http");
final HttpHost proxy = new HttpHost("localhost", 8080);
final HttpRoute route = new HttpRoute(target, null, proxy, false,
TunnelType.PLAIN, LayerType.PLAIN);
context.setAttribute(HttpClientContext.HTTP_ROUTE, route);
final HttpRequestInterceptor interceptor = new RequestClientConnControl();
interceptor.process(request, context);
final Header header1 = request.getFirstHeader("Proxy-Connection");
Assert.assertNotNull(header1);
Assert.assertEquals(HTTP.CONN_CLOSE, header1.getValue());
}
项目:purecloud-iot
文件:TestHttpRoute.java
@SuppressWarnings("unused")
@Test
public void testCstr4() {
// test convenience constructor with 4 arguments
HttpRoute route = new HttpRoute(TARGET2, null, PROXY2, false);
HttpRoute should = new HttpRoute
(TARGET2, null, new HttpHost[]{ PROXY2 }, false,
TunnelType.PLAIN, LayerType.PLAIN);
Assert.assertEquals("bad convenience route 4/insecure", route, should);
route = new HttpRoute(TARGET2, LOCAL42, PROXY1, true);
should = new HttpRoute
(TARGET2, LOCAL42, new HttpHost[]{ PROXY1 }, true,
TunnelType.TUNNELLED, LayerType.LAYERED);
Assert.assertEquals("bad convenience route 4/secure", route, should);
// this constructor REQUIRES a proxy to be specified
try {
new HttpRoute(TARGET1, LOCAL61, null, false);
Assert.fail("missing proxy not detected");
} catch (final IllegalArgumentException iax) {
// expected
}
}
项目:purecloud-iot
文件:TestHttpRoute.java
@Test
public void testCstr6() {
// test convenience constructor with 6 arguments
HttpRoute route = new HttpRoute
(TARGET2, null, PROXY2, true,
TunnelType.TUNNELLED, LayerType.PLAIN);
HttpRoute should = new HttpRoute
(TARGET2, null, new HttpHost[]{ PROXY2 }, true,
TunnelType.TUNNELLED, LayerType.PLAIN);
Assert.assertEquals("bad convenience route 6/proxied", route, should);
route = new HttpRoute
(TARGET2, null, (HttpHost) null, true,
TunnelType.PLAIN, LayerType.LAYERED);
should = new HttpRoute
(TARGET2, null, (HttpHost[]) null, true,
TunnelType.PLAIN, LayerType.LAYERED);
Assert.assertEquals("bad convenience route 6/direct", route, should);
// handling of null vs. empty chain is checked in the equals tests
}
项目:purecloud-iot
文件:TestHttpRoute.java
@Test
public void testImmutable() throws CloneNotSupportedException {
final HttpHost[] proxies = new HttpHost[]{ PROXY1, PROXY2, PROXY3 };
final HttpRoute route1 = new HttpRoute(TARGET1, null, proxies, false,
TunnelType.PLAIN, LayerType.PLAIN);
final HttpRoute route2 = (HttpRoute) route1.clone();
final HttpRoute route3 = new HttpRoute(TARGET1, null,
proxies.clone(), false,
TunnelType.PLAIN, LayerType.PLAIN);
// modify the array that was passed to the constructor of route1
proxies[1] = PROXY3;
proxies[2] = PROXY2;
Assert.assertEquals("route differs from clone", route2, route1);
Assert.assertEquals("route was modified", route3, route1);
}
项目:purecloud-iot
文件:TestRouteTracker.java
/** Helper to check the status of the four flags. */
public final static void checkCTLS(final RouteTracker rt,
final boolean c, final boolean t,
final boolean l, final boolean s) {
final String rts = rt.toString();
Assert.assertEquals("wrong flag connected: " + rts, c, rt.isConnected());
Assert.assertEquals("wrong flag tunnelled: " + rts, t, rt.isTunnelled());
Assert.assertEquals("wrong enum tunnelled: " + rts,
t ? TunnelType.TUNNELLED : TunnelType.PLAIN,
rt.getTunnelType());
Assert.assertEquals("wrong flag layered: " + rts, l, rt.isLayered());
Assert.assertEquals("wrong enum layered: " + rts,
l ? LayerType.LAYERED : LayerType.PLAIN,
rt.getLayerType());
Assert.assertEquals("wrong flag secure: " + rts, s, rt.isSecure());
}
项目:purecloud-iot
文件:TestHttpRoute.java
@Test
public void testCstrFullRoute() {
// create a route with all arguments and check the details
final HttpHost[] chain3 = { PROXY1, PROXY2, PROXY3 };
final HttpRoute route = new HttpRoute(TARGET1, LOCAL41, chain3, false,
TunnelType.PLAIN, LayerType.PLAIN);
Assert.assertEquals("wrong target",
TARGET1, route.getTargetHost());
Assert.assertEquals("wrong local address",
LOCAL41, route.getLocalAddress());
Assert.assertEquals("wrong proxy host",
PROXY1, route.getProxyHost());
Assert.assertEquals("wrong hop count",
4, route.getHopCount());
Assert.assertEquals("wrong hop 0",
PROXY1, route.getHopTarget(0));
Assert.assertEquals("wrong hop 1",
PROXY2, route.getHopTarget(1));
Assert.assertEquals("wrong hop 2",
PROXY3, route.getHopTarget(2));
Assert.assertEquals("wrong hop 3",
TARGET1, route.getHopTarget(3));
Assert.assertFalse("wrong flag: secured", route.isSecure());
Assert.assertFalse("wrong flag: tunnelled", route.isTunnelled());
Assert.assertFalse("wrong flag: layered", route.isLayered());
final String routestr = route.toString();
Assert.assertTrue("missing target in toString",
routestr.contains(TARGET1.getHostName()));
Assert.assertTrue("missing local address in toString",
routestr.contains(LOCAL41.toString()));
Assert.assertTrue("missing proxy 1 in toString",
routestr.contains(PROXY1.getHostName()));
Assert.assertTrue("missing proxy 2 in toString",
routestr.contains(PROXY2.getHostName()));
Assert.assertTrue("missing proxy 3 in toString",
routestr.contains(PROXY3.getHostName()));
}
项目:purecloud-iot
文件:TestHttpRoute.java
@Test
public void testNullEnums() {
// tests the default values for the enum parameters
// also covers the accessors for the enum attributes
final HttpRoute route = new HttpRoute(TARGET1, null, PROXY1, false,
null, null); // here are defaults
Assert.assertFalse("default tunnelling", route.isTunnelled());
Assert.assertEquals("untunnelled", TunnelType.PLAIN, route.getTunnelType());
Assert.assertFalse("default layering", route.isLayered());
Assert.assertEquals("unlayered", LayerType.PLAIN, route.getLayerType());
}
项目:purecloud-iot
文件:TestHttpRoute.java
@Test
public void testCstr1() {
final HttpRoute route = new HttpRoute(TARGET2);
final HttpRoute should = new HttpRoute
(TARGET2, null, (HttpHost[]) null, false,
TunnelType.PLAIN, LayerType.PLAIN);
Assert.assertEquals("bad convenience route", route, should);
}
项目:purecloud-iot
文件:TestHttpRoute.java
@Test
public void testCstr3() {
// test convenience constructor with 3 arguments
HttpRoute route = new HttpRoute(TARGET2, LOCAL61, false);
HttpRoute should = new HttpRoute
(TARGET2, LOCAL61, (HttpHost[]) null, false,
TunnelType.PLAIN, LayerType.PLAIN);
Assert.assertEquals("bad convenience route 3/insecure", route, should);
route = new HttpRoute(TARGET2, null, true);
should = new HttpRoute(TARGET2, null, (HttpHost[]) null, true,
TunnelType.PLAIN, LayerType.PLAIN);
Assert.assertEquals("bad convenience route 3/secure", route, should);
}
项目:purecloud-iot
文件:TestRouteTracker.java
@Test
public void testProxyRoutes() {
final HttpRouteDirector rd = new BasicRouteDirector();
HttpRoute r = new HttpRoute(TARGET2, null, PROXY1, false);
RouteTracker rt = new RouteTracker(r);
boolean complete = checkVia(rt, r, rd, 2);
Assert.assertTrue("incomplete route 1", complete);
// tunnelled, but neither secure nor layered
r = new HttpRoute(TARGET1, LOCAL61, PROXY3, false,
TunnelType.TUNNELLED, LayerType.PLAIN);
rt = new RouteTracker(r);
complete = checkVia(rt, r, rd, 3);
Assert.assertTrue("incomplete route 2", complete);
// tunnelled, layered, but not secure
r = new HttpRoute(TARGET1, LOCAL61, PROXY3, false,
TunnelType.TUNNELLED, LayerType.LAYERED);
rt = new RouteTracker(r);
complete = checkVia(rt, r, rd, 4);
Assert.assertTrue("incomplete route 3", complete);
// tunnelled, layered, secure
r = new HttpRoute(TARGET1, LOCAL61, PROXY3, true);
rt = new RouteTracker(r);
complete = checkVia(rt, r, rd, 4);
Assert.assertTrue("incomplete route 4", complete);
}
项目:purecloud-iot
文件:TestRouteTracker.java
@Test
public void testProxyChainRoutes() {
final HttpRouteDirector rd = new BasicRouteDirector();
HttpHost[] proxies = { PROXY1, PROXY2 };
HttpRoute r = new HttpRoute(TARGET2, LOCAL42, proxies, false,
TunnelType.PLAIN, LayerType.PLAIN);
RouteTracker rt = new RouteTracker(r);
boolean complete = checkVia(rt, r, rd, 3);
Assert.assertTrue("incomplete route 1", complete);
// tunnelled, but neither secure nor layered
proxies = new HttpHost[]{ PROXY3, PROXY2 };
r = new HttpRoute(TARGET1, null, proxies, false,
TunnelType.TUNNELLED, LayerType.PLAIN);
rt = new RouteTracker(r);
complete = checkVia(rt, r, rd, 4);
Assert.assertTrue("incomplete route 2", complete);
// tunnelled, layered, but not secure
proxies = new HttpHost[]{ PROXY3, PROXY2, PROXY1 };
r = new HttpRoute(TARGET2, LOCAL61, proxies, false,
TunnelType.TUNNELLED, LayerType.LAYERED);
rt = new RouteTracker(r);
complete = checkVia(rt, r, rd, 6);
Assert.assertTrue("incomplete route 3", complete);
// tunnelled, layered, secure
proxies = new HttpHost[]{ PROXY1, PROXY3 };
r = new HttpRoute(TARGET1, LOCAL61, proxies, true,
TunnelType.TUNNELLED, LayerType.LAYERED);
rt = new RouteTracker(r);
complete = checkVia(rt, r, rd, 5);
Assert.assertTrue("incomplete route 4", complete);
}
项目:YiBo
文件:LibHttpRoutePlanner.java
public HttpRoute determineRoute(HttpHost target,
HttpRequest request,
HttpContext context)
throws HttpException {
if (request == null) {
throw new IllegalStateException("Request must not be null.");
}
// If we have a forced route, we can do without a target.
HttpRoute route =
ConnRouteParams.getForcedRoute(request.getParams());
if (route != null) {
return route;
}
// If we get here, there is no forced route.
// So we need a target to compute a route.
if (target == null) {
throw new IllegalStateException("Target host must not be null.");
}
final InetAddress local =
ConnRouteParams.getLocalAddress(request.getParams());
final Scheme schm = schemeRegistry.getScheme(target.getSchemeName());
// as it is typically used for TLS/SSL, we assume that
// a layered scheme implies a secure connection
final boolean secure = schm.isLayered();
if (proxyChain == null || proxyChain.length == 0) {
route = new HttpRoute(target, local, secure);
} else {
TunnelType tunnelType = secure ? TunnelType.TUNNELLED : TunnelType.PLAIN;
LayerType layereType = secure ? LayerType.LAYERED : LayerType.PLAIN;
return new HttpRoute(target, null, proxyChain, secure, tunnelType, layereType);
}
return route;
}
项目:yibo-library
文件:YiBoHttpRoutePlanner.java
public HttpRoute determineRoute(HttpHost target,
HttpRequest request,
HttpContext context)
throws HttpException {
if (request == null) {
throw new IllegalStateException("Request must not be null.");
}
// If we have a forced route, we can do without a target.
HttpRoute route =
ConnRouteParams.getForcedRoute(request.getParams());
if (route != null) {
return route;
}
// If we get here, there is no forced route.
// So we need a target to compute a route.
if (target == null) {
throw new IllegalStateException("Target host must not be null.");
}
final InetAddress local =
ConnRouteParams.getLocalAddress(request.getParams());
final Scheme schm = schemeRegistry.getScheme(target.getSchemeName());
// as it is typically used for TLS/SSL, we assume that
// a layered scheme implies a secure connection
final boolean secure = schm.isLayered();
if (proxyChain == null || proxyChain.length == 0) {
route = new HttpRoute(target, local, secure);
} else {
TunnelType tunnelType = secure ? TunnelType.TUNNELLED : TunnelType.PLAIN;
LayerType layereType = secure ? LayerType.LAYERED : LayerType.PLAIN;
return new HttpRoute(target, null, proxyChain, secure, tunnelType, layereType);
}
return route;
}
项目:purecloud-iot
文件:TestRouteDirector.java
@Test
public void testProxyChain() {
final HttpHost[] chainA = { PROXY1 };
final HttpHost[] chainB = { PROXY1, PROXY2 };
final HttpHost[] chainC = { PROXY2, PROXY1 };
final HttpRouteDirector rowdy = new BasicRouteDirector();
final HttpRoute route1cA = new HttpRoute(TARGET1, null, chainA, false,
TunnelType.PLAIN, LayerType.PLAIN);
final HttpRoute route1cB = new HttpRoute(TARGET1, null, chainB, false,
TunnelType.PLAIN, LayerType.PLAIN);
final HttpRoute route1cC = new HttpRoute(TARGET1, null, chainC, false,
TunnelType.PLAIN, LayerType.PLAIN);
final HttpRoute route1cD = new HttpRoute(TARGET1, null, chainC, false,
TunnelType.PLAIN, LayerType.PLAIN);
int step = rowdy.nextStep(route1cA, null);
Assert.assertEquals("wrong step to route1cA",
HttpRouteDirector.CONNECT_PROXY, step);
step = rowdy.nextStep(route1cB, null);
Assert.assertEquals("wrong step to route1cB",
HttpRouteDirector.CONNECT_PROXY, step);
step = rowdy.nextStep(route1cC, null);
Assert.assertEquals("wrong step to route1cC",
HttpRouteDirector.CONNECT_PROXY, step);
step = rowdy.nextStep(route1cD, null);
Assert.assertEquals("wrong step to route1cD",
HttpRouteDirector.CONNECT_PROXY, step);
step = rowdy.nextStep(route1cB, route1cA);
Assert.assertEquals("wrong step to route 1cB from 1cA",
HttpRouteDirector.TUNNEL_PROXY, step);
step = rowdy.nextStep(route1cB, route1cB);
Assert.assertEquals("complete route 1cB not detected",
HttpRouteDirector.COMPLETE, step);
step = rowdy.nextStep(route1cB, route1cC);
Assert.assertEquals("unreachable route 1cB from 1cC not detected",
HttpRouteDirector.UNREACHABLE, step);
step = rowdy.nextStep(route1cB, route1cD);
Assert.assertEquals("unreachable route 1cB from 1cD not detected",
HttpRouteDirector.UNREACHABLE, step);
step = rowdy.nextStep(route1cA, route1cB);
Assert.assertEquals("unreachable route 1cA from 1cB not detected",
HttpRouteDirector.UNREACHABLE, step);
}