Nuevo en Symfony 5.1: Acceso de seguridad basado en la prioridad
En las aplicaciones Symfony, los security voters centralizan la lógica
relacionada con la autorización para decidir si un usuario puede acceder al
recurso solicitado. Como son servicios de Symfony que utilizan la
etiqueta security.voter, pueden definir su prioridad usando el atributo
priority
de la etiqueta.
No obstante, en la práctica esta prioridad es irrelevante, ya que Symfony usa las siguientes estrategias para decidir si permite el acceso::
affirmative
, da acceso si al menos un voter da acceso.consensus
, da acceso si hay más voters que dan acceso que los que lo niegan.unanimous
, da acceso si no hay ningún voter que niegue el acceso.
Por ese motivo en Symfony 5.1 hemos añadido una nueva estrategia de acceso
llamada priority
que da acceso (o lo niega) dependiendo de lo que haga el
primer voter que no se abstenga. En este caso la prioridad de los voters es
esencial ya que la decision final es la misma que la del primer voter que no
se abstiene:
# config/packages/security.yaml security: access_decision_manager: strategy: priority # ...
Esta funcionalidad tiene su origen en el CMS Contao, que está desarrollado
con Symfony y que define algunos permisos por defecto que sus extensiones/bundles
deben ser capaces de reemplazar. Esta nueva estrategia priority
es la única
capaz de hacerlo.
Esta funcionalidad fue contribuida por Andreas Schempp en el pull request #34548.
Fuente: New in Symfony 5.1: Access decision based on voter priority
Comentarios
Proyectos Symfony destacados
La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más
Síguenos en @symfony_es para acceder a las últimas noticias.