Мой сайт использует стороннюю службу для аутентификации, а также другие функциональные возможности, поэтому я настроил службу, которая выполняет все вызовы API для меня, и именно эта служба мне нужна для доступа к объекту пользователя.Я попытался внедрить службу security.context в мою службу API, но я получил ServiceCircularReferenceException, потому что мой поставщик аутентификации пользователя ссылается на службу API (это необходимо для аутентификации пользователя).Таким образом, я получаю цепочку
security.context -> authentication provider ->
user provider -> API service -> security.context
Я борюсь с этим другим способом получения пользовательского объекта, и я не вижу никакого очевидного способа расщепления этой цепочки.
Мои конфиги все определены в config.yml, вот соответствующие биты
myapp.database:
class: Pogo\MyAppBundle\Service\DatabaseService
arguments:
siteid: %siteid%
entityManager: "@doctrine.orm.entity_manager"
myapp.apiservice:
class: Pogo\MyAppBundle\Service\TicketingService
arguments:
entityManager: "@myapp.database"
myapp.user_provider:
class: Pogo\MyAppBundle\Service\APIUserProvider
arguments:
entityManager: "@myapp.database"
ticketingAdapter: "@myapp.apiservice"
securityContext: "@security.context"
myapp.authenticationprovider:
class: Pogo\MyAppBundle\Service\APIAuthenticationProvider
arguments:
userChecker: "@security.user_checker"
encoderFactory: "@security.encoder_factory"
userProvider: "@myapp.user_provider"
myapp.user_provider - это служба, которую я определил как службу моего провайдера в security.yml, и я предполагаю, чтона который ссылается security.context