簡體   English   中英

Symfony2-具有FOSUserBundle的防火牆

[英]Symfony2 - Firewall with FOSUserBundle

這里有Symfony2的新用戶。

我正在嘗試使用FOSUserBundle設置防火牆。

/ admin /需要用戶成為管理員之后,我已經擁有了所有東西。

但是,我想將登錄路徑移動到/ admin / login而不是/ login

安全性

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

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username

    firewalls:
        main:
            pattern: ^/
            form_login:
                provider: fos_userbundle
                csrf_provider: form.csrf_provider
            logout:       true
            anonymous:    true

    access_control:
        - { path: ^admin/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^admin/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/, role: ROLE_ADMIN }

Routing.yml

pwd_admin:
    resource: "@PWDAdminBundle/Resources/config/routing.yml"
    prefix:   /admin

pwd_website:
    resource: "@PWDWebsiteBundle/Resources/config/routing.yml"
    prefix:   /

fos_js_routing:
    resource: "@FOSJsRoutingBundle/Resources/config/routing/routing.xml"

fos_user_security:
    resource: "@FOSUserBundle/Resources/config/routing/security.xml"

fos_user_profile:
    resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
    prefix: /profile

fos_user_register:
    resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
    prefix: /admin/register

fos_user_resetting:
    resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
    prefix: /resetting

fos_user_change_password:
    resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"
    prefix: /profile

嘗試訪問/ admin / login時出現以下錯誤

No route found for "GET /admin/login

編輯:路線

fos_user_security_login           ANY      ANY    ANY  /login
fos_user_security_check           POST     ANY    ANY  /login_check
fos_user_security_logout          ANY      ANY    ANY  /logout
fos_user_profile_show             GET      ANY    ANY  /profile/
fos_user_profile_edit             ANY      ANY    ANY  /profile/edit
fos_user_registration_register    ANY      ANY    ANY  /admin/register/

我遇到了與您相同的問題,下一個解決方案幫助我看到了登錄頁面。

嘗試將前綴添加到fos_user_security路由

fos_user_security:
    resource: "@FOSUserBundle/Resources/config/routing/security.xml"
    prefix: admin

希望這會有所幫助。 您可能還會遇到一些訪問問題,但我還沒有解決方案,但是也許您可以自己找到解決方案。 祝您好運,也許您會與我們分享解決方案,那就太好了

玩得開心。

您需要將security.yml更改為:

security:
    firewalls:
        main:
            form_login:
                login_path: /admin/login

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM