安全配置参考
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.1,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
安全配置参考
安全系统是Symfony2最强大的部分之一,可以在很大程度上通过其配置进行控制。ob娱乐下载
全默认配置
以下是安全系统的完整默认配置。每个部分将在下一节中解释。
- YAML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188
# app / config / security.yml安全:access_denied_url:~#示例:/foo/error403#策略可以是:none, migrate, invalidatesession_fixation_strategy:迁移hide_user_not_found:真正的always_authenticate_before_granting:假erase_credentials:真正的access_decision_manager:策略:肯定的allow_if_all_abstain:假allow_if_equal_granted_denied:真正的acl:# doctrine中配置的任何名称。dbal节连接:~缓存:id:~前缀:sf2_acl_供应商:~表:类:acl_classes条目:acl_entriesobject_identity:acl_object_identitiesobject_identity_ancestors:acl_object_identity_ancestorssecurity_identity:acl_security_identities选民:allow_if_object_identity_unavailable:真正的编码器:#的例子:Acme \ DemoBundle \ \ User1实体:sha512Acme \ DemoBundle \ \ User2实体:算法:sha512encode_as_base64:真正的迭代:5000#自定义编码器的选项/值示例Acme \ DemoBundle \ \ User3实体:id:my.encoder.id提供者:#需要#的例子:my_in_memory_provider:记忆:用户:foo:密码:喷火角色:ROLE_USER栏:密码:酒吧角色:[ROLE_USER,ROLE_ADMIN]my_entity_provider:实体:类:SecurityBundle:用户属性:用户名示例自定义提供程序my_some_custom_provider:id:~#链接一些供应商my_chain_provider:链:提供者:[my_in_memory_provider,my_entity_provider]防火墙:#需要#的例子:somename:模式:. *request_matcher:some.service.idaccess_denied_url:/ foo / error403access_denied_handler:some.service.identry_point:some.service.id供应商:some_key_from_above#管理每个防火墙存储会话信息的位置#参见下面的“防火墙上下文”了解更多细节背景:context_key无状态:假x509:供应商:some_key_from_abovehttp_basic:供应商:some_key_from_abovehttp_digest:供应商:some_key_from_aboveform_login:#在这里提交登录表单check_path:/ login_check#用户需要登录时被重定向到这里login_path:/登录#如果为真,则将用户转发到登录表单,而不是重定向use_forward:假#登录成功重定向选项(进一步阅读下面)always_use_default_target_path:假default_target_path:/target_path_parameter:_target_pathuse_referer:假#登录失败重定向选项(进一步阅读下面)failure_path:/ foofailure_forward:假failure_handler:some.service.idsuccess_handler:some.service.id#用户名和密码字段的名称username_parameter:_usernamepassword_parameter:_password# CSRF令牌选项csrf_parameter:_csrf_token意愿:进行身份验证csrf_provider:my.csrf_provider.id默认情况下,登录表单*必须*是POST,而不是GETpost_only:真正的remember_me:假remember_me:token_provider:的名字关键:someS3cretKey名称:NameOfTheCookie生命周期:3600#以秒为单位路径:/ foo域:somedomain.foo安全:假httponly:真正的always_remember_me:假remember_me_parameter:_remember_me注销:路径:/注销目标:/invalidate_session:假delete_cookies:答:{路径:零,域:零}b:{路径:零,域:零}处理程序:[some.service.id,another.service.id]success_handler:some.service.id匿名:~#防火墙的默认值和选项some_firewall_listener:模式:~安全:真正的request_matcher:~access_denied_url:~access_denied_handler:~entry_point:~供应商:~无状态:假背景:~注销:csrf_parameter:_csrf_tokencsrf_provider:~意愿:注销路径:/注销目标:/success_handler:~invalidate_session:真正的delete_cookies:#原型名称:路径:~域:~处理程序:[]匿名:关键:4 f954a0667e01switch_user:供应商:~参数:_switch_user角色:ROLE_ALLOWED_TO_SWITCHaccess_control:requires_channel:~使用urldecoded格式路径:~#示例:^/资源/的路径主持人:~知识产权:~方法:[]角色:[]role_hierarchy:ROLE_ADMIN:[ROLE_ORGANIZER,ROLE_USER]ROLE_SUPERADMIN:(ROLE_ADMIN)
表单登录配置
当使用form_login
防火墙下的身份验证侦听器,有几个常用选项用于配置“表单登录”体验。
有关更多细节,请参见如何自定义您的表单登录.
登录表单和过程
login_path
(类型:字符串
违约:/登录
这是用户将被重定向到的路由或路径(除非use_forward
设置为真正的
),当他/她试图访问受保护的资源,但没有完全验证。这条路必须可由普通的、未经身份验证的用户访问,否则可能创建重定向循环。详情见“避免常见陷阱".
check_path
(类型:字符串
违约:/ login_check
这是您的登录表单必须提交的路由或路径。防火墙将拦截任何请求(帖子
默认情况下,仅请求)到此URL并处理提交的登录凭据。确保这个URL被你的主防火墙覆盖(也就是说,不要为它单独创建一个防火墙
check_path
URL)。use_forward
(类型:布尔
违约:假
)如果您希望用户被转发到登录表单,而不是被重定向,请将此选项设置为真正的
.username_parameter
(类型:字符串
违约:_username
)这是您应该提供给登录表单的用户名字段的字段名。当您将表单提交给check_path
,安全系统将使用此名称查找POST参数。password_parameter
(类型:字符串
违约:_password
)这是您应该提供给登录表单的密码字段的字段名。当您将表单提交给check_path
,安全系统将使用此名称查找POST参数。post_only
(类型:布尔
违约:真正的
)默认情况下,你必须将登入表格提交至check_path
URL作为POST请求。通过将此选项设置为假
,您可以发送一个GET请求check_path
URL。
登录后重定向
always_use_default_target_path
(类型:布尔
违约:假
)default_target_path
(类型:字符串
违约:/
)target_path_parameter
(类型:字符串
违约:_target_path
)use_referer
(类型:布尔
违约:假
)
防火墙的上下文
大多数应用程序只需要一个防火墙.但是如果你的申请做使用多个防火墙,您会注意到,如果您在一个防火墙中进行了身份验证,那么在另一个防火墙中就不会自动进行身份验证。换句话说,这些系统不共享一个共同的“上下文”:每个防火墙就像一个单独的安全系统。
但是,每个防火墙都有一个可选的上下文
密钥(默认为防火墙的名称),用于在会话中存储和从会话中检索安全数据。如果这个键在多个防火墙中被设置为相同的值,“context”实际上可以被共享:
- YAML
- XML
- PHP
1 2 3 4 5 6 7 8 9 10 11
# app / config / security.yml安全:#……防火墙:somename:#……背景:my_contextothername:#……背景:my_context
http摘要认证
要使用HTTP-Digest身份验证,您需要提供一个域和一个密钥:
- YAML
- XML
- PHP
1 2 3 4 5 6 7
# app / config / security.yml安全:防火墙:somename:http_digest:关键:“a_random_string”域:“安全api”
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。