1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 package org.apache.http.client.protocol;
29
30 import org.apache.http.annotation.NotThreadSafe;
31 import org.apache.http.auth.AuthSchemeProvider;
32 import org.apache.http.auth.AuthState;
33 import org.apache.http.client.AuthCache;
34 import org.apache.http.client.CookieStore;
35 import org.apache.http.client.CredentialsProvider;
36 import org.apache.http.client.URICollection;
37 import org.apache.http.client.config.RequestConfig;
38 import org.apache.http.config.Lookup;
39 import org.apache.http.conn.routing.HttpRoute;
40 import org.apache.http.conn.routing.RouteInfo;
41 import org.apache.http.cookie.CookieOrigin;
42 import org.apache.http.cookie.CookieSpec;
43 import org.apache.http.cookie.CookieSpecProvider;
44 import org.apache.http.protocol.BasicHttpContext;
45 import org.apache.http.protocol.HttpContext;
46 import org.apache.http.protocol.HttpCoreContext;
47
48
49
50
51
52
53
54 @NotThreadSafe
55 public class HttpClientContext extends HttpCoreContext {
56
57
58
59
60
61 public static final String HTTP_ROUTE = "http.route";
62
63
64
65
66
67
68 public static final String REDIRECT_LOCATIONS = "http.protocol.redirect-locations";
69
70
71
72
73
74 public static final String COOKIESPEC_REGISTRY = "http.cookiespec-registry";
75
76
77
78
79
80 public static final String COOKIE_SPEC = "http.cookie-spec";
81
82
83
84
85
86 public static final String COOKIE_ORIGIN = "http.cookie-origin";
87
88
89
90
91
92 public static final String COOKIE_STORE = "http.cookie-store";
93
94
95
96
97
98 public static final String CREDS_PROVIDER = "http.auth.credentials-provider";
99
100
101
102
103
104 public static final String AUTH_CACHE = "http.auth.auth-cache";
105
106
107
108
109
110 public static final String TARGET_AUTH_STATE = "http.auth.target-scope";
111
112
113
114
115
116 public static final String PROXY_AUTH_STATE = "http.auth.proxy-scope";
117
118
119
120
121
122 public static final String USER_TOKEN = "http.user-token";
123
124
125
126
127
128 public static final String AUTHSCHEME_REGISTRY = "http.authscheme-registry";
129
130
131
132
133
134 public static final String REQUEST_CONFIG = "http.request-config";
135
136 public static HttpClientContext adapt(final HttpContext context) {
137 if (context instanceof HttpClientContext) {
138 return (HttpClientContext) context;
139 } else {
140 return new HttpClientContext(context);
141 }
142 }
143
144 public static HttpClientContext create() {
145 return new HttpClientContext(new BasicHttpContext());
146 }
147
148 public HttpClientContext(final HttpContext context) {
149 super(context);
150 }
151
152 public HttpClientContext() {
153 super();
154 }
155
156 public RouteInfo getHttpRoute() {
157 return getAttribute(HTTP_ROUTE, HttpRoute.class);
158 }
159
160 public URICollection getRedirectLocations() {
161 return getAttribute(REDIRECT_LOCATIONS, URICollection.class);
162 }
163
164 public CookieStore getCookieStore() {
165 return getAttribute(COOKIE_STORE, CookieStore.class);
166 }
167
168 public void setCookieStore(final CookieStore cookieStore) {
169 setAttribute(COOKIE_STORE, cookieStore);
170 }
171
172 public CookieSpec getCookieSpec() {
173 return getAttribute(COOKIE_SPEC, CookieSpec.class);
174 }
175
176 public CookieOrigin getCookieOrigin() {
177 return getAttribute(COOKIE_ORIGIN, CookieOrigin.class);
178 }
179
180 @SuppressWarnings("unchecked")
181 protected <T> Lookup<T> getLookup(final String name, final Class<T> clazz) {
182 return getAttribute(name, Lookup.class);
183 }
184
185 public Lookup<CookieSpecProvider> getCookieSpecRegistry() {
186 return getLookup(COOKIESPEC_REGISTRY, CookieSpecProvider.class);
187 }
188
189 public void setCookieSpecRegistry(final Lookup<CookieSpecProvider> lookup) {
190 setAttribute(COOKIESPEC_REGISTRY, lookup);
191 }
192
193 public Lookup<AuthSchemeProvider> getAuthSchemeRegistry() {
194 return getLookup(AUTHSCHEME_REGISTRY, AuthSchemeProvider.class);
195 }
196
197 public void setAuthSchemeRegistry(final Lookup<AuthSchemeProvider> lookup) {
198 setAttribute(AUTHSCHEME_REGISTRY, lookup);
199 }
200
201 public CredentialsProvider getCredentialsProvider() {
202 return getAttribute(CREDS_PROVIDER, CredentialsProvider.class);
203 }
204
205 public void setCredentialsProvider(final CredentialsProvider credentialsProvider) {
206 setAttribute(CREDS_PROVIDER, credentialsProvider);
207 }
208
209 public AuthCache getAuthCache() {
210 return getAttribute(AUTH_CACHE, AuthCache.class);
211 }
212
213 public void setAuthCache(final AuthCache authCache) {
214 setAttribute(AUTH_CACHE, authCache);
215 }
216
217 public AuthState getTargetAuthState() {
218 return getAttribute(TARGET_AUTH_STATE, AuthState.class);
219 }
220
221 public AuthState getProxyAuthState() {
222 return getAttribute(PROXY_AUTH_STATE, AuthState.class);
223 }
224
225 public <T> T getUserToken(final Class<T> clazz) {
226 return getAttribute(USER_TOKEN, clazz);
227 }
228
229 public Object getUserToken() {
230 return getAttribute(USER_TOKEN);
231 }
232
233 public void setUserToken(final Object obj) {
234 setAttribute(USER_TOKEN, obj);
235 }
236
237 public RequestConfig getRequestConfig() {
238 final RequestConfig config = getAttribute(REQUEST_CONFIG, RequestConfig.class);
239 return config != null ? config : RequestConfig.DEFAULT;
240 }
241
242 public void setRequestConfig(final RequestConfig config) {
243 setAttribute(REQUEST_CONFIG, config);
244 }
245
246 }