Чтобы устранить уязвимости, связанные с файлами cookie, я написал обертку по запросу и ответу в одном из своих фильтров. В оболочке запроса я перезаписываю файл cookie, используя следующий код в методе getSession (переопределено)
HttpSession session = getHttpServletRequest().getSession(false);
String value="JSESSIONID=" + session.getId() +"; Path="+getHttpServletRequest().getContextPath()+"/";
((HttpServletResponse)response).setHeader("Set-Cookie",value);
В ответном фильтре я переопределил методы addCookie и addHeader, чтобы сделать то же самое.
Приведенный выше код отлично работает для tomcat и jboss, но вызывает проблемы с websphere 8.5.
Для веб-сферы 8.5 он дает нулевой сеанс в методе getSession getHttpServletRequest().getSession(false)
Когда я проверяю сетевой трафик из инструментов разработчика браузеров, то для веб-сферы я заметил, что в ответ добавляется несколько файлов cookie (один, который мы добавили, а другой добавлен сервером), чтобы избежать этого, я сделал настройку в управлении сеансом веб-сферы, чтобы отключить файлы cookie. Это решает проблему с несколькими файлами cookie, но проблема с нулевым сеансом все еще сохраняется.
Как решить эту проблему?
Спасибо
getId()
. Пожалуйста, удалите фильтр и создайте PMR, если у вас есть какие-либо сомнения, связанные с безопасностью. - person Gas   schedule 25.03.2016