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