在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
这可行吗?
答案 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