Play Framework 未在初始页面加载时设置 cookie

Play Framework not setting cookie on initial page load

使用播放框架,在初始页面加载时未设置名为 TEST 的 cookie。相反,我看到 set-cookie header 仅用于名为 PLAY_SESSION 的 cookie。当我重新加载同一页面时,这次确实设置了名为 TEST 的 cookie。如果未找到初始 Play session,它是否会在自行设置之前不设置任何 cookie?

@AddCSRFToken
    public Promise<Result> post(String version) {           
        final LaunchRequest launchRequest = new LaunchRequest(request().body().asFormUrlEncoded(), false);

        Promise<ConsumerInstance> promiseOfConsumerInstance = null;
        try {
            promiseOfConsumerInstance = consumerInstanceDAO.getByConsumerKey(new ConsumerKey(launchRequest.getOauth_consumer_key()));
        } catch (DataAccessException e) {
            Logger.warn(e.getMessage());
        }

        if (promiseOfConsumerInstance != null) {
            Map<String, String> paramMap = launchRequest.toSortedMap();

            try {
                response().setCookie(
                        "TEST, CookieUtils.serializeParameters(paramMap), null, "/lti/debug");
            } catch (Exception e) {
                Logger.warn(e.getMessage(), e);
            }

            return promiseOfConsumerInstance.map(new ConsumerInstanceFunction(launchRequest)).recover(new RecoverFunction(launchRequest));
        }
        else {
            return null;
        }
    }

删除 @AddCSRFToken 逻辑解决了这个问题。我只能认为在这种方法中无法以某种方式修改响应,导致我无法对响应做任何事情。我什至无法设置一点 header。此页面已受到保护,因此删除它不是问题,但它如何与 Play 一起使用似乎仍然存在问题,这只是一种解决方法。