如何为 dosuserbundle 和 hwiauthbundle (ERR_TOO_MANY_REDIRECTS) 设置路由前缀

Posted

技术标签:

【中文标题】如何为 dosuserbundle 和 hwiauthbundle (ERR_TOO_MANY_REDIRECTS) 设置路由前缀【英文标题】:how to set routing prefix for dosuserbundle and hwiauthbundle (ERR_TOO_MANY_REDIRECTS) 【发布时间】:2019-11-13 02:00:09 【问题描述】:

我正在使用 fosuserbundle 和 HWIOAuthBundle 使用 Symfony3.4 构建应用程序,一切正常,但是当我尝试使用路由前缀时,尝试登录时出现 ERR_TOO_MANY_REDIRECTS 错误

Security.yml: 
        firewalls:
        main:
            pattern: ^/
            provider: chain_provider
            form_login:
                provider: fos_userbundle
                csrf_token_generator: security.csrf.token_manager
                check_path: fos_user_security_check
                login_path:        fos_user_security_login
                failure_path:      fos_user_security_login
            oauth:
                resource_owners:
                    azure:           azure_login
                login_path:        fos_user_security_login
                failure_path:      fos_user_security_login
                use_forward:       false

                oauth_user_provider:
                    service: custom.user_provider

            logout:
                path: fos_user_security_logout
                target: fos_user_security_login
            anonymous: true
            switch_user: true
            logout_on_user_change: true

    access_control:
        -  path: ^/api/tokens, roles: IS_AUTHENTICATED_ANONYMOUSLY 
        -  path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY 
        -  path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY 
        -  path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY 
        -  path: ^/connect/azure, role: IS_AUTHENTICATED_ANONYMOUSLY 
        -  path: ^/admin/configuration/, role: [ROLE_SUPER_ADMIN] 
        -  path: ^/admin/, role: [ROLE_ADMIN] 
        -  path: ^/, role: IS_AUTHENTICATED_FULLY 
        -  path: ^/%app_name%, role: IS_AUTHENTICATED_FULLY 
        -  path: ^/api, roles: IS_AUTHENTICATED_FULLY 

Routing.yml:

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

    fos_user_resetting:
       resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
       prefix: /%app_name%/resetting
       methods:  [GET,POST]

有人可以告诉我我在这里缺少什么,因为单独使用 fosuserbundle 每件事都像魅力一样,但是在添加时:

        oauth:
        resource_owners:
            azure:           azure_login
        login_path:        fos_user_security_login

我要进入循环

【问题讨论】:

【参考方案1】:

所以我找到了解决这个问题的方法,我的问题不仅出在安全文件中,而且似乎是注释也导致了问题,但是在更改访问控制后:

-  path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY 

收件人:

-  path: ^/%app_name%/login$, role: IS_AUTHENTICATED_ANONYMOUSLY 

并且在这个注解中不应该写在类之上,而是在它自身之上的控制器之上,并且从末尾的/开始小心

【讨论】:

以上是关于如何为 dosuserbundle 和 hwiauthbundle (ERR_TOO_MANY_REDIRECTS) 设置路由前缀的主要内容,如果未能解决你的问题,请参考以下文章

如何为mesos和HAProxy进程编写prometheus警报规则。?

如何为 vuex 命名空间模块状态创建 getter 和 setter

django:DetailView 如何为两个模型工作或基于类的视图如何为两个模型工作?

如何为 Dev 版本和 Prod 版本添加桥接头?

如何为以下两个按钮添加约束

如何为 JWT 生成和访问密钥