【问题标题】:Exclude path from firewall security in symfony4在 symfony4 中从防火墙安全中排除路径
【发布时间】:2018-10-09 16:10:32
【问题描述】:

我最近刚开始使用 Symfony 4,并且在安全包 security.yaml 文件中遇到了一些身份验证问题。

security.yaml 文件为我要控制的给定 API 路由设置了一个防火墙:

security:
    providers:
        in_memory:
            memory: ~

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

        main:
            pattern: ^/
            anonymous: true

    access_control:
        - { path: ^/portal, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/, roles: ROLE_ADMIN }

我想从根级别限制所有路由,除了本例中的 /portal 路由,它应该可供所有人使用。我怎么能做到这一点。

目前这给了我一个InsufficientAuthenticationException Full authentication is required to access this resource. 异常。我有什么遗漏吗?

【问题讨论】:

    标签: symfony security symfony4


    【解决方案1】:

    您必须定义登录表单的路径。使用此路径,您将被重定向到登录。没有路径,立即抛出异常。

    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
            pattern: ^/
            provider: in_memory
            anonymous: ~
            form_login:
                login_path: login
                check_path: login
    

    更多信息可以在 Symfony 文档中找到: https://symfony.com/doc/current/security/form_login_setup.html

    【讨论】:

      猜你喜欢
      • 2018-10-31
      • 2013-05-28
      • 2020-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-20
      • 2021-12-22
      • 1970-01-01
      相关资源
      最近更新 更多