Mercurial Hosting > luan
comparison src/goodjava/webserver/RequestParser.java @ 2170:a59d0bf68830 default tip
handle multiple cookie headers
| author | Franklin Schmidt <fschmidt@gmail.com> |
|---|---|
| date | Tue, 17 Feb 2026 22:24:02 -0700 |
| parents | ffa02039a11a |
| children |
comparison
equal
deleted
inserted
replaced
| 2169:daa80cb2f0a2 | 2170:a59d0bf68830 |
|---|---|
| 1 package goodjava.webserver; | 1 package goodjava.webserver; |
| 2 | 2 |
| 3 import java.io.UnsupportedEncodingException; | 3 import java.io.UnsupportedEncodingException; |
| 4 import java.net.URLDecoder; | 4 import java.net.URLDecoder; |
| 5 import java.util.List; | 5 import java.util.List; |
| 6 import java.util.ArrayList; | |
| 7 import goodjava.logging.Logger; | 6 import goodjava.logging.Logger; |
| 8 import goodjava.logging.LoggerFactory; | 7 import goodjava.logging.LoggerFactory; |
| 9 import goodjava.parser.Parser; | 8 import goodjava.parser.Parser; |
| 10 import goodjava.parser.ParseException; | 9 import goodjava.parser.ParseException; |
| 11 | 10 |
| 162 } | 161 } |
| 163 } | 162 } |
| 164 | 163 |
| 165 | 164 |
| 166 private void parseCookies() throws ParseException { | 165 private void parseCookies() throws ParseException { |
| 167 String text = (String)request.headers.get("cookie"); | 166 Object obj = request.headers.get("cookie"); |
| 168 if( text == null ) | 167 if( obj == null ) |
| 169 return; | 168 return; |
| 169 if( obj instanceof List ) | |
| 170 throw new ParseException(parser,"multiple cookie headers"); | |
| 171 String text = (String)obj; | |
| 170 this.parser = new Parser(text); | 172 this.parser = new Parser(text); |
| 171 while(true) { | 173 while(true) { |
| 172 int start = parser.currentIndex(); | 174 int start = parser.currentIndex(); |
| 173 while( parser.noneOf("=;") ); | 175 while( parser.noneOf("=;") ); |
| 174 String name = urlDecode( parser.textFrom(start) ); | 176 String name = urlDecode( parser.textFrom(start) ); |
