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

  • Автор темы GroodoAgony
  • Обновлено
  • 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), сессия не сохраняется. Как я могу это исправить?

GroodoAgony


Рег
02 Nov, 2012

Тем
58

Постов
204

Баллов
524
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно