package fi.otavanopisto.muikku.plugins.logout; import java.util.logging.Level; import java.util.logging.Logger; import javax.ejb.Stateful; import javax.enterprise.context.RequestScoped; import javax.enterprise.event.Event; import javax.inject.Inject; import javax.inject.Named; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import fi.otavanopisto.muikku.events.LogoutEvent; import fi.otavanopisto.muikku.session.local.LocalSession; import fi.otavanopisto.muikku.session.local.LocalSessionController; @Named @Stateful @RequestScoped public class LogoutWidgetBackingBean { @Inject private Logger logger; @Inject @LocalSession private LocalSessionController localSessionController; @Inject private Event<LogoutEvent> logoutEvent; @Inject private HttpServletRequest request; public void logout() { localSessionController.logout(); logoutEvent.fire(new LogoutEvent()); HttpSession session = request.getSession(); if (session != null) { try { session.invalidate(); } catch (Exception e) { logger.log(Level.SEVERE, "Failed to invalidate http session", e); } } } }