Php Symfony2针对访问被拒绝\u url的未授权页面重定向

Php Symfony2针对访问被拒绝\u url的未授权页面重定向,php,symfony,Php,Symfony,我正在尝试使用security.yml中的access\u denied\u url参数 问题是。。。它什么也不做。当我以匿名方式访问/mon设备时,它会不断将我重定向到/login 这是我的安全。ymlfile: 我将FOSUserBundle与Symfony2.3.16一起使用我认为您的访问控制部分应该如下所示: access_control: - { path: ^/$, roles: IS_AUTHENTICATED_ANONYMOUSLY } # ... here th

我正在尝试使用security.yml中的access\u denied\u url参数

问题是。。。它什么也不做。当我以匿名方式访问/mon设备时,它会不断将我重定向到/login

这是我的安全。ymlfile:

我将FOSUserBundle与Symfony2.3.16一起使用

我认为您的访问控制部分应该如下所示:

access_control:
    - { path: ^/$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    # ... here the other routes
您的问题:它会在/页上重定向您,但您无法访问此页。因此,它会在登录页面上重定向您

更新:

您还可以为所有防火墙定义访问\u拒绝\u url:

# app/config/security.yml
security:
    access_denied_url: /
我认为您的访问控制部分应该如下所示:

access_control:
    - { path: ^/$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    # ... here the other routes
您的问题:它会在/页上重定向您,但您无法访问此页。因此,它会在登录页面上重定向您

更新:

您还可以为所有防火墙定义访问\u拒绝\u url:

# app/config/security.yml
security:
    access_denied_url: /

首先,您必须知道,访问被拒绝的url只是重定向非匿名用户。例如,如果一个用户试图访问一个页面,而该页面的路径仅为角色\管理员,那么它将重定向该用户的角色\成员

以下是解决方案: 您必须创建一个服务my_entry_point,该服务将在入口点侦听器处触发,请参见下面的security.yml,它将用户重定向到您想要重定向的目标页面


首先,您必须知道,访问被拒绝的url只是重定向非匿名用户。例如,如果一个用户试图访问一个页面,而该页面的路径仅为角色\管理员,那么它将重定向该用户的角色\成员

以下是解决方案: 您必须创建一个服务my_entry_point,该服务将在入口点侦听器处触发,请参见下面的security.yml,它将用户重定向到您想要重定向的目标页面


我以前试过,但它改变不了什么。我也尝试过清除缓存,这是值得的。@LaurentWartel您尝试过路径:^/*或路径:^/$?我尝试过^/$和^/。此外,在安全级别应用“拒绝访问”url也不起作用,我以前测试过。我开始相信这个参数可能会在某个地方被覆盖…access\u denied\u url只对非匿名用户有效。我以前试过,但它不会改变任何事情。我也尝试过清除缓存,这是值得的。@LaurentWartel您尝试过路径:^/*或路径:^/$?我尝试过^/$和^/。此外,在安全级别应用“拒绝访问”url也不起作用,我以前测试过。我开始相信这个参数可能会在某个地方被覆盖…access\u denied\u url只对非匿名用户有效。我也有同样的问题。你能告诉我你是怎么修好的吗。我没有找到解决办法。我停止了搜索。。。处理它…我也有同样的问题。你能告诉我你是怎么修好的吗。我没有找到解决办法。我停止了搜索。。。处理它…做得好,我不知道access\u denied\u url参数只是重定向非匿名用户。做得好,我不知道access\u denied\u url参数只是重定向非匿名用户。
#src/Acme/UserBundle/Ressources/Config/services.yml

service
  my_entry_point:
     class: Acme\UserBundle\Redirection\EntryPointRedirection
     arguments: [@router] #needed for URL redirection
<?php
namespace Acme\UserBundle\Redirection;

use Symfony\Component\Security\Http\EntryPoint\AuthenticationEntryPointInterface,
    Symfony\Component\HttpFoundation\Request,
    Symfony\Component\HttpFoundation\RedirectResponse;

class EntryPointRedirection implements AuthenticationEntryPointInterface
{
   protected $router;

   public function __construct($router)
   {
      $this->router = $router;
   }

   public function start(Request $request, AuthenticationException $authException = null)
   {
      return new RedirectResponse($this->router->generate('target_page_for_redirection'));
   }
}