2014-01-14 51 views
0

MYS security.yml给出波纹管..Symfony2的注销issue2

security: 
    encoders: 
     Acme\HelloBundle\Entity\User: 
      algorithm:  sha1 
      encode_as_base64: false 
      iterations:  1 

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

providers: 
    administrators: 
     entity: { class: AcmeHelloBundle:User, property: username } 

firewalls: 
    secured_area: 
     pattern: ^/ual_courses 
     logout: 
      path: /logout 
      target: /ual 
     http_basic: ~  

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

当我尝试使用注销 “xyz.com/symfonyproject/test/web/app_dev.php/logout” 不注销并显示错误消息GET /注销‘“未找到路线’。这里是

acme_hello_test: 
    path: /ual 
    defaults: { _controller: AcmeHelloBundle:Hello:index} 
acme_hello_static: 
    path: /privacy 
    defaults: 
     _controller: FrameworkBundle:Template:template 
     template: 'AcmeHelloBundle:Static:privacy.html.twig' 
acme_hello_redirect: 
    path: /redirect 
    defaults: {_controller: AcmeHelloBundle:Hello:change} 

AcmeHelloBundle_ual_courses: 
     resource: "@AcmeHelloBundle/Resources/config/routing/courses.yml" 
     prefix: /ual_courses 

logout: 
    path: /logout 

回答

0

您运行的是什么版本的Symfony的?您需要定义一个特定的问题?

的routing.yml /注销路线因为2.1

请注意,您将不再需要为防火墙完成所有的操作,以实现对/注销URL的控制器。你这样做,不过,需要创建一个路由,这样就可以用它来生成URL

更多信息请参见this paragraph of symfony firewall documentation

编辑

确保您注销的路线是在防火墙后面。参见食谱的avoid common pitfall

您的防火墙只捕获以/ ual_courses开头的模式,因此不包含/注销。试用:

firewalls: 
    secured_area: 
     pattern: ^/* 
    #http_basic: ~ 

请注意http_basic注释掉了。

+0

嗨我正在使用symfony 2.4.1并在app/config routing.yml文件中添加路径注销 注销: 模式:/现在注销它显示以下错误无法找到路径“/注销”的控制器。也许你忘了在路由配置中添加匹配路由 – Tushar

+0

在你的app/config/routing.yml文件中用“路径”替换“pattern” – np87

+0

Hi..I已经改变了它,但仍然显示相同的问题 – Tushar