public function __construct(array $config)
 {
     if (!isset($config['name_id_format'])) {
         $config['name_id_format'] = NameIDPolicy::PERSISTENT;
     }
     if (!isset($config['suppress_name_id_policy'])) {
         $config['suppress_name_id_policy'] = false;
     }
     if (!array_key_exists('binding', $config)) {
         $config['binding'] = array();
     }
     if (!isset($config['binding']['authn_request'])) {
         $config['binding']['authn_request'] = Bindings::SAML2_HTTP_POST;
     }
     if (!isset($config['binding']['response'])) {
         $config['binding']['response'] = Bindings::SAML2_HTTP_POST;
     }
     if (!isset($config['binding']['logout_request'])) {
         $config['binding']['logout_request'] = Bindings::SAML2_HTTP_POST;
     }
     $this->spMeta = new SpMeta();
     $this->spMeta->setNameIdFormat($this->resolveNameIDFormat($config['name_id_format']));
     $this->spMeta->setSuppressNameIdPolicy($this->resolveNameIDFormat($config['suppress_name_id_policy']));
     $this->spMeta->setAuthnRequestBinding($this->resolveBinding($config['binding']['authn_request']));
     $this->spMeta->setResponseBinding($this->resolveBinding($config['binding']['response']));
     $this->spMeta->setLogoutRequestBinding($this->resolveBinding($config['binding']['logout_request']));
 }