2012-10-12 179 views
8

¿Podemos usar expresiones regulares en el control de acceso en la seguridad de symfony2?¿Podemos usar expresiones regulares en el control de acceso de Symfony2?

1) /foo/{id} -- [ROLE_ADMIN] 
2) /foo/{id}/profile -- [IS_AUTHENTICATED_ANONYMOUSLY] 

Otra cuestión:

Si me quita el access_control de mi seguridad, todavía va al módulo de seguridad y tratar de Authenticate de Security/Authentication/Provider/AuthProvide.

¿Cuál debería ser el comportamiento ideal? Creo que no debería autenticar el recurso si no hay access_control en security.yml.

Mi configuración del cortafuegos es:

firewalls: 
    main: 
      pattern: ^/ 
      anonymous: true 
      myapp: true 

Respuesta

12

Sí, puede utilizar expresiones regulares.

Pero /foo/{id}/profile no coincidirá con lo que desea. Como id es probablemente un número entero, que tendrá que utilizar en su lugar:

^/foo/[0-9]+/profile$ 

o

^/foo/[^/]+/profile$ 
+0

pensé que esto no estaba funcionando, pero que estaba siendo un poco oscuro, y se vio frustrado por la primera orden de enrutamiento de orden de llegada. Funciona un placer! Saludos +1 –

Cuestiones relacionadas