Example usage for com.vaadin.server WrappedSession getMaxInactiveInterval

List of usage examples for com.vaadin.server WrappedSession getMaxInactiveInterval

Introduction

In this page you can find the example usage for com.vaadin.server WrappedSession getMaxInactiveInterval.

Prototype

public int getMaxInactiveInterval();

Source Link

Document

Returns the maximum time interval, in seconds, that this session will be kept open between client accesses.

Usage

From source file:com.haulmont.cuba.web.sys.CubaVaadinServletService.java

License:Apache License

public CubaVaadinServletService(VaadinServlet servlet, DeploymentConfiguration deploymentConfiguration)
        throws ServiceException {
    super(servlet, deploymentConfiguration);

    Configuration configuration = AppBeans.get(Configuration.NAME);
    webConfig = configuration.getConfig(WebConfig.class);
    webAuthConfig = configuration.getConfig(WebAuthConfig.class);
    testMode = configuration.getConfig(GlobalConfig.class).getTestMode();

    ServletContext sc = servlet.getServletContext();
    String resourcesTimestamp = sc.getInitParameter("webResourcesTs");
    if (StringUtils.isNotEmpty(resourcesTimestamp)) {
        this.webResourceTimestamp = resourcesTimestamp;
    } else {/*from w  w w. j  a v  a2 s . c o  m*/
        this.webResourceTimestamp = "DEBUG";
    }

    addSessionInitListener(event -> {
        WrappedSession wrappedSession = event.getSession().getSession();
        wrappedSession.setMaxInactiveInterval(webConfig.getHttpSessionExpirationTimeoutSec());

        HttpSession httpSession = wrappedSession instanceof WrappedHttpSession
                ? ((WrappedHttpSession) wrappedSession).getHttpSession()
                : null;

        log.debug("HttpSession {} initialized, timeout={}sec", httpSession,
                wrappedSession.getMaxInactiveInterval());
    });

    addSessionDestroyListener(event -> {
        WrappedSession wrappedSession = event.getSession().getSession();
        HttpSession httpSession = wrappedSession instanceof WrappedHttpSession
                ? ((WrappedHttpSession) wrappedSession).getHttpSession()
                : null;

        log.debug("HttpSession destroyed: {}", httpSession);
        App app = event.getSession().getAttribute(App.class);
        if (app != null) {
            app.cleanupBackgroundTasks();
        }
    });

    setSystemMessagesProvider(systemMessagesInfo -> {
        Locale locale = systemMessagesInfo.getLocale();

        CustomizedSystemMessages msgs = new CustomizedSystemMessages();

        if (AppContext.isStarted()) {
            try {
                Messages messages = AppBeans.get(Messages.NAME);

                msgs.setInternalErrorCaption(messages.getMainMessage("internalErrorCaption", locale));
                msgs.setInternalErrorMessage(messages.getMainMessage("internalErrorMessage", locale));

                msgs.setCommunicationErrorCaption(messages.getMainMessage("communicationErrorCaption", locale));
                msgs.setCommunicationErrorMessage(messages.getMainMessage("communicationErrorMessage", locale));

                msgs.setSessionExpiredCaption(messages.getMainMessage("sessionExpiredErrorCaption", locale));
                msgs.setSessionExpiredMessage(messages.getMainMessage("sessionExpiredErrorMessage", locale));
            } catch (Exception e) {
                log.error("Unable to set system messages", e);
                throw new RuntimeException("Unable to set system messages. "
                        + "It usually happens when the middleware web application is not responding due to "
                        + "errors on start. See logs for details.", e);
            }
        }

        String redirectUri;
        if (RequestContext.get() != null) {
            HttpServletRequest request = RequestContext.get().getRequest();
            redirectUri = StringUtils.replace(request.getRequestURI(), "/UIDL", "");
        } else {
            String webContext = AppContext.getProperty("cuba.webContextName");
            redirectUri = "/" + webContext;
        }

        msgs.setInternalErrorURL(redirectUri + "?restartApp");

        return msgs;
    });
}

From source file:edu.nps.moves.mmowgli.modules.registrationlogin.RegistrationPageBase.java

License:Open Source License

@HibernateUpdate
@HibernateUserUpdate//  ww  w. j  ava 2s.  c o m
private void wereInReallyTL(User _u_) {
    boolean updateneeded = false; // avoid db hit if possible

    if (currentPopup != null)
        UI.getCurrent().removeWindow(currentPopup); // app.getMainWindow().removeWindow(currentPopup);

    MmowgliSessionGlobals globs = Mmowgli2UI.getGlobals();
    globs.setLoggedIn(true);

    if (_u_ != null) {
        Object cacId = CACManager.getCacId(globs.getCACInfo());
        if (cacId == null) {
            if (_u_.getCacId() != null) {
                _u_.setCacId(null);
                updateneeded = true;
            }
        } else if (!_u_.getCacId().equals(cacId.toString())) {
            _u_.setCacId(cacId.toString());
            updateneeded = true;
        }
        //_u_.setCacId(cacId == null? null :cacId.toString());
        if (!_u_.isWelcomeEmailSent()) {
            MailManager mmgr = AppMaster.instance().getMailManager();
            mmgr.onNewUserSignupTL(_u_);
            _u_.setWelcomeEmailSent(true);
            updateneeded = true;
        }
        // If we're here, we've either been email-confirmed or that is not necessary; make sure here
        if (!_u_.isEmailConfirmed()) {
            _u_.setEmailConfirmed(true);
            updateneeded = true;
        }

        // Adjust session timeouts.  Default (standard user) is set in web.xml
        VaadinSession vsess = UI.getCurrent().getSession();
        WrappedSession sess = vsess.getSession();
        if (_u_.isGameMaster())
            sess.setMaxInactiveInterval(GAMEMASTER_SESSION_TIMEOUT_SECONDS);
        if (_u_.isAdministrator())
            sess.setMaxInactiveInterval(ADMINSTRATOR_SESSION_TIMEOUT_SECONDS);

        MSysOut.println(SYSTEM_LOGS,
                "Vaadin heartbeat interval (sec): " + vsess.getConfiguration().getHeartbeatInterval());
        MSysOut.println(SYSTEM_LOGS,
                "Tomcat timeout (\"maxInactiveInterval\") (sec): " + sess.getMaxInactiveInterval());
        GameEventLogger.logUserLoginTL(_u_);
        if (updateneeded) {
            User.updateTL(_u_);
        }

        HSess.closeAndReopen(); // should be ok
        _u_ = User.merge(_u_, HSess.get());

        MmowgliController cntlr = globs.getController();
        if (cntlr != null)
            cntlr.handleEventTL(MmowgliEvent.HANDLE_LOGIN_STARTUP, _u_, null); //don't want User.get() in this session, userId, null);
        else
            System.err.println("No controller in RegistrationPageBase.wereIn()");

        AppMaster.instance().sendMySessionReport();
    }
}