Play Framework 2.3 CSRF保护

时间:2014-10-24 17:33:03

标签: playframework-2.0 csrf

我正在使用Java Play Framework 2.3.5并希望添加全局CSRF保护,如下所述:https://www.playframework.com/documentation/2.3.x/JavaCsrf

如果我复制并粘贴以下代码:

import play.GlobalSettings;
import play.api.mvc.EssentialFilter;
import play.filters.csrf.CSRFFilter;

public class Global extends GlobalSettings {
  @Override
  public <T extends EssentialFilter> Class<T>[] filters() {
    return new Class[]{CSRFFilter.class};
    }
}

csrfToken值将与普通的cookie值连接,而不是像我预期的那样创建一个新的cookie。

PLAY_SESSION="b8c5eead5e95be30edaccec5680aa58fb1b5cae5-csrfToken=4dfb0c575ac272f9b9e457e40a287c81972baec5-1414171392926-af3ee2c36fdbdbf65c68dcc4"; path=/; domain=localhost; HttpOnly

我不知道以任何方式搞乱Play会话管理。我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:3)

来自文档:

  

可以在application.conf中配置以下选项:

     

csrf.cookie.name - 如果已配置,Play会将CSRF令牌存储在具有给定名称的cookie中,而不是存储在会话中。