Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security Symfony,将防火墙配置为向经过身份验证和匿名的用户授予访问权限_Security_Symfony - Fatal编程技术网

Security Symfony,将防火墙配置为向经过身份验证和匿名的用户授予访问权限

Security Symfony,将防火墙配置为向经过身份验证和匿名的用户授予访问权限,security,symfony,Security,Symfony,如何配置安全性防火墙和访问控制,以便所有页面为匿名用户提供有限的信息(注意:不强制登录),但显示经过身份验证的用户的完整详细信息 encoders: Symfony\Component\Security\Core\User\User: plaintext role_hierarchy: ROLE_AGENT: ROLE_USER providers: agent_provider: memory: users:

如何配置安全性防火墙访问控制,以便所有页面为匿名用户提供有限的信息(注意:不强制登录),但显示经过身份验证的用户的完整详细信息

encoders:
    Symfony\Component\Security\Core\User\User: plaintext

role_hierarchy:
    ROLE_AGENT: ROLE_USER

providers:
    agent_provider:
        memory:
            users:
                agent: { password: agentpass, roles: [ 'ROLE_AGENT' ] }
    user_provider:
        memory:
            users:
                user:  { password: userpass, roles: [ 'ROLE_USER' ] }

firewalls:
    dev:
        pattern:  ^/(_(profiler|wdt)|css|images|js)/
        security: false
        anonymous: true
    agent_area:
        provider: agent_provider
        pattern:   ^/agent
        anonymous: ~
        form_login:
            login_path: agent_login
            check_path: agent_login_check
            default_target_path: /agent
        logout:
            path:   agent_logout
            target: /agent
    user_area:
        provider: user_provider
        pattern:   ^/
        anonymous: ~
        form_login:
            login_path: app_login
            check_path: app_login_check
            default_target_path: /
        logout:
            path:   app_logout
            target: /

access_control:
    - { path: ^/agent/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/agent, roles: ROLE_AGENT }
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/, roles: ROLE_USER }
如果删除了访问控制中的最后两行,则登录过程似乎按预期工作,但即使用户登录,被授予(“角色用户”)也始终返回false

    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/, roles: ROLE_USER }

您可以使用twig的is_grated()函数向用户和来宾显示不同的内容

{% if is_granted('IS_AUTHENTICATED_ANONYMOUSLY') %}

    {# ... only non logged-in users content ... #}

{% endif %}
。。。或者

{% if is_granted('ROLE_USER') %}

   {# .. user's content ... #}

{% endif %}

这实际上是两个问题。我回答了上面的问题,询问如何为不同的用户角色呈现不同的/扩展的内容。。。