如何有选择地禁用CSRF检入播放框架2(Java)

如何有选择地禁用CSRF检入播放框架2(Java),java,facebook,security,playframework,playframework-2.0,Java,Facebook,Security,Playframework,Playframework 2.0,在游戏框架中,我们可以应用全局CSRF检查 @SuppressWarnings({ "rawtypes", "unchecked" }) @Override public <T extends EssentialFilter> Class<T>[] filters() { Class[] filters = { CSRFFilter.class }; return filters; } @SuppressWarnings({“rawtypes”,“un

在游戏框架中,我们可以应用全局CSRF检查

@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public <T extends EssentialFilter> Class<T>[] filters() {
    Class[] filters = { CSRFFilter.class };

    return filters;
}
@SuppressWarnings({“rawtypes”,“unchecked”})
@凌驾
公共类[]过滤器(){
类[]过滤器={CSRFFilter.Class};
回流过滤器;
}
这在大多数情况下都很好。但我想设置Facebook画布页面,指向我们的网站。问题是Facebook向我们的网站发送POST请求,而CSRF检查阻止了该请求。它总是返回“无效的CSRF令牌”

所以我想在一些操作中选择性地禁用CSRF检查,比如www.ourwebsite.com/canvas


这可行吗?

我写了一篇关于如何做到这一点的博文,请参见此处:


2017年更新:从PlayFramework 2.6开始,它现在包含在框架本身中:

您有这个答案的Java版本吗?也就是说,
Global
是用Java编写的,而不是Scala。您为什么需要Java版本?正如在博客文章中所看到的,你也可以从java控制器中使用这个功能。我想我不需要它,但是我的
Global
已经是用java编写的,我不知道如何在Scala中重写它(或者,至少,这样做需要很多时间,因为我对Scala不太了解)。