Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Сервер не принимает JSESSIONID в URL Java EE / 25 сообщений из 27, страница 1 из 2
09.02.2018, 18:59
    #39599854
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
Сервер Tomcat 8.

web.xml

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <session-config>
        <cookie-config>
            <name>8O8488WlWWgNzAkGCFYAZyj3Bn91CR</name>
            <http-only>true</http-only>
        </cookie-config>
        <tracking-mode>URL</tracking-mode>
        <tracking-mode>COOKIE</tracking-mode>
    </session-config>

</web-app>



Делаю я запрос на сервер http://localhost:81/test;8O8488WlWWgNzAkGCFYAZyj3Bn91CR=6AD977F9B1F4369A932C519BC418FE8D.

Но при этом создаётся новая сессия или берется та которая записалась в куки. Я копировал значение сессии в url, а с кук удалял и по идее он должен был подтянуть с url, но увы.

В чем проблема?
...
Рейтинг: 0 / 0
09.02.2018, 19:57
    #39599872
kunaksergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
Tsyklop,
Я конечно не знаток,но может попробовать
http://localhost:81/test;jsessionid=8O8488WlWWgNzAkGCFYAZyj3Bn91CR=6AD977F9B1F4369A932C519BC418FE8D.
...
Рейтинг: 0 / 0
12.02.2018, 09:15
    #39600393
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
Tsyklop,

Вы что-то сконфигурировали не объясняя зачем. Нам нужно угадать что именно вы хотели реализовать и затем исправить. Что не так с jsessionid? У вас есть уверенность что ваш конфиг полностью заменяет jsessionid или, всего лишь, дополняеет его некими куками?
...
Рейтинг: 0 / 0
12.02.2018, 10:51
    #39600450
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
BlazkowiczTsyklop,

Вы что-то сконфигурировали не объясняя зачем. Нам нужно угадать что именно вы хотели реализовать и затем исправить. Что не так с jsessionid? У вас есть уверенность что ваш конфиг полностью заменяет jsessionid или, всего лишь, дополняеет его некими куками?

Я делаю так:

http://qwerty.localhost:82/Server/chat/connect;8O8488WlWWgNzAkGCFYAZyj3Bn91CR=12DFE4317AA62143439889EC1343FB87 или так
http://qwerty.localhost:82/Server/chat/connect/;8O8488WlWWgNzAkGCFYAZyj3Bn91CR=12DFE4317AA62143439889EC1343FB87
И при этом у меня создаётся новая сессия, хотя в Network видно что сессия передаётся что в куках что я в url передаю.
...
Рейтинг: 0 / 0
12.02.2018, 10:52
    #39600452
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
Blazkowicz,

я немного изменил настройки в web.xml. Так можно делать из документации. Если такого не знаете, то уж извините. Что-то еще пояснять нужно. Пример web.xml я привел.
...
Рейтинг: 0 / 0
12.02.2018, 11:09
    #39600467
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
Tsyklop,

Такой дерзкий. Посмотри ServletContext в рантайме. Попали ли настройки из web.xml в него.
Если попапали, то настрой TRACE или DEBUG логирование в томкате чтобы посмотреть как он сессии создаёт. Я не удивлюсь если там где-то хардкод на jsessionid просочился.
...
Рейтинг: 0 / 0
12.02.2018, 11:15
    #39600475
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
Blazkowicz,

Проверял уже. все попадает. Да и если б не попали то кука бы ставилась JSESSIONID, а не как я задал.

"Я не удивлюсь если там где-то хардкод на jsessionid просочился." - не понял немножко.
...
Рейтинг: 0 / 0
12.02.2018, 11:17
    #39600477
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
TsyklopBlazkowicz,

Проверял уже. все попадает. Да и если б не попали то кука бы ставилась JSESSIONID, а не как я задал.

"Я не удивлюсь если там где-то хардкод на jsessionid просочился." - не понял немножко.
В томкате, возможно, где-то есть хардкод на jsessionid и поэтому с кастомной кукой не всё правильно работает. Есть смысл прочитать логи создания сессии и проверить исходный код Tomcat.
...
Рейтинг: 0 / 0
12.02.2018, 11:25
    #39600480
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
Blazkowicz,

Включил DEBUG, но ничего не поменялось. Логов подробных нет. У меня есть свой Listener на сессию. И я вижу что он её создаёт.
...
Рейтинг: 0 / 0
12.02.2018, 11:44
    #39600491
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
TsyklopBlazkowicz,

Включил DEBUG, но ничего не поменялось. Логов подробных нет. У меня есть свой Listener на сессию. И я вижу что он её создаёт.
Вот тут?
https://tomcat.apache.org/tomcat-8.5-doc/logging.html
Там где org.apache.catalina.core.ContainerBase?

Как, вариант, можно поставить точку останова в слушателе, подключить исходники томката и посмотреть по стеку выше по какому именно условию он решил создать новую сессию.
...
Рейтинг: 0 / 0
12.02.2018, 11:53
    #39600497
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
BlazkowiczTsyklopBlazkowicz,

Включил DEBUG, но ничего не поменялось. Логов подробных нет. У меня есть свой Listener на сессию. И я вижу что он её создаёт.
Вот тут?
https://tomcat.apache.org/tomcat-8.5-doc/logging.html
Там где org.apache.catalina.core.ContainerBase?

Как, вариант, можно поставить точку останова в слушателе, подключить исходники томката и посмотреть по стеку выше по какому именно условию он решил создать новую сессию.

Вот такое у меня есть в конфиге:

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = FINEST
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = FINEST
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = FINEST
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler

FINEST поставил я. Это значит debug из документации
...
Рейтинг: 0 / 0
12.02.2018, 12:05
    #39600506
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
Blazkowicz,

Кароче вместо своего название сессии поставил JSESSIONID и походу все заработало. Походу его захардкодили.
...
Рейтинг: 0 / 0
12.02.2018, 12:09
    #39600510
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
Blazkowicz,

Нет. перестало работать
...
Рейтинг: 0 / 0
12.02.2018, 12:11
    #39600511
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
TsyklopВ чем проблема?А откуда вы взяли, что в session-config можно записать загадочный параметр NAME?
Лично я в документации котяры ничего такого не вижу.
зато есть The Context Container
...
cookies
Set to true if you want cookies to be used for session identifier communication if supported by the client ( this is the default ).
Set to false if you want to disable the use of cookies for session identifier communication, and rely only on URL rewriting by the application.
...
...
Рейтинг: 0 / 0
12.02.2018, 12:24
    #39600518
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
Basil A. Sidorov,

потому что гугл подсказал что так можно. И это работает. Если бы не работало то нельзя было писать там такое.
...
Рейтинг: 0 / 0
12.02.2018, 12:26
    #39600519
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
Basil A. Sidorovпараметр NAME?
Лично я в документации котяры ничего такого не вижу.[spoiler зато есть]http://tomcat.apache.org/tomcat-8.0-doc/config
Так это сервлеты 3.0/3.1, к томкату это прямого отношения не имеет. В XSD есть. В ServletContext есть аналогичные методы, можно явой сконфигурировать.
...
Рейтинг: 0 / 0
12.02.2018, 12:31
    #39600523
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
Так я и пытался в спеке сервлетов отыскать. Даже в xsd заглянул.
Только не нашёл ни самого параметра, ни описания - что же он должен делать.
...
Рейтинг: 0 / 0
12.02.2018, 12:34
    #39600527
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
Tsyklopпотому что гугл подсказал что так можно. И это работает. Если бы не работало то нельзя было писать там такое.Сразу три заблуждения.
1. Гугл много чего подсказывает. В диапазоне от очевидной банальщины до неочевидной лжи;
2. У вас - не работает;
3. Нельзя написать потому, что будет ошибка и можно написать, но будет только запись в логе - разные вещи.
...
Рейтинг: 0 / 0
12.02.2018, 12:37
    #39600530
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
Basil A. Sidorov,

Если что-то не так в web.xml у меня сервер не стартует вообще.
...
Рейтинг: 0 / 0
12.02.2018, 12:38
    #39600532
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
Basil A. Sidorov,

Это запись (в web.xml) работает, так как кука мне ставится с именем именно тем которым я указал в web.xml
...
Рейтинг: 0 / 0
12.02.2018, 12:42
    #39600537
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
Basil A. Sidorov,

https://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-common_3_1.xsd
https://docs.oracle.com/javaee/7/api/javax/servlet/SessionCookieConfig.html

Код: xml
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.
  <xsd:complexType name="cookie-configType">
    <xsd:annotation>
      <xsd:documentation>

        The cookie-configType defines the configuration for the
        session tracking cookies of this web application.
        
        Used in: session-config
        
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="name"
                   type="javaee:cookie-nameType"
                   minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>

            The name that will be assigned to any session tracking
            cookies created by this web application.
            The default is JSESSIONID
            
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
...
Рейтинг: 0 / 0
12.02.2018, 12:45
    #39600539
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
TsyklopНет. перестало работать
Так если JSESSIONID не работает, то дело, может не в конфиге, а в CORS и HTTP-Only?
...
Рейтинг: 0 / 0
12.02.2018, 12:49
    #39600543
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
BlazkowiczTsyklopНет. перестало работать
Так если JSESSIONID не работает, то дело, может не в конфиге, а в CORS и HTTP-Only?

Ну HTTP-Only же отвечает за то что эту куку нельзя получить js и все. Не знаю как она может на такое влиять.


А вот CORS...

Просто я создал пустую страницу /blank.
Перехожу на неё так http://localhost:82/blank;8O8488WlWWgNzAkGCFYAZyj3Bn91CR=C3425859924EBB7E5CA54144F47EE1EE , и у меня все нормально, то бишь id сессии берется с url.
Хотя тот запрос ничем по сути не отличается.
...
Рейтинг: 0 / 0
12.02.2018, 12:51
    #39600545
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
Тогда, вероятно, проблема в том, что синтаксис http-запроса:
Код: plaintext
 метод://хост/ресурс ? имя1=значение1
а не:
Код: plaintext
 метод://хост/ресурс : имя1=значение1
Ну и доку, в которой указано умалчиваемое поведение отслеживания сессий - тоже надо посмотреть.
...
Рейтинг: 0 / 0
12.02.2018, 12:54
    #39600552
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер не принимает JSESSIONID в URL Java EE
Basil A. SidorovТогда, вероятно, проблема в том, что синтаксис http-запроса:
Код: plaintext
 метод://хост/ресурс ? имя1=значение1
а не:
Код: plaintext
 метод://хост/ресурс : имя1=значение1
Ну и доку, в которой указано умалчиваемое поведение отслеживания сессий - тоже надо посмотреть.

параметр не канает. тем не : , а ; . Локально все работает правильно. Значит дело походу в CORS
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Сервер не принимает JSESSIONID в URL Java EE / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]