- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 ACL 有疑问:
我使用类作用域来授予角色权限。
这是我声明 ClassAce 的代码:
$objectIdentity = new \Symfony\Component\Security\Acl\Domain\ObjectIdentity('class', 'Complete\\Class\\Name');
try
{
$acl = $aclProvider->findAcl($objectIdentity);
}
catch (\Symfony\Component\Security\Acl\Exception\Exception $e)
{
$acl = $aclProvider->createAcl($objectIdentity);
}
// retrieving the security identity of the currently role
$securityIdentity = new \Symfony\Component\Security\Acl\Domain\RoleSecurityIdentity($role);
// grant owner access
$acl->insertClassAce($securityIdentity, \Symfony\Component\Security\Acl\Permission\MaskBuilder::MASK_OWNER);
$aclProvider->updateAcl($acl);
这是我检查访问权限的代码:
$securityContext = $this->get('security.context');
$oid = new \Symfony\Component\Security\Acl\Domain\ObjectIdentity('class', 'Complete\\Class\\Name');
if (false === $securityContext->isGranted('EDIT', $oid))
{
throw new \Symfony\Component\Security\Core\Exception\AccessDeniedException();
}
我收到一个 AccessDeniedExeption,日志中有消息:“否找到对象标识的 ACL。投票拒绝访问。”
我可以通过改变 equals 函数来解决这个问题角色安全身份
原函数是
public function equals(SecurityIdentityInterface $sid)
{
if (!$sid instanceof RoleSecurityIdentity) {
return false;
}
return $this->role === $sid->getRole();
}
但是如果我把它改成
public function equals(SecurityIdentityInterface $sid)
{
if (!$sid instanceof RoleSecurityIdentity) {
return false;
}
return $this->role == $sid->getRole();
}
有效...
我使用自己的角色类,会不会有问题?
感谢您的回答,
最佳答案
我遇到了类似的问题。在我自己的 Role 类中扩展 Symfony\Component\Security\Core\Role\Role 解决了这个问题。
use Symfony\Component\Security\Core\Role\Role as CoreRole;
class Role extends CoreRole{ // or extends CoreRole implements RoleInterface
// my custom Role class
}
在equal函数中找出什么类型的值正在检查,它必须是字符串,而不是对象。在我的例子中,它是角色对象。
关于SYMFONY2 : ACL, 角色和类作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9000561/
我正在尝试修改一个对象的 ACL,而不创建另一个对象。我不希望删除或覆盖当前的 ACL。每当我使用 object.setACL() 时,它都会覆盖当前的 ACL。 有没有办法保存修改后的ACL而不覆盖
我正在尝试修改一个对象的 ACL,而不创建另一个对象。我不希望删除或覆盖当前的 ACL。每当我使用 object.setACL() 时,它都会覆盖当前的 ACL。 有没有办法保存修改后的ACL而不覆盖
我在客户端和服务器之间有一个代理服务器。 我使用 XDR 读取和修改它们之间的 NFS 消息 例如,如果我想编辑文件大小并获取属性回复我使用结构和函数 GETATTR3res bool_t xdr_G
我正在考虑 RabbitMQ 在创建多用户聊天系统方面的用处。人们可以在不同的房间里聊天,一些是公共(public)的,一些是私有(private)的,还有私有(private)的。是否有可能实现私有
无法让属于“用户”组的用户访问(至少阅读)项目。我已经阅读并尝试了我在互联网上找到的几个例子,似乎没有一个工作。 我现在需要的是:允许属于“用户”组的任何用户读取名为 MYPROJECT 的项目。我有
我正在使用 mosquitto 1.4.5 版本。 我正在尝试让一个单独的插件对 mosquitto 代理的主题订阅进行 ACL 检查,并使用提供的 header 进行发布。 只是为了测试 auth
大家好,这可能是一个愚蠢的问题,但我真的对 ACL、RBAC、DAC、MAC 感到困惑...... 以具有以下用户类型的在线大学管理系统为例: 管理员 房车 教职工 学生 他们每个人都有不同的访问权限
我是环回的新手。我已经为所有用户 ($everyone) 创建了拒绝权限的 ACL。但是我可以通过 swagger 访问所有 API。有人可以解释一下吗?以下是我的 ACL。谢谢。 "acls": [
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 7 年前。 Improve
我们的应用程序使用一个组件,该组件需要我们的可执行文件所在目录中的许可证文件,它恰好是一个 .NET WinForms 应用程序,但我认为这对这个问题无关紧要。当安装在一些 XP Pro 机器上时(目
我正在使用 Web Deploy 将 Web 应用程序部署到我的主机。当使用 Publish 命令从 Visual Studio 运行时,它工作正常。当我尝试使用 MSBuild 的 web 部署进行
我刚刚开始使用 Grails,并且正在尝试配置 spring-security-acl 插件。我一直在关注official plugin tutorial但是在尝试运行我的应用程序时无法通过引导阶段(
谁能建议一种可扩展的设计模式来实现对照片和相册的访问控制,每个都有单独的隐私设置(即所有者、组成员、公开)? 我正在使用 CakePHP,我在 ACL 组件上阅读的示例似乎控制对 Controller
我一直在关注this guide加载我的菜单配置,我认为这是加载菜单的非常好的和干净的方式。 我的问题很简单,有没有办法以与配置数组和某种工厂相同的方式加载 ACL 配置? 如果没有,我如何加载 AC
New-Item -Type Directory -Path "C:\MyFolder" $Acl = Get-Acl "C:\MyFolder" $Ar = New-Object System.Se
在 android 中,我在后端使用 Parse 和 back4app.com,每当我在返回保存回调中使用 myParseobject.saveInBackground() 时,我都会收到错误消息,指
我有一个正在将数据帧写入 ADLS Gen2 存储中的文件的数据 block 笔记本。 它创建一个临时文件夹,输出文件,然后将该文件复制到一个永久文件夹。由于某种原因,该文件没有正确继承 ACL。它创
我陷入了两难的境地。我正在使用 spring-security-acl 及其 jdbc 实现。问题是,我在其他查询中使用 JPA 存储库 (Spring-data-jpa)。我认为,这没问题,因为 J
我有代码可以在“line vty”上查找“access-class”的名称 之后我能够找到 ACL,但随后我想检查 ACL 的每一行以验证“拒绝”和“允许”语句是否具有“log”关键字。如果条目上没有
我正在使用 Cloudera 的 Hadoop CDH 发行版,并且最近从 CDH3 升级到了 CDH4。 在 CDH3 中,我曾经能够将用户名添加到 hadoop-policy.xml 中,用于:
我是一名优秀的程序员,十分优秀!