Tomcat 9.0.16 + Java11 иногда выдает «Ошибка синтаксического анализа заголовка HTTP-запроса» - PullRequest
0 голосов
/ 01 марта 2019

У нас есть веб-приложение, работающее в Tomcat 9.0.16, после изменения AdoptJDK с 10 на 11 мы время от времени замечали статус HTTP 400 в журнале доступа.Это происходит только при настройке HTTPS, мы используем реализацию Java SSL (JSSE).Ниже приведен дамп из javax.net.debug неудавшегося запроса.

Отличие от другого запроса состоит в том, что после application_data в том же потоке есть change_cipher_spec.Я не заметил эту последовательность в пропущенных запросах.

javax.net.ssl|DEBUG|38|https-jsse-nio-8444-exec-5|2019-03-01 14:01:46.924 CET|SSLEngineInputRecord.java:177|Raw read (
  0000: 17 03 03 02 CE 00 00 00   00 00 00 00 01 06 11 6D  ...............m
  0010: 72 C0 DE E5 55 76 24 8D   18 F3 13 69 43 2A AA 84  r...Uv$....iC*..
  0020: 37 01 CE 8F 16 C9 72 E9   52 5D 43 BA 96 C7 47 8B  7.....r.R]C...G.
  0030: 86 7A 6C C8 A0 72 E0 38   3A FF 54 83 C3 60 8D 6F  .zl..r.8:.T..`.o
  0040: 2A 56 E6 E0 A2 B8 1E 6C   1E 5E 8A 9B 3C 7F A3 34  *V.....l.^..<..4
  0050: 56 86 09 69 4B E8 E1 22   45 88 B4 E7 DC C0 0A B7  V..iK.."E.......
  0060: 91 2A 6E 1C A9 28 4B 37   96 72 4E 94 01 E9 A1 64  .*n..(K7.rN....d
  0070: 67 F1 6E BC 9C 34 69 E3   92 35 DC F2 45 5F B6 EB  g.n..4i..5..E_..
  0080: 58 82 C0 9B 86 A1 15 2F   0B FC E8 6E 97 18 30 34  X....../...n..04
  0090: B2 DA FA 55 0E 4F 92 AD   5A B9 6C 46 C8 22 FD 33  ...U.O..Z.lF.".3
  00A0: 12 8F 71 8F D8 08 EB E8   BC 55 67 1D 23 8E A7 89  ..q......Ug.#...
  00B0: BF 22 63 89 FE B5 B5 DA   DF 26 54 B8 5C 53 99 79  ."c......&T.\S.y
  00C0: 84 B8 04 70 A9 DB FF 54   91 59 B7 8F 06 39 6E 17  ...p...T.Y...9n.
  00D0: 2A C6 A1 20 30 AF 67 F1   1C 1E B0 E8 A4 29 66 CA  *.. 0.g......)f.
  00E0: 95 B1 94 AE 6F EC 53 98   60 EF E9 06 CD 05 F6 04  ....o.S.`.......
  00F0: 06 27 30 96 3F 8B F0 76   6B 92 1C B7 89 5C 47 9A  .'0.?..vk....\G.
  0100: C6 A5 44 2D 2A DB B6 EC   E2 BC 56 57 0C 9B 6A FB  ..D-*.....VW..j.
  0110: 5B 64 F4 56 27 41 B8 74   69 4B 46 47 B0 8A 25 EE  [d.V'A.tiKFG..%.
  0120: 57 81 A0 D5 C2 F5 2D E9   3B C1 C8 A1 05 5B 25 DF  W.....-.;....[%.
  0130: BA 96 B1 5A 59 E6 A9 A4   94 2D 86 CF BF 4C 4E 70  ...ZY....-...LNp
  0140: 68 EB 78 4E 3A 39 AC 56   3E 24 C2 1A 21 DC C1 BD  h.xN:9.V>$..!...
  0150: D7 0C 51 2B 99 C6 49 40   25 30 16 B5 2E AB 8F CC  ..Q+..I@%0......
  0160: D4 DA 9F 7A 50 F5 B7 28   55 32 B1 44 CE 89 8A 5F  ...zP..(U2.D..._
  0170: 79 89 34 E2 F0 A1 A3 56   15 7A 15 B7 EA 4C 74 8D  y.4....V.z...Lt.
  0180: 87 F2 2B 81 DB 4B 86 99   01 4C AC 5C 05 42 20 C8  ..+..K...L.\.B .
  0190: 50 DA AA D6 BF 36 BC 78   67 DA CB 57 CD 7E 3B A8  P....6.xg..W..;.
  01A0: 53 66 06 72 43 EA C2 F6   DA 2B 99 50 83 A6 C3 72  Sf.rC....+.P...r
  01B0: BB 6F 05 7F 60 B1 25 07   93 61 71 2C 25 12 B9 90  .o..`.%..aq,%...
  01C0: DC 42 F2 72 9E 38 85 60   61 58 44 3A 03 C4 0E 9E  .B.r.8.`aXD:....
  01D0: 1A 60 9B F3 D4 8C 66 9C   5D 01 86 E5 21 D2 F3 40  .`....f.]...!..@
  01E0: D8 52 DF 76 D4 C6 67 B0   29 C5 56 9B A2 05 8C 8D  .R.v..g.).V.....
  01F0: BE 58 59 06 2B 1C F4 A7   6B 6B 40 67 04 E1 ED B2  .XY.+...kk@g....
  0200: 18 C0 F4 43 00 1F EC 68   7C F2 C1 10 01 62 74 C2  ...C...h.....bt.
  0210: 62 5F 4B 19 48 27 A8 57   99 8A 74 81 D2 33 F3 FC  b_K.H'.W..t..3..
  0220: 5C 29 05 5A 44 BA 9E 4C   DD 4C EA 50 D2 6E 95 E9  \).ZD..L.L.P.n..
  0230: 7C AF A0 FE 6F EB 31 4C   8D 44 97 61 16 46 B2 B4  ....o.1L.D.a.F..
  0240: D4 F4 84 8C 9E 20 D3 67   97 BE 8A 31 7E 67 A1 BC  ..... .g...1.g..
  0250: B5 C8 0A 83 B3 47 C0 2A   A2 51 73 C8 D2 F3 6B FF  .....G.*.Qs...k.
  0260: D8 95 BC 5E BA AE EA 3A   2A 9E F7 AD DA AC 90 B9  ...^...:*.......
  0270: C1 34 4E F2 4D 61 95 C2   D6 BF 3D A1 81 13 83 8F  .4N.Ma....=.....
  0280: D9 FB CC 7B 83 DA 4D 53   AE B2 C5 86 1A 3F 25 4B  ......MS.....?%K
  0290: 0D BA EA 32 1D 08 B3 8B   8B AD 8B EF EA 47 2F A6  ...2.........G/.
  02A0: 41 AF 38 F5 15 52 84 2C   41 9E 77 DE ED 8D A5 9A  A.8..R.,A.w.....
  02B0: A6 5A 1A C9 0B 87 C4 6E   2A 34 CC 7A 91 5A 1E DF  .Z.....n*4.z.Z..
  02C0: E9 58 BB 3A B8 8A E2 0F   9F 0F DE 5C F6 55 B3 1B  .X.:.......\.U..
  02D0: 4A 73 02 14 03 03 00 01   01 16 03 03 00 28 00 00  Js...........(..
  02E0: 00 00 00 00 00 00 94 1E   F8 9A 66 3B A1 67 AB 89  ..........f;.g..
  02F0: 39 DB 30 3E 90 11 45 92   1C EA 7F F7 91 D8 8B 9E  9.0>..E.........
  0300: B6 58 CC 9F 19 AD                                  .X....
)
javax.net.ssl|DEBUG|38|https-jsse-nio-8444-exec-5|2019-03-01 14:01:46.924 CET|SSLEngineInputRecord.java:214|READ: TLSv1.2 application_data, length = 718
javax.net.ssl|DEBUG|38|https-jsse-nio-8444-exec-5|2019-03-01 14:01:46.924 CET|SSLEngineInputRecord.java:177|Raw read (
  0000: 14 03 03 00 01 01 16 03   03 00 28 00 00 00 00 00  ..........(.....
  0010: 00 00 00 94 1E F8 9A 66   3B A1 67 AB 89 39 DB 30  .......f;.g..9.0
  0020: 3E 90 11 45 92 1C EA 7F   F7 91 D8 8B 9E B6 58 CC  >..E..........X.
  0030: 9F 19 AD                                           ...
)
javax.net.ssl|DEBUG|38|https-jsse-nio-8444-exec-5|2019-03-01 14:01:46.925 CET|SSLEngineInputRecord.java:214|READ: TLSv1.2 change_cipher_spec, length = 1
javax.net.ssl|DEBUG|38|https-jsse-nio-8444-exec-5|2019-03-01 14:01:46.925 CET|ChangeCipherSpec.java:143|Consuming ChangeCipherSpec message
javax.net.ssl|DEBUG|38|https-jsse-nio-8444-exec-5|2019-03-01 14:01:46.925 CET|SSLEngineInputRecord.java:177|Raw read (
  0000: 16 03 03 00 28 00 00 00   00 00 00 00 00 94 1E F8  ....(...........
  0010: 9A 66 3B A1 67 AB 89 39   DB 30 3E 90 11 45 92 1C  .f;.g..9.0>..E..
  0020: EA 7F F7 91 D8 8B 9E B6   58 CC 9F 19 AD           ........X....
)
javax.net.ssl|DEBUG|38|https-jsse-nio-8444-exec-5|2019-03-01 14:01:46.925 CET|SSLEngineInputRecord.java:214|READ: TLSv1.2 handshake, length = 40
javax.net.ssl|DEBUG|38|https-jsse-nio-8444-exec-5|2019-03-01 14:01:46.925 CET|SSLCipher.java:1629|Plaintext after DECRYPTION (
  0000: 14 00 00 0C D4 93 7A FD   9E 7D 6A F2 04 97 1A 93  ......z...j.....
)
javax.net.ssl|DEBUG|38|https-jsse-nio-8444-exec-5|2019-03-01 14:01:46.925 CET|Finished.java:581|Consuming client Finished handshake message (
"Finished": {
  "verify data": {
    0000: D4 93 7A FD 9E 7D 6A F2   04 97 1A 93 
  }'}
)
01-Mar-2019 14:01:46.927 INFO [https-jsse-nio-8444-exec-5] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header
 Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.
 java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens
    at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:414)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:294)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:834)
...