Перенаправитель Apache ISAPI отсекает данные cookie? - PullRequest
0 голосов
/ 03 августа 2010

У меня есть вопрос об обработке в ISAPI Redirector, особенно при обработке AJP13, где происходит моя ситуация. По крайней мере, я так думаю, основываясь на том, что я получаю из журналов.

Сначала позвольте мне описать мои настройки / конфигурации / платформы. Я использую Tomcat 6.0 (версия файла 2.0.4.0 для свойств 'tomcat6.exe') на Windows Server 2003 SE (SP2) с IIS 6.0 (работает в режиме изоляции IIS 5.0) и использую ISAPI Redirector v 1.2. 26.0 от 10 сентября 2008 г. Я знаю, что моя конфигурация с этим верна, потому что IIS передает мои запросы фильтру ISAPI, и страницы на Tomcat работают - у меня есть точка. У меня есть приложение, которое использует несколько сервлетов Java и один из классы, используемые в этих сервлетах, обрабатывают данные в файле cookie, сгенерированном продуктом контроля доступа, который мы используем под названием GetAccess. GetAccess использует фильтр ISAPI для контроля доступа и проверки, и мы настроили его для сохранения идентификатора и имени пользователя в файле cookie. который наше приложение использует для того, чтобы сделать страницы персональными для каждого пользователя.

В журнале ISAPI Redirector я вижу информацию о файлах cookie, передаваемую процессору ajp13. Вот фрагмент этого журнала с этой информацией:

(Я отделил раздел буфера, в котором находятся данные cookie GetAccess. Я также заменил информацию, которую я хочу сохранить конфиденциальной, на «X» и которая, как мне кажется, не влияет на эту проблему.)

[ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): отправка в ajp13 pos = 4 len = 1104 max = 8192 [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0000 12 34 04 4C 02 02 00 08 48 54 54 50 2F 31 2E 31 - .4.L .. ..HTTP / 1.1 [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [отладка] jk_ajp_common.c (934): 0010 00 00 0D 2F 73 64 73 2F 66 61 63 65 2E 6A 73 70 - ... / sds / face.jsp [Ср 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0020 00 00 0C 31 30 2E 33 32 2E 36 38 2E 32 30 38 00 - ... XX.XX .XX.208. [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0030 00 0C 31 30 2E 33 32 2E 36 38 2E 32 30 38 00 00 - ..XX.XX. XX.208 .. [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0040 18 6A 63 61 73 74 65 72 62 65 74 61 2E 6A 63 70 - .XXXXXXXXXXX.XXX [Ср 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0050 65 6E 6E 65 79 2E 63 6F 6D 00 00 50 00 00 10 A0 - XXXXX.com..P .... [Ср 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0060 06 00 0A 4B 65 65 70 2D 41 6C 69 76 65 00 A0 01 - ... Keep-Alive ... [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0070 01 0F 69 6D 61 67 65 2F 67 69 66 2C 20 69 6D 61 - ..изображение / gif, .ima [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0080 67 65 2F 78 2D 78 62 69 74 6D 61 70 2C 20 69 6D - ge / x-xbitmap, .я [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0090 61 67 65 2F 6A 70 65 67 2C 20 69 6D 61 67 65 2F - age / jpeg, .image / [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 00a0 70 6A 70 65 67 2C 20 61 70 70 6C 69 63 61 74 69 - pjpeg, .applicati [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 00b0 6F 6E 2F 78 2D 73 68 6F 63 6B 77 61 76 65 2D 66 - on / x-shockwave- е [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 00c0 6C 61 73 68 2C 20 61 70 70 6C 69 63 61 74 69 6F - ресница, .applicatio [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 00d0 6E 2F 78 2D 6D 73 2D 61 70 70 6C 69 63 61 74 69 - н / х-мс Applicati [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 00e0 6F 6E 2C 20 61 70 70 6C 69 63 61 74 69 6F 6E 2F - включено, .application /[Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 00f0 78 2D 6D 73 2D 78 62 61 70 2C 20 61 70 70 6C 69 - x-ms-xbap, .appli [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0100 63 61 74 69 6F 6E 2F 76 6E 64 2E 6D 73 2D 78 70 - катион / вн.мс.- хр [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0110 73 64 6F 63 75 6D 65 6E 74 2C 20 61 70 70 6C 69 - документация, .appli [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0120 63 61 74 69 6F 6E 2F 78 61 6D 6C 2B 78 6D 6C 2C - катион / xaml + xml, [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0130 20 61 70 70 6C 69 63 61 74 69 6F 6E 2F 76 6E 64 - .application / vnd [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0140 2E 6D 73 2D 65 78 63 65 6C 2C 20 61 70 70 6C 69 - .ms-excel ,. приме [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0150 63 61 74 69 6F 6E 2F 76 6E 64 2E 6D 73 2D 70 6F - катион / вн.мс.- ро [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0160 77 65 72 70 6F 69 6E 74 2C 20 61 70 70 6C 69 63 - werpoint, .applic [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0170 61 74 69 6F 6E 2F 6D 73 77 6F 72 64 2C 20 2A 2F - действие / msword,. * / [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0180 2A 00 00 0F 61 63 63 65 70 74 2D 65 6E 63 6F 64 - * ... принять- ENCOD [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0190 69 6E 67 00 00 0D 67 7A 69 70 2C 20 64 65 66 6C - ing ... gzip, .defl [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 01a0 61 74 65 00 00 0F 61 63 63 65 70 74 2D 6C 61 6E - съел ... принять- ЛВС [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 01b0 67 75 61 67 65 00 00 05 65 6E 2D 75 73 00 A0 05 - guage ... en- нас... [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 01c0 00 27 42 61 73 69 63 20 4D 44 41 77 4D 7A 49 31 - .'Basic.MDAwMzI1 [Ср 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 01d0 4D 6A 41 33 4F 6B 4A 50 52 31 56 54 58 31 42 42 - MjA3OkJPR1VTX1BB [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 01e0 55 31 4E 58 54 31 4A 45 3D 00 A0 09 00 C6 4A 53 - U1NXT1JE = .... .JS [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 01f0 45 53 53 49 4F 4E 49 44 3D 42 43 30 42 34 44 30 - ESSIONID = BC0B4D0 [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0200 44 33 42 33 45 41 36 39 45 31 32 41 45 36 38 42 - D3B3EA69E12AE68B [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0210 33 44 46 31 38 42 44 43 43 3B 20 41 55 54 48 5F - 3DF18BDCC; .AUTH_ [Ср 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0220 53 45 53 53 49 4F 4E 5F 49 44 3D 53 4D 53 5F 67 - SESSION_ID = SMS_g [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0230 61 73 74 67 32 38 31 5F 64 30 30 35 38 34 3A 3A - astg281_d00584 :: [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0240 62 66 32 62 64 62 33 38 66 63 65 62 38 31 38 62 - bf2bdb38fceb818b [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0250 62 64 39 30 34 61 62 33 64 61 33 39 34 31 35 65 - bd904ab3da39415e


[ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0260 3B 47 41 55 53 45 52 49 4E 46 4F 3D 66 69 72 73 -; GAUSERINFO = ели [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0270 74 5F 6E 61 6D 65 3D 52 49 43 48 41 52 44 26 6C - t_name = RICHARD & l [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0280 61 73 74 5F 6E 61 6D 65 3D 43 55 52 52 59 26 6D - ast_name = CURRY & m[Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0290 69 64 64 6C 65 5F 69 6E 69 74 69 61 6C 3D 47 26 - iddle_initial = G & [ср. Июнь16 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 02a0 63 6F 72 70 6F 72 61 74 65 5F 69 64 3D 52 47 43 - corporate_id = XXX [ср. 16 июня 10:34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 02b0 55 52 52 59 00 A0 0B 00 18 6A 63 61 73 74 65 72 - XXXX ..... XXXXXXX


[ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 02c0 62 65 74 61 2E 6A 63 70 65 6E 6E 65 79 2E 63 6F - XXXX.XXXXXXXX.XX [ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 02d0 6D 00 A0 0D 00 24 68 74 74 70 3A 2F 2F 6F 63 61 - X .... $ http://XXX [ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 02e0 73 74 65 72 62 65 74 61 2E 6A 63 70 65 6E6E 65 - XXXXXXXX.XXXXXXX [ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [отладка] jk_ajp_common.c (934): 02f0 79 2E 63 6F 6D 2F 73 6473 2F 00 A0 0E 00 91 4D - X.XXX/sds/.....M [ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [отладка] jk_ajp_common.c (934): 0300 6F 7A69 6C 6C 61 2F 34 2E 30 20 28 63 6F 6D 70 - ozilla / 4.0. (Ср. [Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [отладка] jk_ajp_common.c (934): 0310 61 7469 62 6C 65 3B 20 4D 53 49 45 20 37 2E 30 - выплачиваемый; .MSIE.7.0 [ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0320 3B 2057 69 6E 64 6F 77 73 20 4E 54 20 35 2E 31 -; .Windows.NT.5.1 [ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [отладка] jk_ajp_common.c (934): 0330 3B20 2E 4E 45 54 20 43 4C 52 20 31 2E 31 2E 34 -; .. NET.CLR.1.1.4 [ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [отладка] jk_ajp_common.c (934): 0340 33 32 32 3B 20 2E 4E 45 54 20 43 4C 52 20 32 2E - 322; .. NET.CLR.2.[Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0350 30 2E 35 30 37 32 37 3B 20 2E 4E 45 54 20 43 4C - 0.50727; .. NET.CL [ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0360 52 20 33 2E 30 2E 34 35 30 36 2E 32 31 35 32 3B - R.3.0.4506.2152;[Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0370 20 2E 4E 45 54 20 43 4C 52 20 33 2E 35 2E 33 30 - ..NET.CLR.3.5.30 [ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0380 37 32 39 3B 20 49 6E 66 6F 50 61 74 68 2E 31 29 - 729 ;.InfoPath.1) [ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 0390 00 00 06 75 61 2D 63 70 75 00 00 03 78 38 36 00 - ...ua-процессор ... x86.[Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 03a0 00 04 75 73 65 72 00 00 09 30 30 30 33 32 35 32 - ..пользователь ...0003252 [ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 03b0 30 37 00 00 06 6C 6F 63 61 6C 65 00 00 05 65 6E - 07 ... локаль... ru [ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 03c0 5F 55 53 00 00 09 73 65 73 73 69 6F 6E 69 64 00 - _US...идентификатор сессии.[Ср. 16 июня 10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 03d0 00 35 53 4D 53 5F 67 61 73 74 67 32 38 31 5F 64 - .5SMS_gastg281_d [ср 16 июня10: 34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 03e0 30 30 35 38 34 3A 3A 62 66 32 62 64 62 33 38 66 - 00584 :: bf2bdb38f [ср. 16 июня 10:34: 40.107 2010] [3796: 1872] [debug] jk_ajp_common.c (934): 03f0 63 65 62 38 31 38 62 62 64 39 30 34 61 62 33 64 - ceb818bbd904ab3d [ср. 16 июня 10: 34: 40.107 2010][3796: 1872] [debug] jk_ajp_common.c (1395): (sds-tomcat-worker) тело запроса на отправку 0 - тело запроса на повторную отправку 0 [ср. 16 июня 10: 34: 40.373 2010] [3796: 1872] [debug] jk_ajp_common.c (1117): получено от ajp13 pos = 0 len = 107 max = 8192 [ср. 16 июня 10: 34: 40.373 2010] [3796: 1872] [debug] jk_ajp_common.c (1117): 0000 04 00C8 00 02 4F 4B 00 00 02 00 0A 53 65 74 2D - ..... OK ..... Set-[Ср 16 июня 10: 34: 40.373 2010] [3796: 1872] [debug] jk_ajp_common.c (1117): 0010 43 6F 6F 6B 69 65 00 00 36 4A 53 45 53 53 49 4F - Cookie..6JSESSIO [Ср.16 июня 10: 34: 40.373 2010] [3796: 1872] [debug] jk_ajp_common.c (1117): 0020 4E 49 44 3D 39 35 39 41 37 30 32 38 37 45 30 33 - NID = 959A70287E03 [ср. 16 июня 10: 34: 40.373 2010] [3796: 1872] [debug] jk_ajp_common.c (1117): 0030 46 35 30 33 41 33 33 31 30 32 30 36 39 41 31 38 - F503A33102069A18 [ср. 16 июня 10: 34: 40.373 2010] [3796: 1872] [debug] jk_ajp_common.c (1117): 0040 46 37 42 35 3B 20 50 61 74 68 3D 2F 73 64 73 00 - F7B5; .Path = / sds.[Ср. 16 июня 10: 34: 40.373 2010] [3796: 1872] [debug] jk_ajp_common.c (1117): 0050 00 0C 43 6F 6E 74 65 6E 74 2D 54 79 70 65 00 00 - .. Тип контента.[Ср. 16 июня 10: 34: 40.373 2010] [3796: 1872] [debug] jk_ajp_common.c (1117): 0060 09 74 65 78 74 2F 68 74 6D 6C 00 00 00 00 00 00 - .text / html......

[ср. 16 июня 10: 34: 40.373 2010] [3796: 1872] [debug] jk_ajp_common.c (608): статус = 200 [ср. 16 июня 10: 34: 40.373 2010] [3796: 1872] [debug] jk_ajp_common.c (615): Количество заголовков равно = 2

Я включил ответ от ajp13, так как мне кажется, что он подтверждает мое подозрение, что ajp13 являетсяотключение моих данных cookie GetAccess.Вот почему я так думаю.Я изменил класс, который обрабатывает данные cookie, чтобы откачивать консольные сообщения, которые Tomcat захватывает и помещает в его stdout_yyyymmdd.log;Ниже следует фрагмент этого журнала, который включает в себя отчеты об обработке данных cookie:

SDSUser - SDSUser (req) - Имя файла cookie: JSESSIONID Содержимое файла cookie:1027 *

SDSUser - SDSUser (req) - Имя файла cookie: AUTH_SESSION_ID Содержимое файла cookie:

SMS_gastg281_d00584

SMS_gastg281_d00584

Имя пользователя SDS - SDSUser (req)GAUSERINFO Содержимое Cookie следующее:

first_name

first_name

В приведенном выше выводе класс сначала отображает все данные cookie, затем пунктирную строку, затем цикл по каждому элементув печенье.Для первых двух файлов cookie есть только одна часть.Но, как показывает вышеприведенный буфер, передаваемый процессору ajp13 (эта часть между строками «******»), файл cookie GetAccess имеет несколько параметров, разделенных символом «&», используя ключевое слово = значение для каждого параметра.Файл cookie GetAccess в этом примере содержит следующие данные, и результат обработки этих данных этим классом должен выглядеть следующим образом:

SDSUser - SDSUser (req) - Имя файла cookie: GAUSERINFO Содержимое файла cookie:

GAUSERINFO = first_name = RICHARD & last_name = CURRY & middle_initial = G & corporate_id = XXXXXXX

first_name = RICHARD last_name = CURRY middle_initial = G corporate_id = XXXXXXX

Кажется, что первый "=" это первый "в результате чего процессор ajp13 прекращает обработку файла cookie, и эта информация не передается в данных сеанса, которые поступают в Tomcat и в приложение, которому требуется эта информация.

Я ознакомился со Справочным руководством по соединителю Apache Tomcat Connector и другим связанным документом.включая документы, которые я нашел о разъеме AJPv13, но не увидел ничего, связанного с этой ситуацией.Я нашел одно сообщение в почтовом архиве пользователей Tomcat, в котором упоминалась похожая проблема;выдержка из этого:

"из http://mail-archives.apache.org/mod_mbox/tomcat-users/200912.mbox/%3c4B1A621C.908@apache.org%3e"Управляющий символ в значении cookie 05 дек 2009 13:37:32 GMT Тогда вам нужно беспокоиться о Base64, используя '=' в значениях cookie.Значение должно быть указано, чтобы это работало.Tomcat сделает это автоматически при необходимости.

Я искал в архивах нескольких списков рассылки (например, Gossamer Threads и Listware) и других сайтах поддержки, таких как Code Guru и Stack Overflow, и хотя я нахожу много информации о ISAPI Redirector, это одно сообщение только один похож на мою ситуацию.

Знание того, как функционирует ISAPI Redirector и процессор AJP13, является ли это правильной оценкой; что где-то в этой обработке "=" в значении cookie вызывает его обрезание? Если да, то где я могу начать поиск кода в ISAPI Redirector или AJP Connector, чтобы решить эту проблему?

Я ценю ваше время и внимание к моему запросу. Если вам нужна дополнительная информация, пожалуйста, дайте мне знать; Я с удовольствием предоставлю то, что могу. Я взволнован, чтобы найти решение этой ситуации.

1 Ответ

0 голосов
/ 13 августа 2010

Из другого источника я узнал, что формат текущего cookie-файла - V1, и Tomcat должен правильно обрабатывать данные cookie-файла, он должен быть в формате V2, то есть обернуть значение cookie в двойные кавычки ("").Это позволит Tomcat обрабатывать значение cookie со встроенными специальными символами, что невозможно с форматом V1.

...