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.impl.cookie;
29
30 import org.apache.http.annotation.Contract;
31 import org.apache.http.annotation.Obsolete;
32 import org.apache.http.annotation.ThreadingBehavior;
33 import org.apache.http.conn.util.PublicSuffixMatcher;
34 import org.apache.http.cookie.CookieSpec;
35 import org.apache.http.cookie.CookieSpecProvider;
36 import org.apache.http.protocol.HttpContext;
37
38
39
40
41
42
43
44
45
46
47
48 @Obsolete
49 @Contract(threading = ThreadingBehavior.IMMUTABLE_CONDITIONAL)
50 public class RFC2109SpecProvider implements CookieSpecProvider {
51
52 private final PublicSuffixMatcher publicSuffixMatcher;
53 private final boolean oneHeader;
54
55 private volatile CookieSpec cookieSpec;
56
57 public RFC2109SpecProvider(final PublicSuffixMatcher publicSuffixMatcher, final boolean oneHeader) {
58 super();
59 this.oneHeader = oneHeader;
60 this.publicSuffixMatcher = publicSuffixMatcher;
61 }
62
63 public RFC2109SpecProvider(final PublicSuffixMatcher publicSuffixMatcher) {
64 this(publicSuffixMatcher, false);
65 }
66
67 public RFC2109SpecProvider() {
68 this(null, false);
69 }
70
71 @Override
72 public CookieSpec create(final HttpContext context) {
73 if (cookieSpec == null) {
74 synchronized (this) {
75 if (cookieSpec == null) {
76 this.cookieSpec = new RFC2109Spec(this.oneHeader,
77 new RFC2109VersionHandler(),
78 new BasicPathHandler(),
79 PublicSuffixDomainFilter.decorate(
80 new RFC2109DomainHandler(), this.publicSuffixMatcher),
81 new BasicMaxAgeHandler(),
82 new BasicSecureHandler(),
83 new BasicCommentHandler());
84 }
85 }
86 }
87 return this.cookieSpec;
88 }
89
90 }