File: SessionCookieConfig.java

package info (click to toggle)
tomcat10 10.1.40-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, trixie
  • size: 46,748 kB
  • sloc: java: 371,059; xml: 57,665; jsp: 4,654; sh: 1,381; perl: 314; makefile: 25; ansic: 15
file content (184 lines) | stat: -rw-r--r-- 5,887 bytes parent folder | download | duplicates (4)
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package jakarta.servlet;

import java.util.Map;

/**
 * Configures the session cookies used by the web application associated with the ServletContext from which this
 * SessionCookieConfig was obtained.
 *
 * @since Servlet 3.0
 */
public interface SessionCookieConfig {

    /**
     * Sets the session cookie name.
     *
     * @param name The name of the session cookie
     *
     * @throws IllegalStateException if the associated ServletContext has already been initialised
     */
    void setName(String name);

    /**
     * Obtain the name to use for the session cookies.
     *
     * @return the name to use for session cookies.
     */
    String getName();

    /**
     * Sets the domain for the session cookie
     *
     * @param domain The session cookie domain
     *
     * @throws IllegalStateException if the associated ServletContext has already been initialised
     */
    void setDomain(String domain);

    /**
     * Obtain the domain to use for session cookies.
     *
     * @return the domain to use for session cookies.
     */
    String getDomain();

    /**
     * Sets the path of the session cookie.
     *
     * @param path The session cookie path
     *
     * @throws IllegalStateException if the associated ServletContext has already been initialised
     */
    void setPath(String path);

    /**
     * Obtain the path to use for session cookies. This is normally the context path.
     *
     * @return The path to use for session cookies.
     */
    String getPath();

    /**
     * If called, this method has no effect.
     *
     * @param comment Ignore
     *
     * @throws IllegalStateException if the associated ServletContext has already been initialised
     *
     * @deprecated This is no longer required with RFC 6265
     */
    @Deprecated(since = "Servlet 6.0", forRemoval = true)
    void setComment(String comment);

    /**
     * With the adoption of support for RFC 6265, this method should no longer be used.
     *
     * @return always {@code null}
     *
     * @deprecated This is no longer required with RFC 6265
     */
    @Deprecated(since = "Servlet 6.0", forRemoval = true)
    String getComment();

    /**
     * Sets the httpOnly flag for the session cookie.
     *
     * @param httpOnly The httpOnly setting to use for session cookies
     *
     * @throws IllegalStateException if the associated ServletContext has already been initialised
     */
    void setHttpOnly(boolean httpOnly);

    /**
     * Will session cookies be created with the httpOnly flag set?
     *
     * @return {@code true} if the flag should be set, otherwise {@code false}
     */
    boolean isHttpOnly();

    /**
     * Sets the secure flag for the session cookie.
     *
     * @param secure The secure setting to use for session cookies
     *
     * @throws IllegalStateException if the associated ServletContext has already been initialised
     */
    void setSecure(boolean secure);

    /**
     * Will session cookies be created with the secure flag set?
     *
     * @return {@code true} if the flag should be set, otherwise {@code false}
     */
    boolean isSecure();

    /**
     * Sets the maximum age.
     *
     * @param MaxAge the maximum age to set
     *
     * @throws IllegalStateException if the associated ServletContext has already been initialised
     */
    void setMaxAge(int MaxAge);

    /**
     * Obtain the maximum age to set for a session cookie.
     *
     * @return the maximum age in seconds
     */
    int getMaxAge();

    /**
     * Sets the value for the given session cookie attribute. When a value is set via this method, the value returned by
     * the attribute specific getter (if any) must be consistent with the value set via this method.
     *
     * @param name  Name of attribute to set
     * @param value Value of attribute
     *
     * @throws IllegalStateException    if the associated ServletContext has already been initialised
     * @throws IllegalArgumentException If the attribute name is null or contains any characters not permitted for use
     *                                      in Cookie names.
     * @throws NumberFormatException    If the attribute is known to be numerical but the provided value cannot be
     *                                      parsed to a number.
     *
     * @since Servlet 6.0
     */
    void setAttribute(String name, String value);

    /**
     * Obtain the value for a sesison cookie given attribute. Values returned from this method must be consistent with
     * the values set and returned by the attribute specific getters and setters in this class.
     *
     * @param name Name of attribute to return
     *
     * @return Value of specified attribute
     *
     * @since Servlet 6.0
     */
    String getAttribute(String name);

    /**
     * Obtain the Map of attributes and values (excluding version) for this session cookie.
     *
     * @return A read-only Map of attributes to values, excluding version.
     *
     * @since Servlet 6.0
     */
    Map<String,String> getAttributes();
}