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
29
30
31
32
33
34 public class ProxyAuthenticationProtocolHandler extends AuthenticationProtocolHandler
35 {
36 public static final String NAME = "proxy-authenticate";
37
38 public ProxyAuthenticationProtocolHandler(HttpClient client)
39 {
40 this(client, DEFAULT_MAX_CONTENT_LENGTH);
41 }
42
43 public ProxyAuthenticationProtocolHandler(HttpClient client, int maxContentLength)
44 {
45 super(client, maxContentLength);
46 }
47
48 @Override
49 public String getName()
50 {
51 return NAME;
52 }
53
54 @Override
55 public boolean accept(Request request, Response response)
56 {
57 return response.getStatus() == HttpStatus.PROXY_AUTHENTICATION_REQUIRED_407;
58 }
59
60 @Override
61 protected HttpHeader getAuthenticateHeader()
62 {
63 return HttpHeader.PROXY_AUTHENTICATE;
64 }
65
66 @Override
67 protected HttpHeader getAuthorizationHeader()
68 {
69 return HttpHeader.PROXY_AUTHORIZATION;
70 }
71
72 @Override
73 protected URI getAuthenticationURI(Request request)
74 {
75 HttpDestination destination = getHttpClient().destinationFor(request.getScheme(), request.getHost(), request.getPort());
76 ProxyConfiguration.Proxy proxy = destination.getProxy();
77 return proxy != null ? proxy.getURI() : request.getURI();
78 }
79 }