私はhttp://symfony.com/doc/current/cookbook/security/voters.htmlに従っており、有効な API キーとダイジェストをヘッダーに含まないリクエストへのアクセスを拒否するカスタムボーターを作成しようとしています ( http://symfony.com/doc/current/cookbook/security/custom_authentication_provider.htmlの影響- 同じリクエストに FOSUserBundle プロバイダーを使用する必要があるため、認証プロバイダーを構築していません)。
APIキー/シークレットをインメモリユーザープロバイダーに保存して、後でこれをカスタムmongodbプロバイダーに移行する可能性があります。そのため、ユーザー プロバイダーを投票者に注入する方法が必要です。既にサービス コンテナーを挿入しましたが、そこからユーザー プロバイダーにアクセスできますか?
私のサービス定義:
services:
security.access.api_client_voter:
class: Acme\RestBundle\Security\Authorization\Voter\ApiClientVoter
arguments: [@service_container, %kernel.cache_dir%/security/nonces]
public: false
tags:
- { name: monolog.logger, channel: authentication }
- { name: security.voter }
私の質問は、メモリ内プロバイダーをどのように注入するのですか? クックブックの WSSE の例では、認証プロバイダー ファクトリを使用して文字列 'security.providers.in_memory' を置き換えているようですが、投票者を使用しているだけなので、これは必要ですか? もし必要なら、私の工場はどのようになりますか?