Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.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
Php 配置身份验证symfony2_Php_Symfony - Fatal编程技术网

Php 配置身份验证symfony2

Php 配置身份验证symfony2,php,symfony,Php,Symfony,我正在尝试使用以下配置在symfony2上配置身份验证: Security.yml security: encoders: Symfony\Component\Security\Core\User\User: plaintext role_hierarchy: ROLE_ADMIN: ROLE_USER ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_

我正在尝试使用以下配置在symfony2上配置身份验证:

Security.yml

security:
    encoders:
        Symfony\Component\Security\Core\User\User: plaintext

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        in_memory:
            memory:
                users:
                    user:  { password: userpass, roles: [ 'ROLE_USER' ] }
                    admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }

    firewalls:
        admin_area:
            pattern:   ^/admin
            provider:  in_memory
            anonymous: ~
            form_login:
                login_path: login
                check_path: login_check
            logout:
                path:   /logout
                target: /  

    access_control:
        - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin, roles: ROLE_ADMIN }
/src/MyBundle/Resources/Routing.yml

ies_cierva_encuesta_backend_admin:
    pattern:  /admin
    defaults: { _controller: Bundle:Default:admin }

login:
    pattern:  /login
    defaults: { _controller: Bundle:Login:login }

login_check:
    pattern:  /login_check  

logout:
    pattern:  /logout
src/Bundle/Controller/LoginController.php

<?php

namespace ...

use ...

class LoginController extends Controller {

    public function loginAction(Request $request) {
        $session = $request->getSession();

        if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
            $error = $request->attributes->get(
                SecurityContext::AUTHENTICATION_ERROR
            );
        } else {
            $error = $session->get(SecurityContext::AUTHENTICATION_ERROR);
            $session->remove(SecurityContext::AUTHENTICATION_ERROR);
        }

        return $this->render(
            'Bundle:Security:login.html.twig',
            array(
                // last username entered by the user
                'last_username' => $session->get(SecurityContext::LAST_USERNAME),
                'error'         => $error,
            )
        );
    }
}
在中,提到

“确保您的检查路径URL(例如/login\u check)位于您用于表单登录的防火墙后面”

但是/login\u检查与表单登录使用的防火墙不同

firewalls:
    admin_area:
        pattern:   ^/admin
        provider:  in_memory
        anonymous: ~
        form_login:
            login_path: login
            check_path: login_check
        logout:
            path:   /logout
            target: /  
在上述配置中,模式路径“login\u check”与“^/admin”模式不匹配。相应地更改模式以使其工作