首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony基本HTTP身份验证无法工作

Symfony基本HTTP身份验证无法工作
EN

Stack Overflow用户
提问于 2016-11-21 16:18:49
回答 3查看 7.7K关注 0票数 3

在使用Symfony 2.8.14的项目中,我使用了一个非常基本的设置来启用Symfony中的基本HTTP身份验证,如http://symfony.com/doc/2.8/security.html所述

security.yml

代码语言:javascript
复制
security:

    encoders:
        Symfony\Component\Security\Core\User\User: plaintext

    providers:
        in_memory:
            memory:
                users:
                    myuser: { password: mypassword, roles: 'ROLE_USER' }

    firewalls:
        default:
            anonymous: ~
            http_basic: ~

    access_control:
        - { path: ^/myroute, roles: ROLE_USER }

在访问本地服务器上的/myroute时,会提示使用HTTP提示符。但是,在输入正确的凭据后,它只会继续向我显示提示。

在远程服务器上,在输入正确的凭据后,将使用401状态代码对同一路由进行无限“重定向”。

这两个服务器都通过FastCGI使用PHP2.4运行Apache2.4。还有其他线程建议添加

代码语言:javascript
复制
# Sets the HTTP_AUTHORIZATION header removed by apache
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

由于Apache通过FastCGI运行FastCGI时遇到了特定问题,所以无法访问FastCGI。但是,这已经包含在symfony/standard-edition中(并且也存在于我的.htaccess中)。

我不知道还能尝试什么。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-21 16:30:41

http://php.net/manual/en/features.http-auth.php上的一个注释建议添加以下内容:

代码语言:javascript
复制
SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0

这很有帮助。看起来,默认的.htaccess配置symfony/standard-edition是不够的(至少在某些环境中是这样)。

票数 4
EN

Stack Overflow用户

发布于 2016-11-21 16:28:05

请在防火墙下指定以下内容:

代码语言:javascript
复制
firewalls:
    default:
        pattern:      ^/myroute
        anonymous: false
        provider: in_memory

希望能帮上忙

票数 2
EN

Stack Overflow用户

发布于 2016-11-21 17:16:07

你必须这样做(转到新行)

代码语言:javascript
复制
providers:
    in_memory:
        memory:
            users:
                myuser:
                    { password: mypassword, roles: 'ROLE_USER' }

或者您也可以像这样解释数组

代码语言:javascript
复制
providers:
    in_memory:
        memory:
            users:
                myuser:
                    password: mypassword
                    roles: 'ROLE_USER'

否则,myuser将被视为一个值为"{ password: mypassword,roles:'ROLE_USER‘}“的字符串。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40724676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档