我有一个过滤器,用于查询数据库以检查用户名是否与密码匹配。如果返回false,则筛选器将重定向到“logout”操作。唯一的问题是它将进入无限循环,因为过滤器也适用于“注销”操作。
我有什么方法可以“关闭”该操作的过滤器吗?
答案 0 :(得分:7)
您必须在过滤器内执行检查。您可以从$ this-> context-> getModuleName()和$ this-> context-> getActionName()获取当前模块和操作。或者您可以查看当前路线名称,$ this-> context-> getRouting() - > getCurrentRouteName()。
实际上,sfBasicSecurityFilter完全相同,禁止转发登录操作。看看它的代码。