List of usage examples for com.vaadin.server WrappedSession getId
public String getId();
From source file:org.vaadin.spring.security.managed.DefaultVaadinManagedSecurity.java
License:Apache License
/** * Clears the session of all attributes except some internal Vaadin attributes and reinitializes it. If Websocket * Push is used, the session will never be reinitialized since this throws errors on at least * Tomcat 8.//from w ww.j ava 2s . co m */ protected void clearAndReinitializeSession() { final VaadinRequest currentRequest = VaadinService.getCurrentRequest(); final UI currentUI = UI.getCurrent(); if (currentUI != null) { final Transport transport = currentUI.getPushConfiguration().getTransport(); if (Transport.WEBSOCKET.equals(transport) || Transport.WEBSOCKET_XHR.equals(transport)) { LOGGER.warn( "Clearing and reinitializing the session is currently not supported when using Websocket Push."); return; } } if (currentRequest != null) { LOGGER.debug("Clearing the session"); final WrappedSession session = currentRequest.getWrappedSession(); final String serviceName = VaadinService.getCurrent().getServiceName(); final Set<String> attributesToSpare = new HashSet<String>(); attributesToSpare.add(serviceName + ".lock"); attributesToSpare.add(VaadinSession.class.getName() + "." + serviceName); for (String s : currentRequest.getWrappedSession().getAttributeNames()) { if (!attributesToSpare.contains(s)) { LOGGER.trace("Removing attribute {} from session", s); session.removeAttribute(s); } } LOGGER.debug("Reinitializing the session {}", session.getId()); VaadinService.reinitializeSession(currentRequest); LOGGER.debug("Session reinitialized, new ID is {}", VaadinService.getCurrentRequest().getWrappedSession().getId()); } else { LOGGER.warn( "No VaadinRequest bound to current thread, could NOT clear/reinitialize the session after login"); } }