2014-10-28 2 views
0

Я получаю сообщение об ошибке при использовании 2 брандмауэров для моего приложения Symfony. У меня есть брандмауэр для постоянных членов, а другой для поставщиков.Несколько брандмауэров Безопасность Symfony

Ошибка «Невозможно найти контроллер для пути»/«поставщик/логин-проверка». Может быть, вы забыли добавить соответствующий маршрут в конфигурацию маршрутизации? »

Member_secured_area отлично работает, когда я ударяю любой из путей входа и выхода, но он не работает для маршрутов vendor_secured_area.

Когда я перехожу на маршрут/vendor/dashboard, он перенаправляет меня на/vendor/login, но сообщение с ошибкой/vendor/login-check завершается с указанной ошибкой.

Благодаря

firewalls: 
     dev: 
      pattern: ^/(_(profiler|wdt)|css|images|js)/ 
      security: false 
     vendor_secured_area: 
      pattern: ^/vendor/dashboard 
      provider: member 
      anonymous: false 
      form_login: 
       login_path: vendor-login 
       check_path: vendor-login-check 
      logout: 
       path: vendor-logout 
       target:/
     member_secured_area: 
      pattern: ^/ 
      provider: member 
      anonymous: ~ 
      form_login: 
       login_path: member-login 
       check_path: member-login-check 
       default_target_path: home 
       success_handler: security.authentication_handler 
       failure_handler: security.authentication_handler 
      logout: 
       path: member-logout 
       target:/
      remember_me: 
       key: "%secret_key%" 
       lifetime: 2592000 
       path:/
       domain: ~ 
    access_control: 
     member_access: 
      path: ^/member/dashboard 
      roles: IS_AUTHENTICATED_REMEMBERED 
#  vendor_access: 
#   path: ^/vendor/dashboard 
#   roles: IS_AUTHENTICATED_REMEMBERED 
+0

У вас есть маршрут, который отвечает на URL-адрес '/ vendor/login-check'? Если вы запустите 'app/console router: debug | grep login' он появляется? – Hpatoio

+0

@Hpatoio Да. Я знаю, что это работает, потому что я поменял два контрольных маршрута, и он работает с членами. – tdbui22

ответ

0

Я нашел этот вопрос. Мои пути входа, выхода из системы и проверки не были за брандмауэром.

Я должен был разрешить анонимную защищенную область моего поставщика, чтобы разрешить доступ к странице входа в систему, а затем с помощью элемента управления доступом потребовать роль.

firewalls: 
    dev: 
     pattern: ^/(_(profiler|wdt)|css|images|js)/ 
     security: false 
    vendor_secured_area: 
     pattern: ^/vendor/dashboard 
     provider: member 
     anonymous: ~ 
     form_login: 
      login_path: vendor-login 
      check_path: vendor-login-check 
      default_target_path: vendor-dashboard-index 
      always_use_default_target_path: true 
     logout: 
      path: vendor-logout 
      target:/
    member_secured_area: 
     pattern: ^/ 
     provider: member 
     anonymous: ~ 
     form_login: 
      login_path: member-login 
      check_path: member-login-check 
      default_target_path: home 
      success_handler: security.authentication_handler 
      failure_handler: security.authentication_handler 
     logout: 
      path: member-logout 
      target:/
     remember_me: 
      key: "%secret_key%" 
      lifetime: 2592000 
      path:/
      domain: ~ 
access_control: 
    - { path: ^/member/dashboard, roles: IS_AUTHENTICATED_REMEMBERED } 
    - { path: ^/vendor/dashboard/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/vendor/dashboard, roles: IS_AUTHENTICATED_REMEMBERED } 
Смежные вопросы