Symfony 2.6 FR3DLdapBundle. Запрос аутентификации не может быть обработан из-за системы

Привет всем, и мне жаль, если вопрос тупой. Я очень новичок в Symfony (2.6), и мой первый проект требует от пользователя аутентификации в AD.

Что бы я ни делал, я продолжаю получать: запрос на аутентификацию не может быть обработан из-за системной проблемы.

security.yml

encoders:
FOS\UserBundle\Model\UserInterface: sha512role_hierarchy:
ROLE_ADMIN:       ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

providers:
chain_provider:
chain:
providers: [fos_userbundle, fr3d_ldapbundle]

fr3d_ldapbundle:
id: fr3d_ldap.security.user.provider

fos_userbundle:
id: fos_user.user_provider.username

firewalls:
main:

pattern:    ^/
fr3d_ldap:  ~
form_login:
#         check_path: fos_user_security_check
#         login_path: fos_user_security_login
always_use_default_target_path: true
default_target_path: /main
provider: chain_provider
logout:
path:   fos_user_security_logout
target: /login
anonymous: ~

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

config.yml

fr3d_ldap:
driver:
host:                192.168.137.200
port:                50000
username:            DOMAIN\Admnistrator    # Optional
password:            pass_here    # Optional

user:
baseDn: OU=HP,OU=MANA,DC=DOMAIN,DC=com
filter: (&(ObjectClass=Person))
attributes:          # Specify ldap attributes mapping [ldap attribute, user object method]
- { ldap_attr: uid,  user_method: setUsername }
- { ldap_attr: mail, user_method: setEmail }

Сущность / класс пользователя

/**
* @ORM\Entity
* @ORM\Table(name="mdr_user")
*/
class User extends BaseUser implements LdapUserInterface
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;

/**
* @ORM\Column(type="string", nullable=true)
*/
protected $name;

/**
* Ldap Object Distinguished Name
* @ORM\Column(type="string", length=128)
* @var string $dn
*/
private $dn;

public function __construct()
{
parent::__construct();
if (empty($this->roles)) {
$this->roles[] = 'ROLE_USER';
}
}

public function setName($name) {
$this->name = $name;
}

/**
* {@inheritDoc}
*/
public function setDn($dn)
{
$this->dn = $dn;
}

/**
* {@inheritDoc}
*/
public function getDn()
{
return $this->dn;
}
}

если я не реализую LdapUserInterface, БД аутентифицируется нормально, но всегда, если я использую что-то еще, кроме записей mysql, я получаю эту ошибку. Можете ли вы помочь мне с этим?
Ценить это.

3

Решение

Попробуйте сделать это на вашем loginAction()

\Doctrine\Common\Util\Debug::dump($this->getDoctrine()->getEntityManager()->find('AppBundle:User', 1));

Вы можете увидеть ошибку. Это работает для меня.

1

Другие решения

Что исправило это для меня было добавление:

 implements UserInterface, \Serializable

в конце объявления класса моей сущности затем добавляем необходимые методы к сущности внизу:

/**
* @return null
*/
public function getSalt(){
return null;
}

/**
* @return array
*/
public function getRoles(){
return array('ROLE_USER');
}

public function eraseCredentials(){

}

/**
* @return string
*/
public function serialize(){
return serialize(array($this->id, $this->username, $this->password));
}

/**
* @param string $serialized
*/
public function unserialize($serialized) {
list($this->id, $this->username,$this->password) = unserialize($serialized);
}
1

По вопросам рекламы [email protected]