配置symfony2防火墙后,如何在非授权页面获取当前用户信息?

发布于 2022-08-25 01:30:03 字数 1307 浏览 18 评论 0

防火墙配置如下:

firewalls: 
     login_firewall: 
         pattern:    ^/login$ 
         anonymous:  ~ 
     secured_area: 
         pattern:    ^/ 
         login_form: ~ 

登录后,除了 /login 页面,其他页面都可以通过 $this->getUser() 获得当前用户信息,
请问,在 /login 页面如何获取当前用户信息?


根据回答我解决了问题,下面是我的 security.yml 内容:

security:
role_hierarchy:
    ROLE_ADMIN: ROLE_USER

firewalls:
    # login_firewall:
    #     pattern:    ^/login$
    #     anonymous:  ~
    secured_area:
        pattern:    ^/
        anonymous:  ~
        form_login:
            login_path: login
            check_path: login_check
        logout:
            path:   /logout
            target: /

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

providers:
    in_memory:
        memory:
            users:
                kevin:  { password: kevinpass, roles: 'ROLE_USER' }
                admin:  { password: adminpass, roles: 'ROLE_ADMIN' }

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

同时我在SO上也找到了一个与之类似的提问 - 链接
感谢回答的朋友!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

悲欢浪云 2022-09-01 01:30:03

你可以删掉login那个firewall,在acl里配置:

access_control:
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文