2015-09-02 3 views
0

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

Есть ли специальный способ заставить patter работать с параметрами? Я не понимаю, как это сделать.

Благодаря

$app->register(new Silex\Provider\SecurityServiceProvider(), [ 
'security.firewalls' => [ 
    'login' => [ 
     'pattern' => '^/login$', 
     'anonymous' => true 
    ], 
    'pwdRecovery' => [ 
     'pattern' => '^/recover', 
     'anonymous' => true 
    ], 
    'newPassword' => [ 
     'pattern' => '^/newpassword$', 
     'anonymous' => true 
    ], 
    // Any other URL requires auth. 
    'authenticated' => [ 
     'pattern' => '^.*$', 
     'form' => [ 
      'login_path' => '/login', 
      'check_path' => '/authenticate' 
     ], 
     'anonymous' => false, 
     'logout' => ['logout_path' => '/logout'], 
     'users' => $app->share(function() use ($app) { 
      return new App\Providers\UserServiceProvider(); 
     }), 
    ] 
], 
'security.access_rules' => [ 
    ['^/admin', 'ROLE_ADMIN'] 
], 
'security.encoder.digest' => $app->share(function() { 
    return new BCryptPasswordEncoder(15); 
}) 
]); 
+0

Вы должны отправить свою конфигурацию безопасности, чтобы получить справку ... – mTorres

+0

брандмауэр был отправлен. – Eman

ответ

2

Это может быть регулярное выражение проблема. Я могу передать параметры на маршрут ^/recover просто отлично.

$app->get('/recover/{id}', function (Request $request, $id) use ($app) { 
    error_log(print_r((int) $id,1).' '.__FILE__.' '.__LINE__,0); 
}); 

Но если добавить $ на этот маршрут как ^/recover$ затем перенаправляет войти, потому что знак доллара диктует конец строки.

+0

Это решило проблему. У меня есть еще одна проблема, но эта проблема, по крайней мере, решена, спасибо. – Eman