0

我需要告诉我的 FOSUSer 管理员,我希望在由管理员启动的网站的每个部分中只允许管理员用户。默认情况下,在文档中,为 security.yml 文件提供代码:

security:
    encoders:
        "FOS\UserBundle\Model\UserInterface": sha512

    providers:
        fos_userbundle:
            id: fos_user.user_manager
    firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false

        # Firewall pour les pages de connexion, inscription, et récupération de mot de passe
        login:
            pattern:   ^/(login$|register|resetting)  # Les adresses de ces pages sont login, register et resetting
            anonymous: true                           # On autorise bien évidemment les anonymes sur ces pages !

        # Firewall principal pour le reste de notre site
        main:
            pattern: ^/                      # ^/ = tout ce qui commence par / = tout notre site
            form_login:                      # On définit notre méthode d'authentification
                provider:    fos_userbundle  # On lit l'authentification au provider définit plus haut
                remember_me: true            # On active la possibilité du "Se souvenir de moi" (désactivé par défaut)
            remember_me:
                key:         %secret%        # On définit la clé pour le remember_me (%secret% est un parametre de parameters.ini)
            anonymous:       true            # On autorise les utilisateurs anonymes (non identifiés)
            logout:          true            # On autorise la déconnexion manuelle (désactivé par défaut)

我只想修改那行:

pattern: ^/  # ^/ = tout ce qui commence par / = tout notre site

这样我就可以看到:对于所有地址,例如“ http://www.mywebsite.com/web/app_dev.php/admin/

我该如何写这个正则表达式?我试过:

pattern: ^/(admin)  # ^/ = tout ce qui commence par / = tout notre site

但这不起作用...

4

1 回答 1

0

要在每个以 admin 开头的页面中只允许管理员用户,您需要编辑 security.yml 文件的 access_control 部分:

access_control:
    #List of pages only accessible by administrator
    - { path: ^/admin, role: ROLE_ADMIN }
于 2012-07-26T00:48:53.490 回答