【问题标题】:Symfony2 with Fosuserbundle firewall redirect from subdomain to main domain带有 Fosuserbundle 防火墙的 Symfony2 从子域重定向到主域
【发布时间】:2014-11-18 03:09:32
【问题描述】:

我有一个带有 3 个子域的 Symfony2 应用程序:

  • 域名.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%" }

http://domain.com/login 完美运行,我的子域应用程序和 api 得到了安全保障。

但是如果我在直接加载http://app.domain.com 时没有登录,我会被重定向到 http://app.domain.com/login。 我不想在子域上重定向,我希望防火墙重定向,如果不只登录主http://domain.com/login

谁能帮我解决这个问题?

谢谢 ;)

【问题讨论】:

    标签: php symfony fosuserbundle


    【解决方案1】:

    您只需覆盖登录路由并在您的主要安全配置中使用它。不要忘记将主机partemerter 添加到新的登录路径。我认为这个答案可以帮助你:

    Symfony 2 Login on main domain only

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-11
      • 1970-01-01
      • 2015-02-12
      • 2012-07-22
      • 2016-08-13
      相关资源
      最近更新 更多