【问题标题】:Symfony2: Getting Exception while "How to create a custom Authentication Provider"Symfony2:“如何创建自定义身份验证提供程序”时出现异常
【发布时间】:2012-06-29 07:08:17
【问题描述】:

我是 Symfony2 的新手,需要创建一个自定义身份验证提供程序,所以我阅读了 How to create a custom Authentication Provider。 我创建了所有类,还有来自How to create a custom User Provider 的自定义用户提供程序,但我得到了这个异常:

RuntimeException: The parent definition "wsse.security.authentication.provider" defined for definition "security.authentication.provider.wsse.wsse_secured" does not exist.

我从 Cookbook 复制/粘贴了所有类和配置部分,只更改了我的 Bundlename。

【问题讨论】:

  • 对于 WSSE,您可能想查看 github.com/mjhapp/MjhWsseBundle,这是捆绑在包中的 Symfony2 食谱文章。
  • 我尝试将服务的定义移动到 app/config/security.yml 并且它可以工作。如果我按照教程所述在 bundle/Resources/config/services.yml 中定义它们,我不知道为什么它不起作用。
  • 你的 DIC 是否将你的 services.yml 加载到你的包中?
  • 是的,实际上我没有加载我的 services.yml 的 Bundle*Extension 类...

标签: authentication symfony provider


【解决方案1】:

正如上面 cmets 中提到的 - 对于那些有同样问题的人,我认为 Reza Sanaie 的回答不是预期的解决方案。 您最好检查您的 Bundle 中是否有文件 /DependencieInjection/Security/{Vendor}{YourBundleName}Extension.php。该文件需要具有正确的文件名,并且该类将由 symfony2 内核自动执行。 如果您查看此文件的类代码,您会看到类似

$loader->load('services.yml');

这将加载您的 services.yml 并且问题应该得到解决。

【讨论】:

    【解决方案2】:

    您需要更新 config.yml 以包含在主应用程序包中的服务配置中

    # app/config/config.yml
    imports:
        - { resource: @AcmeHelloBundle/Resources/config/services.yml }
    

    【讨论】:

    • OP 应该接受这是正确的 - 很好的快速答案,手册非常模糊。提及使用正确的导入语法,但没有显示正确的语法是什么;答案就像一个魅力。
    • 对不起,应该已经回答了我的问题......我只是在上面提到它作为评论。正确答案来自 chsymann 或我在问题下的评论。问题是缺少 {YourBundleName}Extension.php 文件
    • 好电话,如果您离开扩展课程,这绝对是正确的答案。
    猜你喜欢
    • 1970-01-01
    • 2012-02-22
    • 2013-03-16
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    • 2012-11-09
    • 2013-10-23
    • 2017-05-12
    相关资源
    最近更新 更多