2

Spring MVC を学んでいますが、セッション データがどこにどのように保存されているのか理解できません。

私が達成したいのは、ブラウザに送信される暗号化された Cookie にセッション データを保存することです。スティッキー セッションを持たない 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);
    }
}

電話したらどうなるの

        HttpSession session = request.getSession();

handleRequest メソッドで? セッションが存在しない場合はセッションが開始され、それ以外の場合は既存のセッションが返されると思います。しかし、このセッションはどこに保存されるのでしょうか? ブラウザでクッキーを使用していますか?それとも別の場所ですか?

セッションを Cookie に入れる必要があることを指定し、暗号化に使用する必要があるキーを設定するにはどうすればよいですか?

4

1 に答える 1

0

スプリング/ウェブアプリにセッションデータをCookieに保存するように直接指示することはできないと思います。

要件を達成するには、以下を行う必要があります

  1. 保存するデータごとに各Cookieを作成し、応答にCookieを追加します

    Cookie c = new Cookie("sessionid", sessionid);
    res.addCookie(c);
    
  2. リクエストからCookieデータを読み取ります

    Cookie[] cookies = req.getCookies();
    

この場合、暗号化も完全に制御できます。

このプロセスを自動化するということは、セッションデータをCookieに同期することを意味し、アスペクトハンドラーを記述できるようになります。

于 2012-07-24T14:22:06.557 に答える