2011-08-21 8 views
9

すべて! 私はセキュリティシステムを使ってアプリケーションを保護したいと思います。 Symfony2:_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/ 

のsecurity.ymlファイル以下の問題:

ログアウト - >リターンdesn't作業をターゲットにしています。誰でも助けてくれますか?

PS:いずれの例もわかります!

Thxを

答えて

15

はちょうどあなたがロケール変数とセキュリティが自動的にそれを拾うように思わ使用しないそれらすべてのためのルートを定義します。セキュリティ設定でロケールを考慮する必要はありません。

私のプロジェクトの例です。 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 

抜粋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 

上記の設定は、私のために動作します。 _admin_login_game_loginの経路は、SecurityControllerクラスの注釈で定義されていることにも注意してください。

+0

どうもありがとうございます!!それは本当に作品です!私は間違いがある... –

関連する問題