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 package org.apache.http.impl.client;
28
29 import java.util.HashMap;
30
31 import org.apache.http.HttpHost;
32 import org.apache.http.annotation.NotThreadSafe;
33 import org.apache.http.auth.AuthScheme;
34 import org.apache.http.client.AuthCache;
35 import org.apache.http.conn.SchemePortResolver;
36 import org.apache.http.impl.conn.DefaultSchemePortResolver;
37 import org.apache.http.util.Args;
38
39
40
41
42
43
44 @NotThreadSafe
45 public class BasicAuthCache implements AuthCache {
46
47 private final HashMap<HttpHost, AuthScheme> map;
48 private final SchemePortResolver schemePortResolver;
49
50
51
52
53
54
55 public BasicAuthCache(final SchemePortResolver schemePortResolver) {
56 super();
57 this.map = new HashMap<HttpHost, AuthScheme>();
58 this.schemePortResolver = schemePortResolver != null ? schemePortResolver :
59 DefaultSchemePortResolver.INSTANCE;
60 }
61
62 public BasicAuthCache() {
63 this(null);
64 }
65
66 protected HttpHost getKey(final HttpHost host) {
67 if (host.getPort() <= 0) {
68 final int port = schemePortResolver.resolve(host);
69 return new HttpHost(host.getHostName(), port, host.getSchemeName());
70 } else {
71 return host;
72 }
73 }
74
75 public void put(final HttpHost host, final AuthScheme authScheme) {
76 Args.notNull(host, "HTTP host");
77 this.map.put(getKey(host), authScheme);
78 }
79
80 public AuthScheme get(final HttpHost host) {
81 Args.notNull(host, "HTTP host");
82 return this.map.get(getKey(host));
83 }
84
85 public void remove(final HttpHost host) {
86 Args.notNull(host, "HTTP host");
87 this.map.remove(getKey(host));
88 }
89
90 public void clear() {
91 this.map.clear();
92 }
93
94 @Override
95 public String toString() {
96 return this.map.toString();
97 }
98
99 }