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

时间:2015-06-15 16:43:58

标签: java cookies playframework playframework-2.0 session-cookies

使用play框架,初始页面加载时未设置名为TEST的cookie。相反,我看到set-cookie标头仅用于名为PLAY_SESSION的cookie。当我重新加载同一页面时,这个名为TEST的cookie确实会被设置。如果找不到初始播放会话,是否在设置之前没有设置任何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;
        }
    }

1 个答案:

答案 0 :(得分:0)

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

相关问题