private function createAuthenticationPluginNode()
    {
        $treeBuilder = new TreeBuilder('authentication');
        // Keep compatibility with symfony/config < 4.2
        if (!method_exists($treeBuilder, 'getRootNode')) {
            $node = $treeBuilder->root('authentication');
        } else {
            $node = $treeBuilder->getRootNode();
        }

        $node
            ->useAttributeAsKey('name')
            ->prototype('array')
                ->validate()
                    ->always()
                    ->then(function ($config) {
                        switch ($config['type']) {
                            case 'basic':
                                $this->validateAuthenticationType(['username', 'password'], $config, 'basic');

                                break;
                            case 'bearer':
                                $this->validateAuthenticationType(['token'], $config, 'bearer');

                                break;
                            case 'service':
                                $this->validateAuthenticationType(['service'], $config, 'service');

                                break;
                            case 'wsse':
                                $this->validateAuthenticationType(['username', 'password'], $config, 'wsse');

                                break;
                            case 'query_param':
                                $this->validateAuthenticationType(['params'], $config, 'query_param');

                                break;
                        }

                        return $config;
                    })
                ->end()
                ->children()
                    ->enumNode('type')
                        ->values(['basic', 'bearer', 'wsse', 'service', 'query_param'])
                        ->isRequired()
                        ->cannotBeEmpty()
                    ->end()
                    ->scalarNode('username')->end()
                    ->scalarNode('password')->end()
                    ->scalarNode('token')->end()
                    ->scalarNode('service')->end()
                    ->arrayNode('params')->prototype('scalar')->end()
                    ->end()
                ->end()
            ->end(); // End authentication plugin

        return $node;
    }
private function createAuthenticationPluginNode()
    {
        $treeBuilder = new TreeBuilder('authentication');
        // Keep compatibility with symfony/config < 4.2
        if (!method_exists($treeBuilder, 'getRootNode')) {
            $node = $treeBuilder->root('authentication');
        } else {
            $node = $treeBuilder->getRootNode();
        }

        $node
            ->useAttributeAsKey('name')
            ->prototype('array')
                ->validate()
                    ->always()
                    ->then(function ($config) {
                        switch ($config['type']) {
                            case 'basic':
                                $this->validateAuthenticationType(['username', 'password'], $config, 'basic');

                                break;
                            case 'bearer':
                                $this->validateAuthenticationType(['token'], $config, 'bearer');

                                break;
                            case 'service':
                                $this->validateAuthenticationType(['service'], $config, 'service');

                                break;
                            case 'wsse':
                                $this->validateAuthenticationType(['username', 'password'], $config, 'wsse');

                                break;
                            case 'query_param':
                                $this->validateAuthenticationType(['params'], $config, 'query_param');

                                break;
                        }

                        return $config;
                    })
                ->end()
                ->children()
                    ->enumNode('type')
                        ->values(['basic', 'bearer', 'wsse', 'service', 'query_param'])
                        ->isRequired()
                        ->cannotBeEmpty()
                    ->end()
                    ->scalarNode('username')->end()
                    ->scalarNode('password')->end()
                    ->scalarNode('token')->end()
                    ->scalarNode('service')->end()
                    ->arrayNode('params')->prototype('scalar')->end()
                    ->end()
                ->end()
            ->end(); // End authentication plugin

        return $node;
    }
private function createAuthenticationPluginNode ( ) { $ treeBuilder = new TreeBuilder ( 'authentication' ) ; // Keep compatibility with symfony/config < 4.2 if ( ! method_exists ( $ treeBuilder , 'getRootNode' ) ) { $ node = $ treeBuilder -> root ( 'authentication' ) ; } else { $ node = $ treeBuilder -> getRootNode ( ) ; } $ node -> useAttributeAsKey ( 'name' ) -> prototype ( 'array' ) -> validate ( ) -> always ( ) -> then ( function ( $ config ) { switch ( $ config [ 'type' ] ) { case 'basic' : $ this -> validateAuthenticationType ( [ 'username' , 'password' ] , $ config , 'basic' ) ; break ; case 'bearer' : $ this -> validateAuthenticationType ( [ 'token' ] , $ config , 'bearer' ) ; break ; case 'service' : $ this -> validateAuthenticationType ( [ 'service' ] , $ config , 'service' ) ; break ; case 'wsse' : $ this -> validateAuthenticationType ( [ 'username' , 'password' ] , $ config , 'wsse' ) ; break ; case 'query_param' : $ this -> validateAuthenticationType ( [ 'params' ] , $ config , 'query_param' ) ; break ; } return $ config ; } ) -> end ( ) -> children ( ) -> enumNode ( 'type' ) -> values ( [ 'basic' , 'bearer' , 'wsse' , 'service' , 'query_param' ] ) -> isRequired ( ) -> cannotBeEmpty ( ) -> end ( ) -> scalarNode ( 'username' ) -> end ( ) -> scalarNode ( 'password' ) -> end ( ) -> scalarNode ( 'token' ) -> end ( ) -> scalarNode ( 'service' ) -> end ( ) -> arrayNode ( 'params' ) -> prototype ( 'scalar' ) -> end ( ) -> end ( ) -> end ( ) -> end ( ) ; // End authentication plugin return $ node ; }
Create configuration for authentication plugin.

@return NodeDefinition definition for the authentication node in the plugins list
Create configuration for authentication plugin .