2011-07-05 128 views
7

经过一整天的艰苦工作,Symfony 2的一个简单的获胜没有运气,我决定问你们一个解决方案。没有用户提供给用户“Symfony Component Security Core User User”

这是问题:我想使用doctrine进行http_basic认证,因此会提示用户输入保存在数据库中的用户名/密码。

于是,我按照这些步骤:

1)创建了一个名为用户与交互式控制台生成新的实体。

这是它的样子:

http://pastebin.com/3RzrwFzL

2)正如我已实施的UserInterface和补充丢失的4种方法的文档中说明。现在实体看起来是这样的:

http://pastebin.com/Epw3YrwR

3)我已经修改了security.yml尽可能少,使其工作,它看起来像这样:

http://pastebin.com/tp6Gd7t7

我清除缓存并尝试访问app_dev.php/admin,当然我整天都会得到相同的错误:

没有用户提供程序用户“Symfony \分量\安全\核心\用户\用户”。

500内部服务器错误 - RuntimeException的

谁能告诉我问题出在哪里? 我已经尝试了这一千种不同的方式,并奇怪它工作了一段时间,但当我试图添加sha1作为编码器算法而不是明文,并清除缓存,我回到相同的错误..自那时以来,我什么都没有得到但它。这就像是如果有一个隐藏的缓存,每当symfony决定时都会被删除:D

我认为错误可能也出现在实体的4个方法中,但我无法修复它们,因为没有关于应该怎样的文档他们是这样。

我目前使用RC4。

在此先感谢,希望有人会帮助。

回答

4

有同样的问题。这似乎是有效的。我只会在后续的开发过程中使用它,我会找到一个解决方案。

security: 
    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] 


    providers: 
     chain_provider: 
      providers: [in_memory, user_db] 
     in_memory: 
      users: 
       cheese: { password: olo, roles: ROLE_ADMIN } 
     user_db: 
      entity: { class: Abc\BaseBundle\Entity\User, property: username } 


    encoders: 
     Symfony\Component\Security\Core\User\User: plaintext 
     Abc\BaseBundle\Entity\User: plaintext 

    firewalls: 
     dev: 
      pattern: ^/(_(profiler|wdt)|css|images|js)/ 
      security: false 

     panel: 
      pattern: ^/(panel|login_check) 
      anonymous: ~ 
      form_login: 
       login_path: /login 
       check_path: /login_check 
       default_target_path: /panel/ 
      logout: 
       path: /logout 
       target:/
0

您可以节省自己的头痛,并尝试symfony UserBundle的朋友。

至少在看这个包会帮助你学习和修复你自己的代码。它有很多写得很好的代码/例子。

+0

公平地说,与FOSUserBundle做了很好的工作,但如果您更喜欢纤薄或高度可定制的解决方案,它可能会导致您头痛。 – David

8

我曾经有过这个问题。

这是因为我用前一个提供者(in_memory)的用户登录。必须恢复in_memory部分,注销,然后把新的提供者。

我的猜测:

用户的信息是会话,它不能存取权限它,因为我们把它关闭security.yml

+1

好窍门,总是清理缓存。 –

+0

+1清理缓存修复了这个问题 – Jonathan

+0

如果缓存干净且错误仍然存​​在,那么该怎么办?尝试获取[this](https://knpuniversity.com/screencast/guard/api-token)后,我遇到了同样的问题,有什么建议?我被卡住 – ReynierPM

0

我问题,在开发环境发生。它发生是因为我从其他项目获得了活跃的会话。

帮助清洁浏览器cookie。

+0

是的,清除浏览器cookies也帮助我! THKS – mario

相关问题