-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
potential bug in Symfony\Component\Security\Acl\Domain\RoleSecurityIdentity #5026
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
ref #5076 |
Closing as this is a duplicate. |
m14t
added a commit
to m14t/symfony-docs
that referenced
this issue
Apr 23, 2013
The documentation seems to assume the implementation present in commit symfony/symfony#1673, which reverted soon after due to a potential, but undisclosed security hole (citation @schmittjoh in symfony/symfony@af70ac8). This incorrect documentation has likely been the source of many of the following issues: * symfony/symfony#1538 - [ACL RoleSecurityIdentity] check if instance of Role * symfony/symfony#1748 - Replace Role to RoleInterface for RoleSecurityIdentity * symfony/symfony#4309 - Issue related to custom group (role) and ACL/ACE * symfony/symfony#5026 - potential bug in Symfony\Component\Security\Acl\Domain\RoleSecurityIdentity * symfony/symfony#5076 - [Acl] altered the behaviour of RoleSecurityIdentity * symfony/symfony#5171 - Fix/role security identity * symfony/symfony#5303 - [Security] Check for RoleInterface instead of Role object in RoleSecurityIdentity * symfony/symfony#5909 - Allow Custom Roles to implement the RoleInterface * symfony/symfony#6012 - Securityidentity fix
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
hi,
the constructor of Symfony\Component\Security\Acl\Domain\RoleSecurityIdentity\RoleSecurityIdentity takes $role as a parameter and checks if it is an instance of Symfony\Component\Security\Core\Role\Role. Following the guidelines in http://symfony.com/doc/master/cookbook/security/entity_provider.html, our Role class implements RoleInterface. This results in RoleSecurityIdentity::role being populated with an object during the PermissionsEvaluation phase.
the fix, for me was easy, and should not break any other parts of the implementation, as Core\Role\Role also implements Core\Role\RoleInterface.
[[WARNING: HANDWRITTEN DIFF]]
<<<
[Symfony\Component\Security\Acl\Domain\RoleSecurityIdentity\RoleSecurityIdentity.php]
-- use Symfony\Component\Security\Core\Role\Role;
++ use Symfony\Component\Security\Core\Role\RoleInterface;
[...]
public function __construct($role)
{
-- if ($role instanceof Role) {
++ if ($role instanceof RoleInterface) {
i can submit a proper patch if required.
regards,
sb
The text was updated successfully, but these errors were encountered: