【发布时间】:2014-12-21 21:01:14
【问题描述】:
我正在使用 symfony 投票来处理我网站上的用户访问。 当用户未通过身份验证时,我收到错误:
Warning: get_class() expects parameter 1 to be object, string given
当用户访问调用选民的页面时。 选民中引发问题的代码是:
public function vote(TokenInterface $token, $object, array $attributes)
{
if (!$object || !$this->supportsClass(get_class($object))) {
return self::ACCESS_ABSTAIN;
}
...}
当对象 = 'anon.'这是取自 symfony 网站的常规代码。 我当然可以修改此代码以检查对象是否为对象,但我想知道这是否正常?我本来希望不会在非对象上调用选民。
编辑: SuportsClass 和 SupportsAttribute 也是默认的:
protected function getSupportedClasses()
{
return array(
'AppBundle\Entity\User\Associate',
);
}
protected function getSupportedAttributes()
{
return array(self::SELECT_ASSOCIATES, self::GRANT_RIGHTS, self::REMOVE_RIGHT, self::DISPLAY_RIGHTS);
}
【问题讨论】:
-
你能发布你对
supportsAttribute()和supportsClass()的实现吗?我想知道您是否正确检查了那里的对象是否属于适当的类型。
标签: php security symfony object symfony-security