Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Login Symfony3.1:传统的登录表单没有';行不通_Login_Firewall_Symfony 3.1 - Fatal编程技术网

Login Symfony3.1:传统的登录表单没有';行不通

Login Symfony3.1:传统的登录表单没有';行不通,login,firewall,symfony-3.1,Login,Firewall,Symfony 3.1,我已经按照symfony官方文档创建了一个登录表单: 表单登录将显示,但当我尝试与有效用户连接时,我什么都没有:没有错误,没有重定向。。。表单将再次显示,但不显示任何消息 这是我的安全。yml: security: providers: in_memory: memory: users: superman: password: clark ro

我已经按照symfony官方文档创建了一个登录表单:

表单登录将显示,但当我尝试与有效用户连接时,我什么都没有:没有错误,没有重定向。。。表单将再次显示,但不显示任何消息

这是我的安全。yml:

security:
providers:
    in_memory:
        memory: 
           users:
               superman:
                   password: clark
                   roles: ROLE_PRD, ROLE_CAT, ROLE_BATMAN
               batman:
                   password: bruce
                   roles: ROLE_CAT, ROLE_BATMAN
               test:
                   password: test
                   roles: ROLE_CAT, ROLE_BATMAN
encoders:
    Symfony\Component\Security\Core\User\User: plaintext
firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false
    autre:
        pattern: ^/catalogue/login
        security: false
    main:
        provider: in_memory
        anonymous: ~
        form_login:
            login_path: login
            check_path: login
            #default_target_path: /catalogue/admin/
        pattern: ^/catalogue/admin
access_control:
    - { path: ^/catalogue/admin/produit/$, roles: ROLE_BATMAN}
    - { path: ^/catalogue/admin/produit, roles: ROLE_PRD}
    - { path: ^/catalogue/admin/categorie, roles: ROLE_CAT}
这是我的控制器SecurityController.php:

<?php

namespace CatalogueBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;


use Symfony\Component\HttpFoundation\Response;

class SecurityController extends Controller
{

    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 new Response("<html> <body> SecuriteController </body>  </html>");

        return $this->render('securite/login.html.twig', array(
            'last_username' => $lastUsername,
            'error'         => $error,
        ));
    }
}

似乎symfony安全系统在提交时没有捕获我的表单数据,我的日志中没有任何内容

我想你的问题不止一个。 为了帮助您继续您的项目

  • 我看不到您在“成功时”将用户重定向到哪里(它位于您的security.yml中的注释中) 您可以做的是在“dev”导航栏中查看登录后您的用户是否不再是匿名用户

  • 我想你的安全有问题 url“/catalog/login”将绑定到您的“autre”防火墙,您没有精确显示表单登录信息。 由于我在您的项目中没有更多信息,也许您可以删除(或评论)您的“autre”防火墙,只需添加您的访问控制您的登录路径,并接受匿名

  • 尝试使用这些信息做一些事情,如果你有困难,请回来

    [编辑]
    也许你必须移动“autre”防火墙中的“form_login:”部分,不要忘记你的提供商…

    我认为你这里有不止一个问题。 为了帮助您继续您的项目

  • 我看不到您在“成功时”将用户重定向到哪里(它位于您的security.yml中的注释中) 您可以做的是在“dev”导航栏中查看登录后您的用户是否不再是匿名用户

  • 我想你的安全有问题 url“/catalog/login”将绑定到您的“autre”防火墙,您没有精确显示表单登录信息。 由于我在您的项目中没有更多信息,也许您可以删除(或评论)您的“autre”防火墙,只需添加您的访问控制您的登录路径,并接受匿名

  • 尝试使用这些信息做一些事情,如果你有困难,请回来

    [编辑]
    也许你必须移动“autre”防火墙中的“form_login:”部分,别忘了你的提供商…

    我还阅读了关于新安装symfony 3.2的教程,我仍然有同样的问题:登录表单正在刷新,似乎没有调用安全系统!我还阅读了新安装的symfony 3.2的教程,但仍然存在同样的问题:登录表单正在刷新,似乎没有调用安全系统!
    {% extends 'base.html.twig' %}
    {% block body %}
    
    {% if error %}
        <div>{{ error.messageKey|trans(error.messageData, 'security') }}</div>
    {% endif %}
    
    <form action="{{ path('login') }}" method="post">
        <label for="username">Username:</label>
        <input type="text" id="username" name="_username" value="{{ last_username }}" />
    
        <label for="password">Password:</label>
        <input type="password" id="password" name="_password" />
        <button type="submit">login</button>
    </form>
    
    {% endblock %}    
    
    login:
      path:     /catalogue/login
      defaults: { _controller: CatalogueBundle:Security:login }