If you liked what you've learned so far, dive in!
Subscribe to get access to this tutorial plus
video, code and script downloads.
With a Subscription, click any sentence in the script to jump to that part of the video!
Login SubscribeAl convertirnos al nuevo sistema de seguridad, nuestras desaprobaciones acaban de bajar. Si miras lo que queda, una de ellas dice
El nodo hijo "encoders" en la ruta "security" está obsoleto, utiliza "password_hashers" en su lugar.
Este es otro cambio que vimos al actualizar la receta de security-bundle
. Originalmente, teníamos encoders
. Esto le dice a Symfony qué algoritmo usar para hacer el hash de la contraseña. Esto ha sido renombrado a password_hashers
. Y en lugar de necesitar nuestra clase personalizada, siempre podemos usar esta configuración. Esto dice
Cualquier clase que implemente
PasswordAuthenticatedUserInterface
debe utilizar el algoritmoauto
.
Y como toda clase de usuario con contraseña lo implementará -incluida nuestra clase- esto nos cubre.
Si antes tenías un algoritmo diferente, muévelo a esta línea. No queremos cambiar de algoritmo, sólo eliminar encoders
en favor depassword_hashers
.
Ahora, en la página de inicio... ¡tenemos aún menos depreciaciones! ¡Quedan dos! Intentemos conectarnos. ¡Ah! Creo que antes se me escaparon algunos conflictos en mi diseño base.
Vamos a pasar por encima de ellos y a arreglarlos. En templates/base.html.twig
... sí. Cuando actualizamos la receta de twig-bundle
, esto entraba en conflicto y no me di cuenta.
Ahora... mucho mejor. Iniciemos la sesión: tenemos un usuario llamado abraca_admin@example.com
con contraseña tada
. Entra y... ¡está vivo!
Por cierto, hablando de "seguridad" y "cortafuegos", Symfony incluye un nuevo comando para ayudar a depurar y visualizar tu cortafuegos. Se llama, apropiadamente,debug:firewall
. Si lo ejecutas sin argumentos:
php bin/console debug:firewall
Te dirá los nombres de tu cortafuegos: dev
y main
. Vuelve a ejecutarlo con main
:
php bin/console debug:firewall main
¡Aquí lo tenemos! Esto nos dice qué autentificadores tiene este cortafuegos, qué proveedor de usuarios está utilizando -aunque nuestra aplicación normalmente sólo tiene uno- y también el punto de entrada, que es algo de lo que hablamos en nuestro tutorial de Seguridad.
Bien, pon una gran marca de verificación junto a "actualizar la seguridad". A continuación, vamos a machacar las últimas depreciaciones y a aprender cómo podemos estar seguros de que no se nos ha escapado ninguna.
// composer.json
{
"require": {
"php": "^8.0.2",
"ext-ctype": "*",
"ext-iconv": "*",
"babdev/pagerfanta-bundle": "^3.6", // v3.6.1
"composer/package-versions-deprecated": "^1.11", // 1.11.99.5
"doctrine/annotations": "^1.13", // 1.13.2
"doctrine/dbal": "^3.3", // 3.3.5
"doctrine/doctrine-bundle": "^2.0", // 2.6.2
"doctrine/doctrine-migrations-bundle": "^3.2", // 3.2.2
"doctrine/orm": "^2.0", // 2.11.2
"knplabs/knp-markdown-bundle": "^1.8", // 1.10.0
"knplabs/knp-time-bundle": "^1.18", // v1.18.0
"pagerfanta/doctrine-orm-adapter": "^3.6", // v3.6.1
"pagerfanta/twig": "^3.6", // v3.6.1
"sensio/framework-extra-bundle": "^6.0", // v6.2.6
"sentry/sentry-symfony": "^4.0", // 4.2.8
"stof/doctrine-extensions-bundle": "^1.5", // v1.7.0
"symfony/asset": "6.0.*", // v6.0.7
"symfony/console": "6.0.*", // v6.0.7
"symfony/dotenv": "6.0.*", // v6.0.5
"symfony/flex": "^2.1", // v2.1.7
"symfony/form": "6.0.*", // v6.0.7
"symfony/framework-bundle": "6.0.*", // v6.0.7
"symfony/mailer": "6.0.*", // v6.0.5
"symfony/monolog-bundle": "^3.0", // v3.7.1
"symfony/property-access": "6.0.*", // v6.0.7
"symfony/property-info": "6.0.*", // v6.0.7
"symfony/proxy-manager-bridge": "6.0.*", // v6.0.6
"symfony/routing": "6.0.*", // v6.0.5
"symfony/runtime": "6.0.*", // v6.0.7
"symfony/security-bundle": "6.0.*", // v6.0.5
"symfony/serializer": "6.0.*", // v6.0.7
"symfony/stopwatch": "6.0.*", // v6.0.5
"symfony/twig-bundle": "6.0.*", // v6.0.3
"symfony/ux-chartjs": "^2.0", // v2.1.0
"symfony/validator": "6.0.*", // v6.0.7
"symfony/webpack-encore-bundle": "^1.7", // v1.14.0
"symfony/yaml": "6.0.*", // v6.0.3
"symfonycasts/verify-email-bundle": "^1.7", // v1.10.0
"twig/extra-bundle": "^2.12|^3.0", // v3.3.8
"twig/string-extra": "^3.3", // v3.3.5
"twig/twig": "^2.12|^3.0" // v3.3.10
},
"require-dev": {
"doctrine/doctrine-fixtures-bundle": "^3.4", // 3.4.1
"phpunit/phpunit": "^9.5", // 9.5.20
"rector/rector": "^0.12.17", // 0.12.20
"symfony/debug-bundle": "6.0.*", // v6.0.3
"symfony/maker-bundle": "^1.15", // v1.38.0
"symfony/var-dumper": "6.0.*", // v6.0.6
"symfony/web-profiler-bundle": "6.0.*", // v6.0.6
"zenstruck/foundry": "^1.16" // v1.18.0
}
}