簡體   English   中英

帶有Fosuserbundle防火牆的Symfony2從子域重定向到主域

[英]Symfony2 with Fosuserbundle firewall redirect from subdomain to main domain

我有一個帶有3個子域的Symfony2應用程序:

  • domain.com
  • app.domain.com
  • api.domain.com

%domain%參數是:domain.com

我有這樣的設置路由:

domain_app:
    resource: "@DomainAppBundle/Controller/"
    type: annotation
    prefix: /
    host: "app.%domain%"

domain_api:
    resource: "@DomainApiBundle/Controller/"
    type: annotation
    prefix: /
    host: "api.%domain%"

domain_front:
    resource: "@DomainFrontBundle/Controller/"
    type: annotation
    prefix: /
    host: "%domain%"

fos_user:
    resource: "@FOSUserBundle/Resources/config/routing/all.xml"
    host:"%domain%"

和這樣的安全性:

firewalls:
    main:
        pattern: ^/
        host: "%domain%"
        form_login:
            provider: fos_userbundle
            csrf_provider: form.csrf_provider
            always_use_default_target_path: false
            default_target_path: front
        logout:true
        anonymous:true

access_control:
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/admin/, role: ROLE_ADMIN }
    - { path: ^/, roles: ROLE_USER, host: "app.%domain%" }
    - { path: ^/, roles: ROLE_USER, host: "api.%domain%" }

我的子域應用程序和api得到了保護,就像我想要的那樣, http://domain.com/login可以正常運行。

但是,如果我在直接加載http://app.domain.com時未登錄,則會重定向到http://app.domain.com/login 我不想在子域上重定向,如果不僅在主http://domain.com/login上登錄,我希望防火牆重定向

有人可以幫我嗎?

謝謝 ;)

您只需要覆蓋登錄路由,然后在主要安全配置中使用它即可。 不要忘記將主機參與程序添加到新的登錄路徑。 我認為這個答案可以幫助您:

Symfony 2僅在主域上登錄

暫無
暫無

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

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