1
我在使用FosUserBundle基于Symfony2在我的应用中配置两个防火墙时遇到问题。我想要的是,我的网站上的客户安全区域,前端安全区域和后端安全区域。我设法做的是,我确实有两个部分(/ shop)和(/ admin),到目前为止他们正在工作,但问题是,即使我登录商店窗体或管理员窗体时不断将我重定向到相同的方向(/)。两个防火墙 - 登录后重定向 - fosuser
这是我security.yml:
jms_security_extra:
secure_all_services: false
expressions: true
security:
encoders:
FOS\UserBundle\Model\UserInterface: sha512
role_hierarchy:
ROLE_CUSTOMER: ROLE_USER
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
admin_secured:
context: site
pattern: ^/admin/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
use_referer: true
always_use_default_target_path: true
default_target_path: /admin/
login_path: /login
check_path: /admin/login_check
logout:
path: /admin/logout
anonymous: false
main:
context: site
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
default_target_path:/
target_path_parameter: redirect_url
login_path: frd_login
logout:
path: fos_user_security_logout
target: frd_home
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/shop/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/shop/, role: ROLE_USER }
- { path: ^/admin/, role: ROLE_SUPER_ADMIN }
而我config.yml大块:
fos_user:
db_driver: propel
firewall_name: main
user_class: FOS\UserBundle\Propel\User
group:
group_class: FOS\UserBundle\Propel\Group
同样,当我登录上/管理或/shop(< - 它是为客户)它将我重定向到家(/),但是从我assue,在管理部分应该我重定向到/管理/并在铺段到/像它的每一种情况下的配置。
需要一些帮助。我没有错过什么?
所以,你说我已经创建了一个新的路线,前缀为/ admin的权利?在这个解决方案中,路由/登录不会被使用。你确定它很好? – 2014-10-10 07:25:47
实际上,对于主防火墙,您可以使用默认路由(/ login&/ login_check),因为您为管理员的防火墙使用了前缀 – Snroki 2014-10-10 07:41:29
这就是我正在做的事情,但默认/ admin/login窗体将我重定向到主页面,但它应该到管理后台(fe/admin/pages)。 – 2014-10-10 08:02:21