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条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 模型在y分布之外的数据上预测能力不好如何解决
    • ¥15 processing提取音乐节奏
    • ¥15 python进程启动打包问题
    • ¥15 gg加速器加速游戏时,提示不是x86架构
    • ¥15 python按要求编写程序
    • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入
    • ¥20 XP系统在重新启动后进不去桌面,一直黑屏。
    • ¥15 opencv图像处理,需要四个处理结果图
    • ¥15 无线移动边缘计算系统中的系统模型
    • ¥15 深度学习中的画图问题