Cookie определен в weblogic.xml
<session-descriptor>
<cookie-name>A_JSESSIONID</cookie-name>
</session-descriptor>
Когда мы используем соединение HTTPS, файл cookie A_JSESSIONID не имеет безопасного статуса.
Обнаружено, что при проверке безопасности с помощью Burp обнаружена проблема с файлом cookie SSL без установленного флажка безопасности.
Я не могу использовать
<cookie-secure>true</cookie-secure>
потому что наше приложение может также использоваться HTTP.
Я пытался установить безопасный статус в фильтре
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException {
try {
HttpServletRequest request = (HttpServletRequest) servletRequest;
Cookie[] cookies = request.getCookies();
if(cookies!=null && servletRequest.isSecure())
{
for (Cookie cookie : cookies) {
logger.debug("set Secure for cookie: " + cookie.getName());
cookie.setSecure(true);
}
}
...
Регистратор показывает файл cookie A_JSESSIONID. Но это не работает. Это все еще не безопасно.
Я также нашел информацию (https://docs.oracle.com/cd/E23943_01/web.1111/e13711/thin_client.htm#SCPRG139):
Сервер WebLogic использует два файла cookie: файл cookie JSESSIONID и
_WL_AUTHCOOKIE_JSESSIONID cookie. По умолчанию cookie JSESSIONID никогда не является безопасным, но cookie _WL_AUTHCOOKIE_JSESSIONID всегда
безопасный. Безопасный файл cookie отправляется только при зашифрованной связи
канал используется. Предполагая стандартный вход в систему HTTPS (HTTPS является
зашифрованное соединение HTTP), ваш браузер получает оба куки.
AuthCookieEnabled имеет значение true в консоли WebLogic, но я не вижу _WL_AUTHCOOKIE_A_JSESSIONID в моем списке файлов cookie. Просто A_JSESSIONID без защищенного статуса.
Как я могу динамически установить безопасность файлов cookie weblogic?
Или как я могу найти _WL_AUTHCOOKIE_A_JSESSIONID?
Спасибо.