symfony - 我可以将单个 URI 端点标记为匿名吗?
问题描述
我已经阅读了文档并遵循了这个类似的问题:
使用 Symfony 4.1.4 我尝试了以下方法:
access_control:
- { path: ^/rpi/service/application/quote/approve, roles: IS_AUTHENTICATED_ANONYMOUSLY}
- { path: ^/rpi, roles: ROLE_USER }
- { path: ^/erp, roles: ROLE_USER }
但是,当我以匿名身份访问第一个 URI 时,http_basic_ldap
登录屏幕会提示我。有任何想法吗?
解决方案
你需要
anonymous: true
在你的防火墙中,就像在默认配置 config/packages/security.yml 中一样:
security:
# https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
providers:
in_memory: { memory: ~ }
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
anonymous: true
匿名认证是指用户通过了认证,并且有一个token,但它是一个匿名token。
如果您没有anonymous: true,AnonymousAuthenticationListener 将永远不会为您的防火墙运行,并且永远不会创建匿名令牌。
推荐阅读
- android - 运行“应用程序”时出错:未找到目标设备。Android Studio 3.6 预览版
- node.js - 如何将数据安全地保存在 webApp 的数据库中
- python - 我如何获得每个 GMM 的概率百分比?
- phpmyadmin - 如何在xampp中更改apache服务器的端口号
- javascript - 添加另一个按钮以关闭 Bootstrap 简单侧边栏
- oracle - 使用 Oracle ojdbc 的 Servicemix
- unit-testing - eq() 匹配器是否可以应用于双精度?
- json - 将 JSON 列表转换为一个记录为列表的表
- ruby-on-rails - Rails - 使用复选框在数据库中存储多个值
- docker - 红帽中的 Jenkins + Artifactory