php - 站点根目录的 Symfony 访问控制

标签 php symfony firewall access-control

我创建了一个带有防火墙访问控制的网站,强制用户登录才能访问任何内容,即

 - { path: ^/, roles: IS_AUTHENTICATED_FULLY}

现在客户希望在网站的根目录下有一个启动页面,即 www.sitename.com。

我将此页面映射到 DefaultController::indexAction,但是我不知道如何允许 IS_AUTHENTICATED_ANONYMOUSLY 访问此页面,因为没有路径名,即 www.sitename.com/splash-page 挂掉访问控制。

我什至可以这样做吗?

最佳答案

您可以保护除主页 URL 之外的所有 URL:

# app/config/security.yml file
security:
    ...
    access_control:
        # Logged in
        - { path: ^/(.+), roles: IS_AUTHENTICATED_FULLY }
        # no authentication for the homepage:
        - { path: ^/$, roles: IS_AUTHENTICATED_ANONYMOUSLY }

正则表达式 ^/(.+) 将匹配每个 URL,而不是包含 / 之后的内容。

正则表达式 ^/$ 将匹配 / 之后不包含任何内容的 URL(/ 是字符串的结尾)。

主页 URL 必须在 routing.yml 文件中声明:

homepage:
    pattern: /
    defaults: { _controller: ACMEBundle:Default:homepage }

关于php - 站点根目录的 Symfony 访问控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21020550/

相关文章:

php - 安装 pecl/raphf 和 propro 时出错

php - 如何在登录表单中不区分用户名大小写?

防火墙 - 构建或购买

azure - 如果我在应用程序网关上启用了防火墙,是否还需要在虚拟网络上启用防火墙?

python - Pandas 有条件地将字符串数据从一行复制到另一行

php - Laravel 5.4 有时会使用不同的数据库凭据

PHP $_POST 不起作用

symfony - 如何处理捆绑中的学说迁移

symfony - 如何在 Silex 中获取当前页面名称

javascript - 阵列随机洗牌,同时在 Twig 中有约 500 行