2014-01-14 98 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