security core
v7.2.0
安全性为复杂的授权系统提供了基础设施,这使得可以轻松地将实际授权逻辑与保存用户凭证的所谓用户提供者分开。
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 ();
}
Symfony 7.1 的安全组件由 SymfonyCasts 支持。
通过观看正在构建的真实项目并积极地与它们一起编码,可以更快地学习 Symfony。 SymfonyCasts 弥合了学习差距,为您带来视频教程和编码挑战。代码开启!
通过赞助 Symfony 的开发来帮助它!