Php Symfony 3,一个应用程序中有2个防火墙
我在symfony 3中遇到了防火墙问题。三天以来,我一直在努力解决这个问题。我已经阅读了文档,并根据它做了所有事情,但应用程序并没有像我预期的那个样工作 目标:所有页面(登录页面除外)都需要登录用户。如果用户未登录,则应将其重定向到/login页面。就这些 根据这几页:Php Symfony 3,一个应用程序中有2个防火墙,php,symfony,Php,Symfony,我在symfony 3中遇到了防火墙问题。三天以来,我一直在努力解决这个问题。我已经阅读了文档,并根据它做了所有事情,但应用程序并没有像我预期的那个样工作 目标:所有页面(登录页面除外)都需要登录用户。如果用户未登录,则应将其重定向到/login页面。就这些 根据这几页: 我已经用登录操作和表单创建了控制器。登录路径和检查路径使用相同的操作(根据文档)。可能是security.yml中的某个错误,因为它不能正常工作。我的设置: security: providers: in_me
security:
providers:
in_memory:
memory:
users:
aaa:
password: aaa
roles: 'ROLE_ADMIN'
encoders:
Symfony\Component\Security\Core\User\User: plaintext
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login_firewall:
pattern: ^/login
anonymous: ~
# form_login:
# login_path: /login
# check_path: /login
secured_area:
pattern: ^/
form_login:
login_path: /login
check_path: /login
default_target_path: homepage
logout:
path: /logout
target: /login
# access_control:
# - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
# - { path: ^/, roles: IS_AUTHENTICATED_FULLY }
我的登录操作:
<?php
/**
* @Route("/login", name="login")
*/
public function loginAction(Request $request)
{
$authenticationUtils = $this->get('security.authentication_utils');
// get the login error if there is one
$error = $authenticationUtils->getLastAuthenticationError();
// last username entered by the user
$lastUsername = $authenticationUtils->getLastUsername();
return $this->render(
'security/login.html.twig',
array(
// last username entered by the user
'last_username' => $lastUsername,
'error' => $error,
)
);
}
?>
修复:
我建议:
我不是100%确定你的问题1,但它可能会发生,因为你的“检查路径”也在防火墙登录防火墙后面,并且不安全。由于您的登录防火墙中没有表单登录,因此提交的登录表单将无法识别。感谢您的首次修复。一切都很完美。你让我开心:)谢谢你的第一次治疗。一切都很完美。你让我开心:)
security:
providers:
in_memory:
memory:
users:
smt:
password: smt
roles: 'ROLE_ADMIN'
encoders:
Symfony\Component\Security\Core\User\User: plaintext
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
anonymous: ~
form_login:
login_path: /login
check_path: /login
default_target_path: /
logout:
path: /logout
target: /login
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: IS_AUTHENTICATED_FULLY }