Creando un Custom Encoder en Symfony2

Puede que en alguna ocasión queramos codificar los passwords de una forma especial, ya sea porque estamos migrando una aplicación a Symfony2 o queremos usar algún método de codificación que no viene por defecto. El componente de seguridad nos ofrece la posibilidad de crear nuestro propio codificador, veremos cómo hacerlo usando para codificar phpass.

Lo primero que necesitamos es añadir a composer una librería que implemente phpass:

Ahora viene la parte interesante, tenemos que implementar nuestro codificador, para ello nos basaremos en la clase MessageDigestPasswordEncoder de Symfony2 para implementar el nuestro quedando de la siguiente forma:

Ya tenemos nuestro codificador, ahora crearemos el servicio, para ellos nos creamos un fichero llamado security.xml dentro de nuestro bundle en Resources/config como es habitual:

Añadimos una nueva línea en AppSMTCExtension como ya vimos para que cargue el xml:

Y por último en el security.yml indicamos que vamos a usar nuestro codificador:

Con esto quedaría configurado y listo para usar.