php - Symfony2 : How to: secure application with _locale

标签 php security localization internationalization symfony

全部! 我想用安全系统一起保护我的应用程序。 security.yml 文件下方

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/

问题:

logout->target return 不起作用。 有人可以帮助我吗?

PS:任何示例将不胜感激!

谢谢

最佳答案

只需确保为所有使用语言环境变量的路由定义路由,并且安全性似乎会自动选择它。无需在安全配置中考虑语言环境。

这是我项目中的一个示例。

摘自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 类的注释中定义的。

关于php - Symfony2 : How to: secure application with _locale,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7137814/

相关文章:

javascript - 将 php json 传递给 google map API 的 javascript 对象

javascript - WooCommerce 中的 "SyntaxError: Unexpected token <"?

security - Next.js 保护使用静态站点生成的路由

c++ - Borland C++ 本地化

swift - 在 NSLocalizedString 中设置 tableName 参数时,genstrings 不起作用

asp.net - 如何在 Asp.Net MVC 上学习用户的语言?

javascript - 在 PHP 中使用 JS 更改属性

php - 如何匹配一个模式但得到不同的值

c# - 在 web.config 中保留敏感信息

Java 安全架构