问题标签 [symfony-security]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
security - SonataUser - 具有角色安全性的自定义选民
我正在使用 SonataAdmin sonata.admin.security.handler.role
(所以我在这里不使用 ACL)。
我正在尝试使用自定义选民限制对对象的访问。
服务
选民 应用程序...\Voter\CompanyVoter.php
但我总是得到一个实例Application\...\Voter\CompanyVoter
而不是预期的对象来限制。
可能是什么原因?
isGranted()
您是在告诉我 Sonata在使用角色安全处理程序时不会将对象传递给吗?
symfony - 将对象传递给自定义选民?
我一直在阅读有关在 Symfony 2 中创建自定义选民的信息。根据此页面,可以将对象传递给 securitycontext 的 isGranted 方法,我在自己的控制器中完成了该方法:
看起来投票方法应该接受它,但是,当我在 $object 参数上调用 get_class 时,而不是获取我的 Page 实体,我得到:
Symfony\Component\HttpFoundation\Request
我的选民在我的 services.yml 文件中被定义为服务:
我哪里错了?
任何建议表示赞赏。
谢谢
security - Symfony2 - 为什么即使是超级管理员也需要选民
我注意到我的选民即使是超级管理员用户也会被征集。
它是否按预期工作?
如果是的话,我认为 SuperAdmin 的理念是他们系统地拥有所有权限,这样我们就不必一一授予他们每个权限。在那种情况下,为什么不授予所有选民访问权限?
我总是要放
在我的选民中?
symfony - symfony2 中的防火墙安全问题
我正在使用 symfony2 并且对 symfony 防火墙中的身份验证和访问控制有一点问题。
这是我的 security.yml
事情在这个站点中,没有 /admin 路径或管理员的特定路径。admin 由每个页面中的角色定义,并且页面的内容根据用户类型而不同。(我知道这很糟糕)。
这意味着我必须让所有用户访问除某些页面之外的所有页面,如果他们登录,他们会获得不同类型的数据。
但我有以下错误:
当我登录并将用户发送到另一条路径(不被视为安全路径)时,它不显示任何信用信息?!!!
我应该怎么做才能拥有和访问具有这种结构的数据?
php - Symfony2 自定义用户提供程序不起作用
我有一个自定义用户提供程序,遵循以下指南:
http://symfony.com/doc/current/cookbook/security/custom_provider.html
一切正常,但我无法访问受限区域。
在我的UserProvider
课堂上,我将$roles
var 设置为 have array("ROLE_USER")
,这是我访问路由 app/list 所需的权限,但是当我转到 app/list 时,Symfony 会一次又一次地重定向我登录。
我已经看到了调试工具栏,它的结果是:
我的 security.yml 文件是:
我的UserProvider
班级如下所示。我只是调用一个 XML 服务,它给了我一个我将存储在我的令牌中UserClass
:
这是我UserObject
的DaoAuthenticationProvider::checkAuthentication()
这是我的routing.yml:
symfony - @Security 注释的自定义消息
我正在尝试@Security
为我的路线使用注释。像这样:
当安全限制引发异常时,我收到消息Expression "has_role('ROLE_USER')" denied access
。
向最终用户显示这是不可接受的,因此我正在尝试找到一种方法来自定义注释消息。
简单的解决方法是不使用@Secutity
注释并编写如下代码:
但这不太方便且可读性较差。
是否可以将自定义消息写入@Security
注释?
php - 如何实现基于会话变量的授权系统?
我正在尝试将我的应用程序从 Silex 迁移到 Symfony。
我正在使用 Silexbefore(...)
方法注册要在执行操作本身之前执行的方法,以检查是否设置了某些会话变量。
我可以对 Symfony 中的事件监听器做类似的事情,但是控制器需要不同的 before 方法来包含操作方法。
目前,Silex 看起来如下所示:
如果之前选择了容器对象,则完全经过身份验证的用户可以访问某些控制器操作。所以最后看守方法是一种访问控制。
如果用户在没有选择对象的情况下访问操作,我想将用户重定向到选择或类似内容。
一种想法是将其实现为角色并在会话期间临时授予角色。似乎不可能在用户登录时临时存储角色。
我可以将它与access_denied_url调用的自定义控制器或更好的方法结合使用来实现自己的access_denied_handler来处理访问控制处理程序拒绝的访问。
但
另一种思路是使用access_control下的allow_if表达式,不过还有一点,如果出现异常(access denied,如何实现Access Denied Handler),我该如何反应?
您将如何实施这样的系统?
感谢您的建议中的任何提示!
symfony - Symfony2 保护整个控制器
我在控制器中有不同的用户操作。我想保护它们,以便匿名用户无法访问此操作。(他们不依赖于特殊的前缀路径)
根据: http ://symfony.com/doc/current/book/security.html#securing-a-controller
我必须确保每个动作分开。这不是很方便,并且会产生重复的代码。
是否有可能为控制器的所有操作抛出 accessdenied 异常?
symfony - 如何向 ExceptionListener 注入额外的服务?
我想setTargetPath
从默认的ExceptionListener(文档)中覆盖。但我需要额外的服务来处理这个。
在我看来,只有覆盖服务定义,将其复制到我的服务定义并创建自己的构造函数的方法,但我不喜欢这种方法。
有没有其他方法可以做到这一点?
php - Symfony2 中的权限管理方法
我正在创建一个有用户的 Symfony2 网站,每个用户都可以拥有多个权限,如下所示:
对于这样的系统,正确的权限系统是什么?
Roles
或ACLs
或voters
或 别的什么?
谢谢