我可以将单个URI端点标记为匿名吗?

时间:2018-09-21 12:43:59

标签: symfony symfony4 symfony-security

我已阅读文档并遵循以下类似问题:

Allow anonymous access to specific URL in symfony firewall protected bundle

使用Symfony 4.1.4,我尝试了以下操作:

access_control:
  - { path: ^/rpi/service/application/quote/approve, roles: IS_AUTHENTICATED_ANONYMOUSLY}
  - { path: ^/rpi, roles: ROLE_USER }
  - { path: ^/erp, roles: ROLE_USER }

但是,当我以匿名身份访问第一个URI时,登录屏幕会提示http_basic_ldap。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您需要

anonymous: true

在防火墙中,如默认配置config / packages / security.yml:

security:
    # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
    providers:
        in_memory: { memory: ~ }
    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
            anonymous: true

匿名身份验证表示用户 已通过身份验证,并且具有令牌,但这是一个匿名令牌。

如果您没有匿名:true,则AnonymousAuthenticationListener将永远不会为您的防火墙运行,也永远不会创建匿名令牌。