Сеанс сервлета недействителен - PullRequest
2 голосов
/ 23 октября 2010

У меня есть 2 приложения на 2 разных серверах - Tomcat (в основном файл .WAR) и EAR в jBoss.

EAR - это приложение многократного использования, в котором я буду аутентифицировать пользователя и отправлять обратно элемент управленияприложение на Tomcat.Во время аутентификации я создаю объект сеанса в приложении jBoss.

Когда я отправляю обратно элемент управления в приложение на Tomcat, я спрашиваю пользователя, хочет ли он подписать приложение для проверки подлинности.Если пользователь нажимает кнопку «Да», мне придется выйти из него из приложения аутентификации

Вопросы

1) Я прочитал, что Фильтр - лучший способ сделать сеанс недействительным.В моем случае, поскольку приложение для проверки подлинности предназначено для использования более чем одним пользователем, как фильтр узнает, какой сеанс необходимо аннулировать?

2) Должен ли я передавать идентификатор сеанса, созданный в приложении jBoss, вПриложение Tomcat, чтобы, когда пользователь решит выйти из системы, мне нужно будет передать тот же идентификатор сеанса в приложение jBoss, чтобы Фильтр стал недействительным?

1 Ответ

2 голосов
/ 23 октября 2010

Вам не нужен фильтр.Простой сервлет сделает:

public LogoutServlet extends HttpServlet {
    @Override
    public void doGet(...) {
       request.getSession().invalidate();
    }
}

Затем сопоставьте этот сервлет с /lougout в web.xml, и всякий раз, когда пользователь хочет выйти из системы, его следует отправить на http://youhost/yourapp/logout.

* 1008.* Если вы хотите выйти из него, когда он уже работает с сервером Tomcat, вам нужно будет перенаправить его обратно на сервер JBoss, чтобы аннулировать там сеанс.

Обратите внимание, что request.getSession() получает текущий сеанс - то есть тот, который принадлежит пользователю, выполняющему запрос.Ваш контейнер сервлетов (сервер) обрабатывает это для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...