安全配置参考
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.0,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 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
# app / config / security.yml安全:access_denied_url:/ foo / error403always_authenticate_before_granting:假#策略可以:没有,迁移,无效session_fixation_strategy:迁移access_decision_manager:策略:肯定的allow_if_all_abstain:假allow_if_equal_granted_denied:真正的acl:连接:默认的#任何名称中配置原则。dbal节表:类:acl_classes条目:acl_entriesobject_identity:acl_object_identitiesobject_identity_ancestors:acl_object_identity_ancestorssecurity_identity:acl_security_identities缓存:id:service_id前缀:sf2_acl_选民:allow_if_object_identity_unavailable:真正的编码器:somename:类:Acme \ DemoBundle \实体\用户Acme \ DemoBundle \实体\用户:sha512Acme \ DemoBundle \实体\用户:明文Acme \ DemoBundle \实体\用户:算法:sha512encode_as_base64:真正的迭代:5000年Acme \ DemoBundle \实体\用户:id:my.custom.encoder.service.id提供者:记忆:名称:内存用户:foo:{密码:foo,角色:ROLE_USER}栏:{密码:酒吧,角色:[ROLE_USER,ROLE_ADMIN]}实体:实体:{类:SecurityBundle:用户,属性:用户名}工厂:我厂:“% kernel.root_dir % / . . / src / Acme / DemoBundle /资源/ config / security_factories.xml”防火墙:somename:模式:. *request_matcher:some.service.idaccess_denied_url:/ foo / error403access_denied_handler:some.service.identry_point:some.service.id供应商:的名字#管理每个防火墙存储会话信息#请参见下面的“防火墙”的更多细节背景:context_key无状态:假x509:供应商:的名字http_basic:供应商:的名字http_digest:供应商:的名字form_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_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匿名:~access_control:- - - - - -路径:^ / foo主持人:mydomain.foo知识产权:192.0比上年比上年/ 8角色:[ROLE_A,ROLE_B]requires_channel:httpsrole_hierarchy:ROLE_SUPERADMIN:ROLE_ADMINROLE_SUPERADMIN:“ROLE_ADMIN, ROLE_USER”ROLE_SUPERADMIN:[ROLE_ADMIN,ROLE_USER]什么:{id:ROLE_SUPERADMIN,值:“ROLE_USER, ROLE_ADMIN”}什么:{id:ROLE_SUPERADMIN,值:[ROLE_USER,ROLE_ADMIN]}
表单登录配置
当使用form_login
身份验证防火墙下侦听器,有几种常见的选项配置“形式登录”体验。
更多细节,请参阅如何自定义表单登录吗。
登录表单和流程
login_path
(类型:字符串
违约:/登录
)这是URL,用户将被重定向到(除非use_forward
被设置为真正的
)当他/她试图访问受保护的资源,但不是完全验证。这个URL必须被正常访问,用户转向,否则你可能会创建一个重定向循环。详情,请参阅“避免常见的陷阱”。
check_path
(类型:字符串
违约:/ login_check
)这是您的登录表单必须服从的URL。防火墙拦截任何请求(帖子
请求,默认情况下)这个URL和处理提交的登录凭证。确保这个URL是由主防火墙(即不创建一个单独的防火墙
check_path
URL)。use_forward
(类型:布尔
违约:假
)如果你想让用户转发到登录表单,而不是重定向,设置这个选项真正的
。username_parameter
(类型:字符串
违约:_username
)这是字段名,你应该给你的登录表单的用户名字段。当你提交表单check_path
,安全系统将寻找一个POST参数与这个名字。password_parameter
(类型:字符串
违约:_password
)这是字段名的密码字段,你应该给你的登录表单。当你提交表单check_path
,安全系统将寻找一个POST参数与这个名字。post_only
(类型:布尔
违约:真正的
默认情况下,你必须提交你的登录表单check_path
作为一个POST请求的URL。通过设置这个选项假
你可以发送一个GET请求到check_path
URL。
重定向后登录
always_use_default_target_path
(类型:布尔
违约:假
)default_target_path
(类型:字符串
违约:/
)target_path_parameter
(类型:字符串
违约:_target_path
)use_referer
(类型:布尔
违约:假
)
防火墙的上下文
大多数应用程序只需要一个防火墙。但是如果您的应用程序做使用多个防火墙,你会发现,如果你在一个防火墙身份验证,你不是自动验证。换句话说,系统不共享一个共同的“上下文”:每个防火墙就像一个独立的安全系统。
然而,每个防火墙有一个可选的上下文
键(默认为防火墙的名称),这是用于存储和检索安全数据和从会话。如果这个键是跨多个防火墙设置为相同的值,“上下文”可以被共享:
- 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摘要认证需要提供领域和重点:
- YAML
- XML
- PHP
1 2 3 4 5 6 7
# app / config / security.yml安全:防火墙:somename:http_digest:关键:“a_random_string”域:“安全api”
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。