Я занимаюсь разработкой некоторых приложений J2EE, которые должны иметь общую точку входа в систему. Мои приложения размещены на сервере приложений GlassFish v3.
Существует защита на основе web.xml с методом FORM (HTML-форма с действием "j_security_check") и JDBC Realm на источнике данных PostgreSQL 8.4. Он работал абсолютно нормально, когда GlassFish SSO был отключен.
Теперь SSO включен на странице HTTP-службы GF, и он действительно отлично работает, когда мне нужно войти в систему. Каждое мое приложение позволяет зарегистрированному пользователю войти в систему. Но здесь есть другая проблема.
Мой выход из системы сервлет теперь работает правильно только тогда, когда я дважды нажимаю «Выйти».
После первого щелчка «Выйти» я останусь в системе. Код сервлета указан ниже.
public class LogoutServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//request.logout(); // tried this too
request.getSession().invalidate(); // used to work properly
response.sendRedirect("./"); // to welcome page
}
}
Буду рад за несколько полезных советов.
Спасибо.