首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将防火墙配置为授予身份验证用户和匿名用户的访问权限。

将防火墙配置为授予身份验证用户和匿名用户的访问权限。
EN

Stack Overflow用户
提问于 2013-06-17 06:29:49
回答 1查看 2.8K关注 0票数 3

我如何配置安全防火墙,使所有页面为匿名用户呈现有限的信息(注意登录没有强制执行),但显示了身份验证用户的全部详细信息?

代码语言:javascript
复制
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 }

如果删除了access_control中的最后两行,登录过程就会像预期的那样工作,但是is_granted('ROLE_USER')即使在用户登录时也总是返回false。

代码语言:javascript
复制
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/, roles: ROLE_USER }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-17 08:04:54

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

代码语言:javascript
复制
{% if is_granted('IS_AUTHENTICATED_ANONYMOUSLY') %}

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

{% endif %}

..。或者..。

代码语言:javascript
复制
{% if is_granted('ROLE_USER') %}

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

{% endif %}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17141571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档