Symfony 我不知道';我不了解如何为索引页配置我的security.yml文件
我开发了我的symfony2网站,并获得了所需的认证(使用FOSUserBundle)。 现在,我决定为匿名访问者添加另外两个例外:索引页(“/”)和联系人表单(“/contact”) 当我修改security.yml时,这些文件会被破坏:Symfony 我不知道';我不了解如何为索引页配置我的security.yml文件,symfony,firewall,fosuserbundle,Symfony,Firewall,Fosuserbundle,我开发了我的symfony2网站,并获得了所需的认证(使用FOSUserBundle)。 现在,我决定为匿名访问者添加另外两个例外:索引页(“/”)和联系人表单(“/contact”) 当我修改security.yml时,这些文件会被破坏: 在我的twig联系人表单页面中,我所有的“{%if is_-grated(“is_-AUTHENTICATED_-membered”)%}”都不再工作了。我真的好像再也没有资格了 在我的小枝索引页面中,我也有同样的问题 这是我的保安。我知道它可能很琐碎,
- 在我的twig联系人表单页面中,我所有的“{%if is_-grated(“is_-AUTHENTICATED_-membered”)%}”都不再工作了。我真的好像再也没有资格了
- 在我的小枝索引页面中,我也有同样的问题
security:
encoders:
"FOS\UserBundle\Model\UserInterface": sha512
role_hierarchy:
ROLE_AUTHOR: ROLE_USER
ROLE_ADMIN: [ROLE_USER, ROLE_AUTHOR]
providers:
fos_userbundle:
id: fos_user.user_manager
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
pattern: ^/(login$|register|resetting)
anonymous: true
token:
pattern: ^/administration/create-user/confirmation-token/
anonymous: true
#this is where it fail....
contact:
pattern: ^/contact$
anonymous: true
index:
pattern: ^/$
anonymous: true
# Main Firewall
main:
pattern: ^/+
form_login:
provider: fos_userbundle
remember_me: true
remember_me:
key: %secret%
anonymous: false
logout: true
#http_basic:
# realm: "Secured Demo Area"
access_control:
#- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
#- { path: ^/_internal, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 }
提前谢谢你你做错了:)你只需要几个防火墙。不是每个url的每个防火墙
这样做:
firewalls:
main:
pattern: ^/
switch_user: true
anonymous: ~
form_login:
provider: fos_userbundle
login_path: /login
logout:
path: /logout
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
接下来,将另一项添加到访问控制中。您做错了:)您只需要有几个防火墙。不是每个url的每个防火墙
这样做:
firewalls:
main:
pattern: ^/
switch_user: true
anonymous: ~
form_login:
provider: fos_userbundle
login_path: /login
logout:
path: /logout
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
接下来将另一项添加到访问控制中。您必须将它们添加到
access\u control
,而不是为联系人和索引创建不同的防火墙,因为它们应该由与应用程序其余部分相同的防火墙来处理(main
),它们的不同之处在于您想要修改哪些角色可以访问它们:
main:
pattern: ^/
...
access_control:
- { path: ^/$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/contact$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
#- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
#- { path: ^/_internal, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 }
编辑以澄清:
像您那样指定不同的防火墙,会将这些页面置于当前安全上下文之外,因此从firewall main登录不适用于这些防火墙。您必须将它们添加到
访问控制中,而不是为联系人和索引创建不同的防火墙,由于它们应该由与应用程序其余部分相同的防火墙处理(main
),它们的不同之处在于您希望修改哪些角色可以访问它们:
main:
pattern: ^/
...
access_control:
- { path: ^/$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/contact$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
#- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
#- { path: ^/_internal, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 }
编辑以澄清:
像您那样指定不同的防火墙,会将这些页面置于当前安全上下文之外,因此从firewall main登录不适用于这些防火墙。好的,我尝试了一些东西,但所有内容都已损坏。我终于做到了,它成功了:contact:pattern:^/contact$form\u login:provider:fos\u userbundle记住我:真记住我:密钥:%secret%anonymous:真注销:trueDude你不懂这个符号防火墙。检查文档:还有security.yml参考资料好的,我试了一些东西,但所有东西都坏了。我终于做到了,它成功了:contact:pattern:^/contact$form\u login:provider:fos\u userbundle记住我:真记住我:密钥:%secret%anonymous:真注销:trueDude你不懂这个符号防火墙。检查文档:和security.yml参考号好的,很抱歉打扰您。我尝试了很多可能性。我还是不明白。这是我的security.yml:我得到了错误:“在呈现模板的过程中引发了一个异常(“安全上下文不包含身份验证令牌。一个可能的原因可能是没有为此URL配置防火墙。”)在::layout.html.twig的第33行。”这仅仅是因为我有“{%if is_grated(”我想是在我的模板中进行了“%”身份验证。它不仅适用于索引页,也适用于联系人页。很抱歉打扰你。我尝试了很多可能性。我还是不明白。这是我的security.yml:我得到了错误:“在呈现模板的过程中引发了一个异常(“安全上下文不包含身份验证令牌。一个可能的原因可能是没有为此URL配置防火墙。”)在::layout.html.twig的第33行。”这仅仅是因为我有“{%if is_grated(”我想是在我的模板中进行了“%”身份验证。它不仅适用于索引页面,也适用于联系人页面。我变得疯狂了