Symfony2 как интегрировать escapewsseauthenticationbundle с FOSUserBundle

#symfony #fosuserbundle #fosrestbundle

#symfony #fosuserbundle #fosrestbundle

Вопрос:

У меня возникла проблема с использованием escapewsseauthenticationbundle для защиты моего API (с использованием FOSRestBundle и FOSUserBundle). С my security.yml вход в систему всегда завершался неудачно и возвращал код состояния 401.

Я использую консоль Chrome rest и генератор заголовков wsse от Teria для аутентификации и доступа к моему ресурсу.

app/security.yml

 encoders:
    FOSUserBundleModelUserInterface: sha512

providers:
    fos_userbundle:
        id: fos_user.user_provider.username

wsse_secured:
      pattern:   ^/api/.*
      wsse:
        lifetime: 300 #lifetime of nonce
        realm: "Secured API" #identifies the set of resources to which the authentication information will apply (WWW-Authenticate)
        profile: "UsernameToken" #WSSE profile (WWW-Authenticate)
        encoder: #digest algorithm
            algorithm: sha512
            encodeHashAsBase64: true
            iterations: 1
      anonymous: true
      provider: fos_userbundle

access_control:
    - { path: ^/api.*, role: ROLE_USER }
    - { path: ^/, role: ROLE_USER }
  

Кто-нибудь знает, как это исправить?

Спасибо!

Комментарии:

1. Ваши журналы что-то указывают? Как SecurityContext был (или не был) заполнен? Также я думаю anonymous: true , что его следует удалить из вашего брандмауэра API.

2. Только «Ошибка аутентификации WSSE». Да, я забыл удалить его, мой плохой. Что вы хотите сказать о SecurityContext ? Спасибо за ваш ответ!

3. Я хотел, чтобы вы искали записи журнала, связанные с SecurityContext. Но сообщение «Ошибка аутентификации WSSE», похоже, связано.

4. Я бы начал отладку где-нибудь здесь

5. Разве провайдер не должен быть настроен по-другому ?