@@ -51,6 +51,32 @@ public function load(array $config, ContainerBuilder $container)
5151 $ this ->configureSystem ($ container , $ config );
5252 $ this ->configureParty ($ container , $ config );
5353 $ this ->configureStore ($ container , $ config );
54+ $ this ->configureCredential ($ container , $ config );
55+ $ this ->configureService ($ container , $ config );
56+ }
57+
58+ private function configureCredential (ContainerBuilder $ container , array $ config )
59+ {
60+ $ this ->configureCredentialStore ($ container , $ config );
61+ }
62+
63+ private function configureCredentialStore (ContainerBuilder $ container , array $ config )
64+ {
65+ $ factoryReference = $ container ->getDefinition ('lightsaml.credential.credential_store_factory ' );
66+ $ definition = $ container ->getDefinition ('lightsaml.credential.credential_store ' );
67+ $ this ->setFactoryCompatibleWay ($ definition , $ factoryReference , 'buildFromOwnCredentialStore ' );
68+ }
69+
70+ private function configureService (ContainerBuilder $ container , array $ config )
71+ {
72+ $ this ->configureServiceCredentialResolver ($ container , $ config );
73+ }
74+
75+ private function configureServiceCredentialResolver (ContainerBuilder $ container , array $ config )
76+ {
77+ $ factoryReference = $ container ->getDefinition ('lightsaml.service.credential_resolver_factory ' );
78+ $ definition = $ container ->getDefinition ('lightsaml.service.credential_resolver ' );
79+ $ this ->setFactoryCompatibleWay ($ definition , $ factoryReference , 'build ' );
5480 }
5581
5682 private function configureOwn (ContainerBuilder $ container , array $ config )
@@ -71,21 +97,11 @@ private function configureOwnEntityDescriptor(ContainerBuilder $container, array
7197 $ definition
7298 ->addArgument ($ config ['own ' ]['entity_descriptor_provider ' ]['filename ' ])
7399 ->addArgument ($ config ['own ' ]['entity_descriptor_provider ' ]['entity_id ' ]);
74- if (method_exists ($ definition , 'setFactory ' )) {
75- $ definition ->setFactory (['LightSaml\Provider\EntityDescriptor\FileEntityDescriptorProviderFactory ' , 'fromEntitiesDescriptorFile ' ]);
76- } else {
77- $ definition ->setFactoryClass ('LightSaml\Provider\EntityDescriptor\FileEntityDescriptorProviderFactory ' );
78- $ definition ->setFactoryMethod ('fromEntitiesDescriptorFile ' );
79- }
100+ $ this ->setFactoryCompatibleWay ($ definition , 'LightSaml\Provider\EntityDescriptor\FileEntityDescriptorProviderFactory ' , 'fromEntitiesDescriptorFile ' );
80101 } else {
81102 $ definition = $ container ->setDefinition ('lightsaml.own.entity_descriptor_provider ' , new Definition ())
82103 ->addArgument ($ config ['own ' ]['entity_descriptor_provider ' ]['filename ' ]);
83- if (method_exists ($ definition , 'setFactory ' )) {
84- $ definition ->setFactory (['LightSaml\Provider\EntityDescriptor\FileEntityDescriptorProviderFactory ' , 'fromEntityDescriptorFile ' ]);
85- } else {
86- $ definition ->setFactoryClass ('LightSaml\Provider\EntityDescriptor\FileEntityDescriptorProviderFactory ' );
87- $ definition ->setFactoryMethod ('fromEntityDescriptorFile ' );
88- }
104+ $ this ->setFactoryCompatibleWay ($ definition , 'LightSaml\Provider\EntityDescriptor\FileEntityDescriptorProviderFactory ' , 'fromEntityDescriptorFile ' );
89105 }
90106 } else {
91107 $ definition = $ container ->getDefinition ('lightsaml.own.entity_descriptor_provider ' );
@@ -96,12 +112,7 @@ private function configureOwnEntityDescriptor(ContainerBuilder $container, array
96112 ->addArgument (null )
97113 ->addArgument (new Reference ('lightsaml.own.credential_store ' ))
98114 ;
99- if (method_exists ($ definition , 'setFactory ' )) {
100- $ definition ->setFactory (['LightSaml\SymfonyBridgeBundle\Factory\OwnEntityDescriptorProviderFactory ' , 'build ' ]);
101- } else {
102- $ definition ->setFactoryClass ('LightSaml\SymfonyBridgeBundle\Factory\OwnEntityDescriptorProviderFactory ' );
103- $ definition ->setFactoryMethod ('build ' );
104- }
115+ $ this ->setFactoryCompatibleWay ($ definition , 'LightSaml\SymfonyBridgeBundle\Factory\OwnEntityDescriptorProviderFactory ' , 'build ' );
105116 }
106117 }
107118
@@ -113,7 +124,7 @@ private function configureOwnCredentials(ContainerBuilder $container, array $con
113124
114125 foreach ($ config ['own ' ]['credentials ' ] as $ id => $ data ) {
115126 $ definition = new Definition (
116- \ LightSaml \Store \Credential \X509FileCredentialStore::class ,
127+ ' LightSaml\Store\Credential\X509FileCredentialStore ' ,
117128 [
118129 $ config ['own ' ]['entity_id ' ],
119130 $ data ['certificate ' ],
@@ -165,4 +176,23 @@ private function configureStore(ContainerBuilder $container, array $config)
165176 $ container ->setAlias ('lightsaml.store.sso_state ' , $ config ['store ' ]['sso_state ' ]);
166177 }
167178 }
179+
180+ /**
181+ * @param Definition $definition
182+ * @param string $classOrReference
183+ * @param string $method
184+ */
185+ private function setFactoryCompatibleWay (Definition $ definition , $ classOrReference , $ method )
186+ {
187+ if (method_exists ($ definition , 'setFactory ' )) {
188+ $ definition ->setFactory ([$ classOrReference , $ method ]);
189+ } else {
190+ if ($ classOrReference instanceof Reference) {
191+ $ definition ->setFactoryService ((string ) $ classOrReference );
192+ } else {
193+ $ definition ->setFactoryClass ($ classOrReference );
194+ }
195+ $ definition ->setFactoryMethod ($ method );
196+ }
197+ }
168198}
0 commit comments