2016-02-05 149 views
1

我有一个问题,我没有真正找到答案。匿名用户的自定义身份验证提供程序

我必须维护一个使用自定义身份验证和用户提供程序的Symfony应用程序。提供者按照预期工作,并且用户可以正确登录。

但是,我需要为匿名用户创建一些可访问的路由。当用户未完全通过身份验证时,它们也应该可以访问。 于是,我就调整在的ACCESS_CONTROL配置security.yml使这些URL访问:

firewalls: 
    dev: 
     pattern: ^/(_(profiler|wdt)|css|images|js)/ 
     security: false 

    main: 
     pattern: ~ 
     anonymous: ~ 
     internal_api: 
      provider:  fos_userbundle 
      check_path:  /api/user/login 

     logout: 
      path: /api/user/logout 

access_control: 
    - { path: ^/api/init, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/api/resources, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/, roles: ROLE_USER } 

可惜,这是行不通的。只要用户未完全通过身份验证,用户仍然无法访问这些路由。

所以我的问题是:什么是必要提供角色IS_AUTHENTICATED_ANONYMOUSLY通过自定义身份验证提供程序?可以这样做,或者我只需要调整我的security.yml设置?

问候

+0

什么是'main'防火墙中的'internal_api'选项? – chalasr

+0

您是否检查过您的路线匹配的订单? – Twifty

回答

0

因为你想通过匿名访问做出的路线是你main防火墙后面,你path: ^/ ACCESS_CONTROL保护,您必须创建一个特定的防火墙他们。

在security.yml的firewalls补充一点:

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

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

,它应该工作。

相关问题