2011-08-21 15 views
9

¡Todos! Me gustaría asegurar mi aplicación con sistema de seguridad juntos. A continuación archivo security.ymlSymfony2: Cómo: aplicación segura con _locale

security: 
    encoders: 
    Symfony\Component\Security\Core\User\User: plaintext 

    role_hierarchy: 
    ROLE_ADMIN:  ROLE_USER 
    ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] 

    providers: 
    in_memory: 
     users: 
     user: { password: userpass, roles: [ 'ROLE_USER' ] } 
     admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] } 

    firewalls: 
    dev: 
     pattern: ^/(_(profiler|wdt)|css|images|js)/ 
     security: false 

    login: 
     pattern: ^/{_locale}/demo/secured/login$ 
     security: false 

    secured_area: 
     pattern: ^/{_locale}/demo/secured/ 
     form_login: 
     check_path: /{_locale}/demo/secured/login_check 
      login_path: /{_locale}/demo/secured/login 
     logout: 
      path: /{_locale}/demo/secured/logout 
      target: /{_locale}/demo/ 

El problema:

logout-> target trabajo desn't retorno. ¿Alguien podría ayudarme?

PD: ¡Cualquier ejemplo sería apreciado!

Thx

Respuesta

15

Sólo asegúrese de definir rutas para ellos todos los que hacen uso de la variable de configuración regional y la seguridad parece recogerlo de forma automática. No es necesario tener en cuenta la configuración regional en la configuración de seguridad.

Aquí hay un ejemplo de mi proyecto.

Extracto de security.yml:

login: 
     pattern: /(game|admin)/login$ 
     security: false 

    admin: 
     pattern: /admin/ 
     form_login: 
      check_path: /admin/login_check 
      login_path: _admin_login 
     logout: 
      path: _admin_logout 
      target: _home 

    game: 
     pattern: /game/ 
     form_login: 
      check_path: /game/login_check 
      login_path: _game_login 
     logout: 
      path: _game_logout 
      target: _home 

Extracto de routing.yml:

BrowserMMOSecurityBundle: 
    resource: "@BrowserMMOSecurityBundle/Controller/" 
    type:  annotation 
    prefix: /{_locale}/ 
    defaults: { _locale: en } 
    requirements: 
     _locale: en|fr 

_game_login_check: 
    pattern: /game/login_check 

_admin_login_check: 
    pattern: /admin/login_check 

_admin_logout: 
    pattern: /{_locale}/admin/logout 
    requirements: 
     _locale: en|fr 

_game_logout: 
    pattern: /{_locale}/game/logout 
    requirements: 
     _locale: en|fr 

La configuración anterior funciona para mí. También vale la pena señalar que las rutas _admin_login y _game_login se definen en anotaciones en mi clase SecurityController.

+0

Ok! ¡¡Muchas gracias!! ¡realmente funciona! Tengo mi error ... –

Cuestiones relacionadas