मैं http://symfony.com/doc/current/cookbook/security/voters.html का अनुसरण कर रहा हूं और एक कस्टम मतदाता बनाने का प्रयास कर रहा हूं जो उन अनुरोधों तक पहुंच से इनकार करता है जिनमें वैध एपीआई कुंजी नहीं है और शीर्षलेख में पचाना है (http://symfony.com/doc/current/cookbook/security/custom_authentication_provider.html से प्रभावित - मैं प्रमाणीकरण प्रदाता नहीं बना रहा हूं क्योंकि मुझे इसकी आवश्यकता है उसी अनुरोध के लिए FOSUserBundle प्रदाता का उपयोग करें)।सेवा में इन-मेमोरी उपयोगकर्ता प्रदाता को इंजेक्ट कैसे करें?
मैं इन-मेमोरी उपयोगकर्ता प्रदाता में अपनी एपीआई कुंजी/रहस्यों को स्टोर करना चाहता हूं और बाद में इसे एक कस्टम 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 }
तो मेरे सवाल का, मैं कैसे इन-स्मृति प्रदाता इंजेक्षन करते है? कुकबुक में डब्लूएसएसई उदाहरण स्ट्रिंग 'security.providers.in_memory' को प्रतिस्थापित करने के लिए एक ऑथ प्रदाता फैक्ट्री का उपयोग करता प्रतीत होता है, लेकिन जैसा कि मैं सिर्फ मतदाता का उपयोग कर रहा हूं, क्या यह आवश्यक है? यदि यह आवश्यक है, तो मेरा कारखाना कैसा दिखता है?
दोनों जवाब समान थे तो मैं पहले एक स्वीकार कर लिया है, लेकिन एक उपनाम का उपयोग करने पर अतिरिक्त जानकारी के लिए धन्यवाद। –