我们想管理后端动作的凭证,从 后端。symfony 1.4:试图管理动作的凭证
如何获取应用程序的操作列表?之后,我们可以通过getCredential()显示每个人的凭证 。
第二个问题:我发现获取动作 (getCredential())的凭证的功能,但如何设置的凭据?我没有找到任何 setCredential()函数...
哈维
我们想管理后端动作的凭证,从 后端。symfony 1.4:试图管理动作的凭证
如何获取应用程序的操作列表?之后,我们可以通过getCredential()显示每个人的凭证 。
第二个问题:我发现获取动作 (getCredential())的凭证的功能,但如何设置的凭据?我没有找到任何 setCredential()函数...
哈维
获取的应用程序的操作的列表无关具有凭证。传统证书是如何命名或组织的,这是一个常规问题。行动和凭据是独立的。每个应用程序可以有一个凭证,或者每个操作可以定义一个凭证。尽管如此,你可以单独管理凭证。
如果您确实想获取可以解析路由文件的操作列表。
您也可以使用PHP的反射机制从动作类中获取方法。
但是,sfDoctrineGuardPlugin/sfGuardPlugin为大多数应用程序提供足够的凭据管理。我宁愿采用这种方法。
2n个问题:有没有setCredential()方法但有一个addCredential()。
让我们先从第二个问题开始,以巩固我们对Symfony证书工作方式的理解。
Symfony中的凭证通过security.yml
文件设置为模块的config
目录。一个security.yml文件可能是这样的:
all:
is_secure: true #makes all methods on this action require user's to be authenticated
edit:
credentials: [admin]
show:
is_secure: false #don't require authentication for this one
,除非你想真正写一个新的YAML文件,并从缓存中清除旧的(不推荐您不能更改从后端行动的安全设置)。如果确实是需要一个动作的动态凭证,我会存储某种开关(锁定文件,APC,数据库)并使用过滤器来动态设置所需的凭证(也不是真的推荐)。
难道你不能对标准的用户/组/许可设置做任何事情吗?
嗨,谢谢你的回应。怎么读/写每个文件security.yml?然后,我会解析每个文件,寻找行 “凭证:”的关键是,并将添加/删除 凭证行... – ziiweb 2010-12-12 18:38:45
我同意很多关于这是否是一个好主意的问题。
无论如何,做什么,我想你问:需要一个动作sfAction来自这个方法
凭据:
public function getCredential()
{
return $this->getSecurityValue('credentials');
}
可以重载,在你的行动(或它的扩展一个新的sfActions的子类,并让你所有的操作扩展它)如果你想做一些更复杂的事情,比如从数据库或其他来源获取证书。
嗨,谢谢你的回应。怎么读/写每个文件security.yml?然后,我会解析每个文件,寻找行 “凭证:”键的位置,并将在 的行中添加/移除凭据... – ziiweb 2010-12-12 18:38:11
嗨,谢谢你的回应。怎么读/写每个文件security.yml?然后,我会解析每个文件寻找行 “凭证:”的关键是,并将添加/删除凭证 该行... – ziiweb 2010-12-12 18:39:23