1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.client;
20
21 import java.net.URI;
22
23 import org.eclipse.jetty.client.api.Request;
24 import org.eclipse.jetty.client.api.Response;
25 import org.eclipse.jetty.http.HttpHeader;
26 import org.eclipse.jetty.http.HttpStatus;
27
28 public class ProxyAuthenticationProtocolHandler extends AuthenticationProtocolHandler
29 {
30 public ProxyAuthenticationProtocolHandler(HttpClient client)
31 {
32 this(client, DEFAULT_MAX_CONTENT_LENGTH);
33 }
34
35 public ProxyAuthenticationProtocolHandler(HttpClient client, int maxContentLength)
36 {
37 super(client, maxContentLength);
38 }
39
40 @Override
41 public boolean accept(Request request, Response response)
42 {
43 return response.getStatus() == HttpStatus.PROXY_AUTHENTICATION_REQUIRED_407;
44 }
45
46 @Override
47 protected HttpHeader getAuthenticateHeader()
48 {
49 return HttpHeader.PROXY_AUTHENTICATE;
50 }
51
52 @Override
53 protected HttpHeader getAuthorizationHeader()
54 {
55 return HttpHeader.PROXY_AUTHORIZATION;
56 }
57
58 @Override
59 protected URI getAuthenticationURI(Request request)
60 {
61 HttpDestination destination = getHttpClient().destinationFor(request.getScheme(), request.getHost(), request.getPort());
62 return destination.isProxied() ? destination.getProxyURI() : request.getURI();
63 }
64 }