2016-11-23 3 views
1

Я пытаюсь установить административную часть веб-страницы под аутентификацию Мне удалось настроить пользователя и пароль, но когда я вхожу в систему с пользователем и соответствующим паролем, вход в систему невозможен. Как я могу отладить это? В чем может быть проблема?Ошибка аутентификации в silex SecurityServiceProvider

$app['security.encoder.digest'] = function ($app) { 
    // uses the password-compat encryption 
    return new BCryptPasswordEncoder(10); 
}; 


$app['security.encoder_factory'] = function ($app) { 
    return new EncoderFactory(
     array(
      'Symfony\Component\Security\Core\User\UserInterface' => $app['security.encoder.digest'] 
     ) 
    ); 
}; 

$app->register(new Silex\Provider\SecurityServiceProvider(), array( 
    'security.firewalls' => array(
     'admin' => array(
      'pattern' => '^/admin', 
      'http' => true, 
      'users' => function() use ($app) { 
       $dbs = new \FMP\Service\DbService($app); 
       return new UserProvider($dbs->getDb(), $app['form.factory']); 
      } 
     ) 
    ) 
)); 

Я установил пароль пользователя с помощью этого:

$encoder = $encoderFactory->getEncoder($user); 

// compute the encoded password for foo 
$password = $encoder->encodePassword($user->getPassword(), $user->getSalt()); 

Журналы:

[2016-11-24 15:41:51] app.DEBUG: система инициализации пользователей [ ] [] [2016-11-24 15:41:51] app.INFO: Соответствующий маршрут «{route}». {"route": "GET_admin_users", "route_parameters": {"_ controller": "[object] (Закрытие: {})", "_ route": "GET_admin_users"}, "request_uri": "http://dev.fmp2/admin/users", " «method»: «GET»} [] [2016-11-24 15:41:51] app.INFO: Исключение аутентификации: thrown; перенаправление на точку входа аутентификации. { "исключение": "[объект] (Symfony \ Component \ Security \ Основные \ Exception \ AuthenticationCredentialsNotFoundException (код: 0). Токен не был найден в TokenStorage на /дома/andref/рабочее пространство/fmpsite2/поставщик/symfony/security/Http/Firewall/AccessListener.php: 53) "} [] [2016-11-24 15:41:51] app.DEBUG: Вызов записи аутентификации пункт. [] [] [2016-11-24 15:41:51] app.DEBUG: < 401 [] []

+0

Как вы установили пароль для пользователя? Вы пробовали использовать простой текстовый кодировщик? – mTorres

+0

Попытка – Andy

+0

Даже с PlaintextPasswordEncoder() Я не могу аутентифицироваться. Я попробовал функцию отладки loadUserByUsername ($ username), но он не вызван. – Andy

ответ

1

пропускал

1 <IfModule mod_rewrite.c> 
    2  Options -MultiViews 
    3 
    4  RewriteEngine On 
    5  #RewriteBase /path/to/app 
    6  #RewriteRule ^/admin - [L,NC] 
    7  RewriteCond %{HTTP:Authorization} ^(.+)$ 
    8  RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
    9  RewriteCond %{REQUEST_FILENAME} !-d 
10  RewriteCond %{REQUEST_FILENAME} !-f 
11  RewriteRule^index.php [QSA,L] 
12 </IfModule> 

линии 7 и 8 из файла .htaccess

Смежные вопросы