我有一个问题,我没有真正找到答案。
我必须维护一个使用自定义身份验证和用户提供程序的Symfony应用程序。提供程序按预期工作,用户可以正确登录。
但是,我需要为匿名用户提供一些可访问的路由。当用户未完全通过身份验证时,也应该可以访问它们。 所以我尝试调整 security.yml 中的access_control配置,以使这些URL可访问:
using PagedList;
public ActionResult Index(int ? pagePos)
{
//return View(db.Items.ToList());// Change this as following
int pageNumber = (pagePos ?? 1);
return View(db.Items.ToList().ToPagedList(pageNumber, 30)); //30 is the size of records in a single page
}
不幸的是,这不起作用。用户仍然无法访问这些路由,只要它们未经过完全身份验证即可。
所以我的问题是:通过自定义身份验证提供程序提供 IS_AUTHENTICATED_ANONYMOUSLY 角色需要什么?它可以完成还是我必须调整我的 security.yml 设置?
祝你好运
答案 0 :(得分:1)
由于您希望匿名访问的路由位于main
防火墙后面并受path: ^/
access_control保护,因此您必须为它们创建特定的防火墙。
在security.yml的firewalls
中添加:
api_resources:
pattern: ^/api/resources
anonymous: ~
api_init:
pattern: ^/api/init
anonymous: ~
它应该有效。