Home  >  Forum  >  Spring
Post New Query

Sessions are not persisting in the database for each user in same browser with different tabs using Spring Sessions with MySQL


joined on
January 24,2017
Asked on January 24,2017

I'm currently using db (mysql) to store my sessions with spring.It is generating new session id for each user .but it is replacing session id's of previously who are logged. Please give some suggestions to overcome this problem. The following is the service which is i am calling from controller for each request

public class MultiLoginServiceImpl
{
        public static String createMultiLogin(HttpServletRequest httpRequest)
        {

                String alias = httpRequest.getParameter("_s");
                System.err.println("alias"+alias);
                @SuppressWarnings("unchecked")

            SessionRepository<Session> sessionRepository =(SessionRepository<Session>) httpRequest.getAttribute(SessionRepository.class.getName());

                Map<String, String> sessionIds = sessionManager.getSessionIds(httpRequest);
                System.out.println(sessionIds);
                for(Map.Entry<String, String> entry : sessionManager.getSessionIds(httpRequest).entrySet()) {

                    String aliasId = entry.getKey();
                    String sessionId = entry.getValue();
                    HttpSession httpSession = httpRequest.getSession(false);
                    Session storedSession = sessionRepository.getSession(sessionId);
                    if(storedSession.getAttribute("userEmailId")!= null)
                    {
                        httpSession.setAttribute("userEmailId", storedSession.getAttribute("userEmailId"));
                    }
                    System.out.println("mapids"+aliasId +" : "+sessionId);
                }

                String addAlias = alias== null ? newSessionAlias1: requestedSessionAlias1; 

                /*if(alias == null || "".equals(alias.trim()))
                {
                        alias = sessionManager.getNewSessionAlias(httpRequest);
                }*/
                httpRequest.setAttribute("alias",addAlias);
                //SecurityContext context = (SecurityContext) httpSession.getAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY);
                //System.out.println(context.toString());
                String addAccountUrl = sessionManager.encodeURL(httpRequest.getContextPath(), addAlias); 
                System.out.println("addalias"+addAlias);
                return addAccountUrl ;

        }
}

Write Answer








Copyright ©2017 concretepage.com, all rights reserved |Privacy Policy | Contact Us