una que por pestañas pestaña netscape navegacion memoria internet interfaz informatica herramientas grafica google ejecutar consumida colores chrome botones session login vaadin7

session - que - Vaadin cierra la interfaz de usuario del mismo usuario en otro navegador/pestaña/sistema



navegacion por pestañas google chrome (1)

Tengo una situación similar a su donde necesito mostrar información sobre todas las sesiones. Lo que hice fue crear mi propio Servlet extendiendo el VaadinServlet con un chorro de señal estático simultáneo para guardar la información de mi sesión, y un SessionDestroyListener para eliminar cualquier información del mapa al cerrar la sesión. Inicialmente también tenía un SessionInitListener donde agregué la información en el hashmap, pero me di cuenta de que solo tenía la información del usuario después de la autenticación, así que moví esta parte a la página que maneja el inicio de sesión.

Supongo que podrías hacer algo similar, o al menos esto debería ayudarte a empezar:

public class SessionInfoServlet extends VaadinServlet { private static final ConcurrentHashMap<User, VaadinSession> userSessionInfo = new ConcurrentHashMap<>(); // this could be called after login to save the session info public static void saveUserSessionInfo(User user, VaadinSession session) { VaadinSession oldSession = userSessionInfo.get(user); if(oldSession != null){ // close the old session oldSession.close(); } userSessionInfo.put(user, session); } public static Map<User, VaadinSession> getUserSessionInfos() { // access the cache if we need to, otherwise useless and removable return userSessionInfo; } @Override protected void servletInitialized() throws ServletException { super.servletInitialized(); // register our session destroy listener SessionLifecycleListener sessionLifecycleListener = new SessionLifecycleListener(); getService().addSessionDestroyListener(sessionLifecycleListener); } private class SessionLifecycleListener implements SessionDestroyListener { @Override public void sessionDestroy(SessionDestroyEvent event) { // remove saved session from cache, for the user that was stored in it userSessionInfo.remove(event.getSession().getAttribute("user")); } } }

Estoy haciendo un proyecto en Vaadin 7. En eso necesito implementar algo como a continuación para el inicio de sesión.

Un usuario ''A'' ha iniciado sesión en un sistema ''1''. Y de nuevo inicia sesión en otro sistema ''2''. Ahora quiero saber cómo cerrar la interfaz de usuario en el sistema ''1''.

Intenté algo y puedo cerrar la interfaz de usuario, si es el mismo navegador. Pero, para diferentes sistemas / navegador. No tengo idea.

Mi código:

private void closeUI(String attribute) { for (UI ui : getSession().getUIs()) { if(ui.getSession().getAttribute(attribute) != null) if(ui.getSession().getAttribute(attribute).equals(attribute)) ui.close(); } }

Alguien me puede ayudar en esto?