dongyou8368 2014-07-15 08:36
浏览 34

无法使用FOSUserBundle登录

I'm writing authentication system for admin panel, so any link that has admin/ prefix is protected, and accessing it without being logged in redirects to login form.

The problem is that I can't login, after typing credintials I just get redirected to the login form back again.

I also overrided username field to use login field instead.

security.yml:

role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: ROLE_ADMIN

providers:
    fos_userbundle:
        id: fos_user.user_provider.username

firewalls:
    main:
        pattern: ^/
        anonymous: ~
        form_login:
            provider: fos_userbundle
            csrf_provider: form.csrf_provider
        logout:       true
        anonymous:    true

access_control:
    - { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/admin/, role: ROLE_ADMIN }

config.yml:

fos_user:
    db_driver: orm
    firewall_name: main
    user_class: Acme\AdminBundle\Entity\Users
    registration:
        confirmation: { enabled: false }

I updated the record to set ROLE_ADMIN as roles field value. And nothing. What's going on?

EDIT. Acme\AdminBundle\Entity\Users:

<?php

namespace Acme\AdminBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use FOS\UserBundle\Model\User as BaseUser;

/**
 * Users
 */
class Users extends BaseUser
{
    /**
     * @var integer
     */
    protected $userId;

    /**
     * @var string
     */
    protected $fbid;

    /**
     * @var boolean
     */
    protected $emailConfirmed;

    /**
     * @var string
     */
    protected $login; // etc

FOS\UserBundle\Model\User:

abstract class User implements UserInterface, GroupableInterface
{
    /**
     * @var integer
     */
    protected $id;

    /**
     * @var string
     */
    protected $username;

    /**
     * @var string
     */
    protected $usernameCanonical;

    /**
     * @var string
     */
    protected $email;

    /**
     * @var string
     */
    protected $emailCanonical;

users.orm.xml:

<?xml version="1.0" encoding="utf-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
  <entity name="Acme\AdminBundle\Entity\Users" table="users" repository-class="Acme\AdminBundle\Repository\UsersRepository">
    <attribute-overrides>
        <attribute-override name="username">
            <field name="login" type="string" column="login" length="128" nullable="false"/>
        </attribute-override>
    </attribute-overrides>
    <id name="userId" type="integer" column="user_id">
      <generator strategy="IDENTITY"/>
    </id>
    <field name="fbid" type="string" column="fbid" length="20" nullable="false"/>
    <field name="emailConfirmed" type="boolean" column="email_confirmed" nullable="false"/>

user.orm.xml (FOSUserBundle xml):

<?xml version="1.0" encoding="UTF-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
                  http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">

    <mapped-superclass name="FOS\UserBundle\Model\User">

        <field name="username" column="username" type="string" length="255" />
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
    • ¥15 如何在scanpy上做差异基因和通路富集?
    • ¥20 关于#硬件工程#的问题,请各位专家解答!
    • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
    • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
    • ¥30 截图中的mathematics程序转换成matlab
    • ¥15 动力学代码报错,维度不匹配
    • ¥15 Power query添加列问题
    • ¥50 Kubernetes&Fission&Eleasticsearch
    • ¥15 報錯:Person is not mapped,如何解決?