从symfony4中的防火墙安全中排除路径

时间:2018-10-09 16:10:32

标签: symfony security symfony4

我最近刚开始使用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完整的authentication is required to access this resource.异常。我有什么想念的吗?

1 个答案:

答案 0 :(得分:0)

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

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