如何在Play Framework 2(Java)中有选择地禁用CSRF检查

时间:2014-01-13 16:47:16

标签: java facebook security playframework playframework-2.0

在Play Framework中,我们可以应用全局CSRF检查

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

    return filters;
}

在大多数情况下都没问题。但我想设置指向我们网站的Facebook Canvas页面。事情是Facebook发送POST请求到我们的网站,它被CSRF检查阻止。它总是返回“无效的CSRF令牌”

所以我想在某些行动中选择性地禁用CSRF检查,例如www.ourwebsite.com/canvas

这可行吗?

1 个答案:

答案 0 :(得分:6)

我创建了一篇关于如何执行此操作的博文,请参阅此处:

http://dominikdorn.com/2014/07/playframework-2-3-global-csrf-protection-disable-csrf-selectively/

2017年 - 更新:从PlayFramework 2.6开始,现在已包含在框架内:https://www.playframework.com/documentation/2.6.x/JavaCsrf#applying-a-global-csrf-filter