|
26 | 26 | import java.util.Base64; |
27 | 27 | import java.util.Collections; |
28 | 28 | import java.util.List; |
| 29 | +import java.util.Map; |
29 | 30 |
|
30 | 31 | import javax.servlet.http.Cookie; |
31 | 32 | import javax.servlet.http.HttpServletRequest; |
@@ -163,14 +164,32 @@ public void handle(String target, Request baseRequest, |
163 | 164 | respondJSON(servletResponse, os, response); |
164 | 165 | baseRequest.setHandled(true); |
165 | 166 | return; |
166 | | - } else if (uri.startsWith("/cookies/set/")) { |
| 167 | + } else if (uri.startsWith("/cookies/set")) { |
167 | 168 | Utils.copy(is, Utils.NULL_OUTPUT_STREAM); |
168 | 169 |
|
169 | | - String[] parts = uri.substring("/cookies/set/".length()).split( |
170 | | - "/"); |
| 170 | + StringBuilder builder = new StringBuilder(); |
| 171 | + for (Map.Entry<String, String[]> entry : |
| 172 | + request.getParameterMap().entrySet()) { |
| 173 | + for (String value : entry.getValue()) { |
| 174 | + servletResponse.addHeader("Set-Cookie", String.format( |
| 175 | + "%s=%s; Path=/", entry.getKey(), value)); |
| 176 | + } |
| 177 | + } |
| 178 | + |
| 179 | + servletResponse.setHeader("Location", "/cookies"); |
| 180 | + servletResponse.setStatus( |
| 181 | + HttpServletResponse.SC_MOVED_TEMPORARILY); |
| 182 | + baseRequest.setHandled(true); |
| 183 | + return; |
| 184 | + } else if (uri.startsWith("/cookies/delete")) { |
| 185 | + Utils.copy(is, Utils.NULL_OUTPUT_STREAM); |
171 | 186 |
|
172 | | - servletResponse.addHeader("Set-Cookie", |
173 | | - String.format("%s=%s; Path=/", parts[0], parts[1])); |
| 187 | + StringBuilder builder = new StringBuilder(); |
| 188 | + for (Map.Entry<String, String[]> entry : |
| 189 | + request.getParameterMap().entrySet()) { |
| 190 | + servletResponse.addHeader("Set-Cookie", String.format( |
| 191 | + "%s=; Path=/", entry.getKey())); |
| 192 | + } |
174 | 193 |
|
175 | 194 | servletResponse.setHeader("Location", "/cookies"); |
176 | 195 | servletResponse.setStatus( |
|
0 commit comments