caisse-bliss/vendor/symfony/security-core
2023-06-19 12:13:30 +02:00
..
Authentication add version symfony flex 6 2023-06-19 12:13:30 +02:00
Authorization add version symfony flex 6 2023-06-19 12:13:30 +02:00
Event add version symfony flex 6 2023-06-19 12:13:30 +02:00
Exception add version symfony flex 6 2023-06-19 12:13:30 +02:00
Resources/translations add version symfony flex 6 2023-06-19 12:13:30 +02:00
Role add version symfony flex 6 2023-06-19 12:13:30 +02:00
Signature add version symfony flex 6 2023-06-19 12:13:30 +02:00
Test add version symfony flex 6 2023-06-19 12:13:30 +02:00
User add version symfony flex 6 2023-06-19 12:13:30 +02:00
Validator/Constraints add version symfony flex 6 2023-06-19 12:13:30 +02:00
AuthenticationEvents.php add version symfony flex 6 2023-06-19 12:13:30 +02:00
CHANGELOG.md add version symfony flex 6 2023-06-19 12:13:30 +02:00
composer.json add version symfony flex 6 2023-06-19 12:13:30 +02:00
LICENSE add version symfony flex 6 2023-06-19 12:13:30 +02:00
README.md add version symfony flex 6 2023-06-19 12:13:30 +02:00
Security.php add version symfony flex 6 2023-06-19 12:13:30 +02:00

Security Component - Core

Security provides an infrastructure for sophisticated authorization systems, which makes it possible to easily separate the actual authorization logic from so called user providers that hold the users credentials.

Getting Started

$ composer require symfony/security-core
use Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolver;
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
use Symfony\Component\Security\Core\Authorization\AccessDecisionManager;
use Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter;
use Symfony\Component\Security\Core\Authorization\Voter\RoleVoter;
use Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter;
use Symfony\Component\Security\Core\Exception\AccessDeniedException;
use Symfony\Component\Security\Core\Role\RoleHierarchy;

$accessDecisionManager = new AccessDecisionManager([
    new AuthenticatedVoter(new AuthenticationTrustResolver()),
    new RoleVoter(),
    new RoleHierarchyVoter(new RoleHierarchy([
        'ROLE_ADMIN' => ['ROLE_USER'],
    ]))
]);

$user = new \App\Entity\User(...);
$token = new UsernamePasswordToken($user, 'main', $user->getRoles());

if (!$accessDecisionManager->decide($token, ['ROLE_ADMIN'])) {
    throw new AccessDeniedException();
}

Sponsor

The Security component for Symfony 5.4/6.0 is backed by SymfonyCasts.

Learn Symfony faster by watching real projects being built and actively coding along with them. SymfonyCasts bridges that learning gap, bringing you video tutorials and coding challenges. Code on!

Help Symfony by sponsoring its development!

Resources