如何在Symfony中将实体创建与登录操作挂钩
我正在建立我的第一个Symfony项目。我的用户身份验证是通过LDAP针对Active Directory进行的。当用户登录时,我想检查MySQL数据库的如何在Symfony中将实体创建与登录操作挂钩,symfony,Symfony,我正在建立我的第一个Symfony项目。我的用户身份验证是通过LDAP针对Active Directory进行的。当用户登录时,我想检查MySQL数据库的person表中是否有记录,如果没有,则创建一条记录。这应该是唯一可以添加新人员记录的时间 我用条令包来处理数据库。我已经生成了一个Person实体,它本质上只是Active Directory GUID到自动递增主键的一对一映射。以下是实体类: namespace MyProject\PersonBundle\Entity; use Doc
person
表中是否有记录,如果没有,则创建一条记录。这应该是唯一可以添加新人员记录的时间
我用条令包来处理数据库。我已经生成了一个Person
实体,它本质上只是Active Directory GUID到自动递增主键的一对一映射。以下是实体类:
namespace MyProject\PersonBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="person")
*/
class Person
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=16, unique=true, nullable=false)
*/
protected $AD_guid;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set AD_guid
*
* @param string $aDGuid
* @return Person
*/
public function setADGuid($aDGuid)
{
$this->AD_guid = $aDGuid;
return $this;
}
/**
* Get AD_guid
*
* @return string
*/
public function getADGuid()
{
return $this->AD_guid;
}
}
我认为将
Person
创建与登录操作相耦合应该意味着Person
不会得到PersonController
(因为它从未出现过),或者可能PersonController
不需要路由方向。但是,无论我是否有PersonController
,我都不确定如何连接到登录操作。建议?如何对用户进行身份验证?您是使用LDAP验证插件还是自己编写的?
无论哪种方式,都有一个类和方法检查LDAP中的用户。
钩子a)在这个类中,b)在这个类的父调用之后。
只需检查数据库中是否有条目,如果没有,则创建一个新的Person(),设置数据并保存()。Person是您的模型,可以在您需要的任何地方使用(尽管您应该尊重MVC模式)我正在使用
ZtecSecurityActiveDirectoryBundle
()进行身份验证。但我的印象是Symfony抽象了安全性,因此无论使用哪个验证器包,我都应该能够在登录事件上放置一个侦听器。这不正确吗?也许这有助于: