【发布时间】:2015-06-15 16:43:58
【问题描述】:
使用播放框架,名为 TEST 的 cookie 不会在初始页面加载时设置。相反,我看到仅用于名为 PLAY_SESSION 的 cookie 的 set-cookie 标头。当我重新加载同一个页面时,这个名为 TEST 的 cookie 确实被设置了。如果未找到初始 Play 会话,是否在设置自身之前不会设置任何 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;
}
}
【问题讨论】:
-
您是否调试过您的操作?你确定
if (promiseOfConsumerInstance != null)在第一次通话中是真的吗?只是猜测。 -
此页面中有一个 POST 尝试读取该 TEST cookie。在第一次会话加载时它为 NULL,否则我可以抓住它。
标签: java cookies playframework playframework-2.0 session-cookies