Symfony 更改未登录用户的重定向URL

Symfony 更改未登录用户的重定向URL,symfony,symfony5,Symfony,Symfony5,当我未登录并且导航到安全路由时(本例中为/admin/page0),它会将我重定向到“/login”URL 我想将重定向路由更改为/admin/login #安全路线: class DefaultController extends AbstractController { /** * @Route("/admin/page0", name="admin_route") */ public function adminI

当我未登录并且导航到安全路由时(本例中为/admin/page0),它会将我重定向到“/login”URL

我想将重定向路由更改为/admin/login

#安全路线:

class DefaultController extends AbstractController
{
    /**
     * @Route("/admin/page0", name="admin_route")
     */
    public function adminIndex()
    {
        return $this->render('default/index.html.twig', [
            'controller_name' => 'DefaultController',
        ]);
    }
}
#安全.yaml

security:
    encoders:
        App\Entity\Admin:
            algorithm: auto

    providers:
        admin_provider:
            entity:
                class: App\Entity\Admin
                property: email

    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false

        admin:
            pattern: ^/admin/
            #lazy: true #it means anonymous mode
            provider: admin_provider
            guard:
                authenticators:
                    - App\Security\AppAuthenticator
            logout:
                path: '%env(LOGOUT_REDIRECT_ROUTE)%'
                # where to redirect after logout
                target: default
            remember_me:
                secret:   '%env(APP_SECRET)%'
                lifetime: 604800 # 1 week in seconds
                path:     /
                httponly: true
                samesite: strict
                secure: false
            access_denied_handler: App\Security\AdminAccessDeniedHandler
            access_denied_url: /

    access_control:
         - { path: ^/(|home|login|admin/login), roles: IS_AUTHENTICATED_ANONYMOUSLY,    requires_channel: '%env(SECURE_SCHEME)%' }
         - { path: ^/admin,         roles: ROLE_ADMIN,                      requires_channel: '%env(SECURE_SCHEME)%' }
如您所见,我试图通过添加到防火墙来实现这一点:

    access_denied_handler: App\Security\AdminAccessDeniedHandler
    access_denied_url: /

但每次我转到/admin/page0,它都会将我重定向到/login:(

在防火墙的验证器保护中,您有以下方法:

protected function getLoginUrl()    {        
    return $this->urlGenerator->generate('app_login');    
}
您只需修改路由名称