Symfony 更改未登录用户的重定向URL
当我未登录并且导航到安全路由时(本例中为/admin/page0),它会将我重定向到“/login”URL 我想将重定向路由更改为/admin/login #安全路线: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
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');
}
您只需修改路由名称