【问题标题】:How to set the SessionID while creating the Session in Java Rest API如何在 Java Rest API 中创建 Session 时设置 SessionID
【发布时间】:2019-05-19 14:22:24
【问题描述】:

我的目标是使用 JSESSIONID 在 java 中创建一个会话,我正在传递请求 cookie,以便当我再次发送请求时,我可以每次都使用相同的会话,并且不会使用新的会话 ID 创建新会话。

    public ObjectRestResponse<String> storeToken(StoreMobileTokenRequest tokenRequestBody, HttpServletRequest request) {
        ObjectRestResponse<String> response = new ObjectRestResponse<String>();

        System.out.println("SessionIdFromRequest"+request.getCookies());
        HttpSession session = request.getSession();
        System.out.println("SessionId"+session.getId());

        HashMap<String, String> hmpAttribute  =null;
        if(session.getAttribute("NotificationToken") == null) {
             hmpAttribute = new HashMap<String, String>();  
            hmpAttribute.put(tokenRequestBody.getEmpNo(), tokenRequestBody.getTokenId());

            session.setAttribute("NotificationToken", hmpAttribute);

        }

        else {
            hmpAttribute = (HashMap<String, String>) session.getAttribute("NotificationToken");
            hmpAttribute.put(tokenRequestBody.getEmpNo(), tokenRequestBody.getTokenId());
            session.setAttribute("NotificationToken", hmpAttribute);

        }

        response.setData("Success");
        return response;
    }

但是对于来自 Rest 客户端的每个新请求,都会创建一个新会话,而不是使用旧会话。

请告诉我我做错了什么或我需要做什么。

【问题讨论】:

    标签: java rest httprequest session-cookies jsessionid


    【解决方案1】:

    会话 cookie 由 服务器 创建并返回给客户端,然后客户端必须在后续请求中发送会话 cookie。

    服务器可以随时发送新的会话 cookie,然后客户端必须立即开始使用更新的 cookie。

    创建 cookie 值的绝不是客户端。

    【讨论】:

    • 您好,感谢您的更新。但我有不同的客户,但他们都想使用同一个会话。所以说我的第一个客户端将请求发送到服务器并创建了会话。但我希望我的第二个客户使用相同的会话。我在某处检查过,如果我从每个客户端传递 cookie 中的固定 JSESSIONID,那么我可以使用相同的会话。请告诉它是否可能。
    • @Ashutosh 那是会话窃取,不应该这样做。如果您想要一些高级“会话”在多个客户端之间共享状态,那么您应该自己实现它,而不是尝试破解客户端 Servlet Session。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 2018-12-19
    • 2020-12-14
    • 2019-12-01
    • 2014-10-03
    • 2016-11-16
    相关资源
    最近更新 更多