JSESSIONID не сохраняется

  • Автор темы Павел Поздняков
  • 34
  • Обновлено
  • 17, May 2024
  • #1
У меня есть сервер, на котором запущен сервер Tomcat с приложением Java. Кроме того, запустите также сервер Apache2, который работает как обратный прокси-сервер, где я установил 2 виртуальных хоста.
 

@Controller

@RequestMapping(value = "/sess")

public class TestSession{

@RequestMapping(method = RequestMethod.GET)

public void mainPage(HttpServletRequest request, HttpServletResponse response) throws IOException{

HttpSession session = request.getSession();

response.setContentType("text/html");

response.getWriter().println(session.getId());

}

}
Код (ApacheConf): Моя проблема в том, что сеанс не сохраняется между запросами.

При каждом сеансе запроса имеется другой идентификатор. Я проверяю это с помощью этого:
  #HTTP(www/non-www) -> HTTPS(non-www) <VirtualHost *:80> ServerName mydom.com ServerAlias www.mydom.com Redirect permanent / [URL='https://lumtu.com/yti/bvNNvbS9odHRwczovL215ZG9tLmt9G']https://mydom.com/[/URL] </VirtualHost> #ACTIVATE HTTPS AND REVERSE PROXY -> myapp <VirtualHost *:443> SSLEngine On SSLCertificateFile /opt/ssl/new/mydom.crt SSLCertificateKeyFile /opt/ssl/new/mydom.key SSLCertificateChainFile /opt/ssl/new/mydom.ca-bundle BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL ServerName mydom.com ServerAlias www.mydom.com ProxyRequests Off ProxyPreserveHost On ProxyPass / [URL='https://lumtu.com/yti/cAXXAcC9odHRwOi8vMTI3LjAuMC4xL215Y12L']http://127.0.0.1:8080/myapp/[/URL] ProxyPassReverse / [URL='https://lumtu.com/yti/cAXXAcC9odHRwOi8vMTI3LjAuMC4xL215Y12L']http://127.0.0.1:8080/myapp/[/URL] </VirtualHost> 
Код (разметка): я получаю к нему доступ следующим образом: mydom.com/sess, и на странице печатается идентификатор сеанса. На первом этапе я подумал, что это проблема в моем приложении. Но я проверил это на локальном хосте на своем ПК, и все работает.

Сессия сохраняется. Через некоторое время я обнаружил, что проблема в том, как я получаю доступ к своему приложению. Если я вставлю адресную строку https:// mydom.com/sess, сессия сохраняется. Если я поставлю только mydom.com/sess (перенаправление на https), сессия не сохраняется. Как я могу это исправить?

Павел Поздняков


Рег
02 Nov, 2012

Тем
1

Постов
2

Баллов
12
Тем
49554
Комментарии
57426
Опыт
552966