@Override public String getHost(Request request) { return request.getHost(); }
protected void send(final Request request, List<Response.ResponseListener> listeners) { String scheme = request.getScheme().toLowerCase(Locale.ENGLISH); if (!Arrays.asList("http", "https").contains(scheme)) throw new IllegalArgumentException("Invalid protocol " + scheme); HttpDestination destination = destinationFor(scheme, request.getHost(), request.getPort()); destination.send(request, listeners); }
protected void send(final Request request, List<Response.ResponseListener> listeners) { String scheme = request.getScheme().toLowerCase(Locale.ENGLISH); if (!Arrays.asList("http", "https").contains(scheme)) throw new IllegalArgumentException("Invalid protocol " + scheme); HttpDestination destination = destinationFor(scheme, request.getHost(), request.getPort()); destination.send(request, listeners); }
@Override public Result authenticate(Request request, ContentResponse response, HeaderInfo headerInfo, Attributes context) { SPNEGOContext spnegoContext = (SPNEGOContext)context.getAttribute(SPNEGOContext.ATTRIBUTE); if (LOG.isDebugEnabled()) LOG.debug("Authenticate with context {}", spnegoContext); if (spnegoContext == null) { spnegoContext = login(); context.setAttribute(SPNEGOContext.ATTRIBUTE, spnegoContext); } String b64Input = headerInfo.getBase64(); byte[] input = b64Input == null ? new byte[0] : Base64.getDecoder().decode(b64Input); byte[] output = Subject.doAs(spnegoContext.subject, initGSSContext(spnegoContext, request.getHost(), input)); String b64Output = output == null ? null : new String(Base64.getEncoder().encode(output)); // The result cannot be used for subsequent requests, // so it always has a null URI to avoid being cached. return new SPNEGOResult(null, b64Output); }
@Override protected URI getAuthenticationURI(Request request) { HttpDestination destination = getHttpClient().destinationFor(request.getScheme(), request.getHost(), request.getPort()); ProxyConfiguration.Proxy proxy = destination.getProxy(); return proxy != null ? proxy.getURI() : request.getURI(); }
@Test public void testExtraction() { HttpFields fields = new HttpFields(); fields.add(new HttpField("User-Agent", "Test 1.0")); Request request = mock(Request.class); Response response = mock(Response.class); OcJettyHttpClientExtractor extractor = new OcJettyHttpClientExtractor(); when(request.getHost()).thenReturn("localhost"); when(request.getMethod()).thenReturn("GET"); when(request.getHeaders()).thenReturn(fields); when(request.getPath()).thenReturn("/test"); when(request.getURI()).thenReturn(uri); when(response.getStatus()).thenReturn(0); assertThat(extractor.getHost(request)).contains("localhost"); assertThat(extractor.getMethod(request)).contains("GET"); assertThat(extractor.getPath(request)).contains("/test"); assertThat(extractor.getUrl(request)).contains(URI_STR); assertThat(extractor.getRoute(request)).contains(""); assertThat(extractor.getUserAgent(request)).contains("Test 1.0"); assertThat(extractor.getStatusCode(response)).isEqualTo(0); } }
if (requestURI == null) String uri = request.getScheme() + "://" + request.getHost(); int port = request.getPort(); if (port > 0)