0

プログラミングでsymfonyにログインしようとしたのですが、新しいルートにリダイレクトするとユーザーがanonに戻ります。ユーザー。

security.yml

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

    providers:
        in_memory:
            memory:
                users:
                    admin:
                        password: pass
                        roles: ROLE_ADMIN

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

        main:
            anonymous: ~
            form_login: ~

        login_firewall:
            pattern:   ^/login$
            anonymous: ~

        secured_area:
            pattern:    ^/
            form_login: ~

    access_control:
        - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/, roles: ROLE_ADMIN }

ログインアクション

public function loginAction(Request $request)
{
    if ($request->getMethod() === 'POST')
    {
        $firewall = 'main';

        $user = new User('User', 'pass', array('ROLE_ADMIN'));

        $token = new UsernamePasswordToken($user, $user->getPassword(), $firewall, $user->getRoles());

        $this->get("security.token_storage")->setToken($token);

        $session = $this->get('session');
        $session->set('_security_'.$firewall, serialize($token));

        $event = new InteractiveLoginEvent($request, $token);
        $this->get("event_dispatcher")->dispatch("security.interactive_login", $event);

        return $this->redirect($this->generateUrl('admin'));
    }

    $authenticationUtils = $this->get('security.authentication_utils');
    $error = $authenticationUtils->getLastAuthenticationError();
    $lastUsername = $authenticationUtils->getLastUsername();

    return $this->render(
        'security/login.html.twig',
        array(
            // last username entered by the user
            'last_username' => $lastUsername,
            'error'         => $error,
        )
    );
}

問題:ユーザーはログインしますが、ルート管理者にリダイレクトすると、ユーザー anon で再度ログインに戻ります。

4

2 に答える 2

0

削除する必要があります

form_login: ~

security.yml のメイン ファイアウォールの下

この場合、例外が表示されます。

このリソースにアクセスするには、完全な認証が必要です

于 2016-04-26T23:43:12.017 に答える