Spring 用于存储会话数据的加密cookie

Spring 用于存储会话数据的加密cookie,spring,spring-mvc,spring-security,Spring,Spring Mvc,Spring Security,我正在学习SpringMVC,但我无法理解会话数据存储的位置和方式 我想要实现的是将会话数据存储在发送到浏览器的加密cookie中。这是必要的,因为我计划在heroku上运行应用程序,heroku没有粘性会话。(这是一个我已经在python中使用的解决方案,通过使用金字塔和烧杯,我对此非常满意) 我有这个玩具控制器 public class HelloController implements Controller { protected final Log logger = LogF

我正在学习SpringMVC,但我无法理解会话数据存储的位置和方式

我想要实现的是将会话数据存储在发送到浏览器的加密cookie中。这是必要的,因为我计划在heroku上运行应用程序,heroku没有粘性会话。(这是一个我已经在python中使用的解决方案,通过使用金字塔和烧杯,我对此非常满意)

我有这个玩具控制器

public class HelloController implements Controller {

    protected final Log logger = LogFactory.getLog(getClass());

    public ModelAndView handleRequest(HttpServletRequest request,
                                      HttpServletResponse response)
            throws ServletException, IOException {

        logger.info("Returning hello view");

        Map<String, Object> myModel = new HashMap<String, Object>();
        myModel.put("key", "value");

        return new ModelAndView("hello", "model", myModel);
    }
}
在HandlerRequest方法中?我认为,如果会话不存在,则会启动该会话,否则会返回现有会话。但是这个会话存储在哪里?在浏览器中使用cookie?还是别的地方


如何指定会话必须放在cookie中,并设置用于加密会话的密钥?

我认为您不能直接告诉spring/web app将会话数据存储到cookie中

为了达到您的要求,您需要执行以下操作

  • 为要存储的每个数据创建每个cookie,然后将cookie添加到响应中

    Cookie c = new Cookie("sessionid", sessionid);
    res.addCookie(c);
    
  • 并从请求中读取cookie数据

    Cookie[] cookies = req.getCookies();
    
  • 在这种情况下,您还可以完全控制加密


    要使此过程自动化,意味着将会话数据同步到cookie,您将能够编写方面处理程序

    我认为您不能直接告诉spring/web app将会话数据存储到cookie中

    为了达到您的要求,您需要执行以下操作

  • 为要存储的每个数据创建每个cookie,然后将cookie添加到响应中

    Cookie c = new Cookie("sessionid", sessionid);
    res.addCookie(c);
    
  • 并从请求中读取cookie数据

    Cookie[] cookies = req.getCookies();
    
  • 在这种情况下,您还可以完全控制加密


    要使此过程自动化,意味着将会话数据同步到cookie,您将能够编写方面处理程序

    你知道spring将会话存储在哪里吗?我认为它与spring无关,它只会是HTTPSession,并且会在内存中。你知道spring将会话存储在哪里吗?我认为它与spring无关,它只会是HTTPSession,并且会在内存中。