匿名用户的自定义身份验证提供程序

时间:2016-02-05 15:41:01

标签: symfony symfony-2.7

我有一个问题,我没有真正找到答案。

我必须维护一个使用自定义身份验证和用户提供程序的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 设置?

祝你好运

1 个答案:

答案 0 :(得分:1)

由于您希望匿名访问的路由位于main防火墙后面并受path: ^/ access_control保护,因此您必须为它们创建特定的防火墙。

在security.yml的firewalls中添加:

api_resources:
    pattern: ^/api/resources
    anonymous: ~

api_init: 
    pattern: ^/api/init
    anonymous: ~

它应该有效。

相关问题