Symfony2注销问题2
Mys security.yml如下所示Symfony2注销问题2,symfony,Symfony,Mys security.yml如下所示 security: encoders: Acme\HelloBundle\Entity\User: algorithm: sha1 encode_as_base64: false iterations: 1 role_hierarchy: ROLE_ADMIN: ROLE_USER ROLE_SUPER_
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未注销,并显示错误消息未找到用于获取/注销的路由。问题出在哪里
路由.yml
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
您正在运行哪个版本的Symfony?从2.1开始,您需要定义一个特定的/注销路由 请注意,您不需要为/logout URL实现控制器,因为防火墙会处理所有事情。但是,您确实需要创建一个路由,以便可以使用它生成URL 有关更多信息,请参阅 编辑 确保您的注销路径位于防火墙后面。请参阅烹饪书的结尾部分 您的防火墙只捕获以/u课程开始的模式,因此不包括/logout。尝试:
firewalls:
secured_area:
pattern: ^/*
#http_basic: ~
请注意http_basic已被注释掉。您好,我正在使用symfony 2.4.1并在app/config routing.yml文件logout:pattern:/logout中添加路径注销,现在显示以下错误,无法找到用于路径/注销的控制器。也许你忘了在路由配置中添加匹配的路由在app/config/routing.yml文件中将模式替换为path你能在帖子中添加routing.yml文件吗?这是secutiry.yml文件的完整版本吗?谢谢。。它起作用了。。但还有另一个问题。用户未取消身份验证。注销后,我可以进入控制区。它不要求用户名和密码您的防火墙可能不再覆盖您希望它覆盖的内容。将其模式更改回:^/uas_课程,然后将注销路径更改为/uas_课程/logout