Мы перенесли наше приложение с JBoss 5 на JBoss6, и одной из основных причин этого является использование новых возможностей сервлета 3.0. Все работает нормально, за исключением одной новой функции JBoss 6 и сервлета 3.0: установка cookie сеанса для передачи только через безопасный канал, даже если запрос был сделан через простой HTTP. Для нас это очень важная функция безопасности, которая достигается добавлением
<secure>true</secure>
в web.xml. Это часть нашего web.xml:
<session-config>
<session-timeout>25</session-timeout>
<cookie-config>
<http-only>true</http-only>
<secure>true</secure>
</cookie-config>
<tracking-mode>COOKIE</tracking-mode>
Когда мы удаляем
<secure>true</secure>
, все работает нормально. Когда он есть, для каждого запроса создается новый jsessionid, даже если он находится на защищенной странице (HTTPS) или на незащищенной странице (HTTP). Кроме того, вход в систему не работает, поскольку после входа в систему с безопасными учетными данными пользователь перенаправляется обратно на страницу входа.
Я полагаю, что это также может быть проблемой с Tomcat 7, поскольку он также использует спецификацию сервлета 3.0. Мы будем очень благодарны за любой совет.
С уважением