Php Symfony2针对访问被拒绝\u url的未授权页面重定向
我正在尝试使用security.yml中的access\u denied\u url参数 问题是。。。它什么也不做。当我以匿名方式访问/mon设备时,它会不断将我重定向到/login 这是我的安全。ymlfile: 我将FOSUserBundle与Symfony2.3.16一起使用我认为您的访问控制部分应该如下所示: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
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'));
}
}