概述 快速入门 教程 手册 最佳实践 组件 参考 贡献

发布于 2015-08-27 16:49:03 | 170 次阅读 | 评论: 0 | 来源: 网络整理

You can force areas of your site to use the HTTPS protocol in the security config. This is done through the access_control rules using the requires_channel option. For example, if you want to force all URLs starting with /secure to use HTTPS then you could use the following configuration:

  • YAML
    access_control:
        - { path: ^/secure, roles: ROLE_ADMIN, requires_channel: https }
    
  • XML
    <access-control>
        <rule path="^/secure" role="ROLE_ADMIN" requires_channel="https" />
    </access-control>
    
  • PHP
    'access_control' => array(
        array(
            'path'             => '^/secure',
            'role'             => 'ROLE_ADMIN',
            'requires_channel' => 'https',
        ),
    ),
    

The login form itself needs to allow anonymous access, otherwise users will be unable to authenticate. To force it to use HTTPS you can still use access_control rules by using the IS_AUTHENTICATED_ANONYMOUSLY role:

  • YAML
    access_control:
        - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
    
  • XML
    <access-control>
        <rule path="^/login"
              role="IS_AUTHENTICATED_ANONYMOUSLY"
              requires_channel="https" />
    </access-control>
    
  • PHP
    'access_control' => array(
        array(
            'path'             => '^/login',
            'role'             => 'IS_AUTHENTICATED_ANONYMOUSLY',
            'requires_channel' => 'https',
        ),
    ),
    

It is also possible to specify using HTTPS in the routing configuration, see How to Force Routes to always Use HTTPS or HTTP for more details.

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务