/** * @param array $errors * @param array $options * * @internal param array $input */ private function process_sso_options($input, &$errors, &$options) { if (empty($input[LaunchKey_WP_Options::OPTION_SSO_ENTITY_ID])) { $errors[] = $this->wp_facade->__('SSO Profile Entity ID is required', $this->language_domain); } else { $options[LaunchKey_WP_Options::OPTION_SSO_ENTITY_ID] = $input[LaunchKey_WP_Options::OPTION_SSO_ENTITY_ID]; } if (empty($_FILES['sso_idp']['tmp_name']) && empty($options[LaunchKey_WP_Options::OPTION_SSO_CERTIFICATE])) { $errors[] = $this->wp_facade->__('SSO Profile File is required', $this->language_domain); } else { if (!empty($_FILES['sso_idp']['tmp_name'])) { try { $idp_doc = SAML2_DOMDocumentFactory::fromString(file_get_contents($_FILES['sso_idp']['tmp_name'])); $helper = LaunchKey_WP_SSO_Config_Helper::from_DOM_document($idp_doc); $options[LaunchKey_WP_Options::OPTION_SSO_CERTIFICATE] = $helper->get_X509_certificate(); $options[LaunchKey_WP_Options::OPTION_SSO_LOGIN_URL] = $helper->get_SSO_redirect(); $options[LaunchKey_WP_Options::OPTION_SSO_LOGOUT_URL] = $helper->get_SLO_redirect(); $options[LaunchKey_WP_Options::OPTION_SSO_ERROR_URL] = $helper->get_error_redirect(); } catch (Exception $e) { $errors[] = $this->wp_facade->__('The SSO Profile file provided had an error being parsed', $this->language_domain) . ": " . $e->getMessage(); } } } }
/** * @depends test_from_DOM_document_returns_instance * @param LaunchKey_WP_SSO_Config_Helper $helper */ public function test_get_X509_certificate(LaunchKey_WP_SSO_Config_Helper $helper) { $expected = "-----BEGIN CERTIFICATE-----\n" . "MIIDfjCCAmagAwIBAQICJxAwDQYJKoZIhvcNAQEFBQAwgYExCzAJBgNVBAYTAlVT\r\n" . "MRIwEAYDVQQIEwlMYXMgVmVnYXMxEjAQBgNVBAcTCUxhcyBWZWdhczEYMBYGA1UE\r\n" . "ChMPTGF1bmNoS2V5LCBJbmMuMRgwFgYDVQQLEw9MYXVuY2hLZXksIEluYy4xFjAU\r\n" . "BgNVBAMTDWxhdW5jaGtleS5jb20wHhcNMTUxMTAyMjMyNzQ5WhcNMTYxMTAxMjMy\r\n" . "NzQ5WjCBgTELMAkGA1UEBhMCVVMxEjAQBgNVBAgTCUxhcyBWZWdhczESMBAGA1UE\r\n" . "BxMJTGFzIFZlZ2FzMRgwFgYDVQQKEw9MYXVuY2hLZXksIEluYy4xGDAWBgNVBAsT\r\n" . "D0xhdW5jaEtleSwgSW5jLjEWMBQGA1UEAxMNbGF1bmNoa2V5LmNvbTCCASIwDQYJ\r\n" . "KoZIhvcNAQEBBQADggEPADCCAQoCggEBAN1Q3Og6izyf35UaeivS88Wlzjdz2yPm\r\n" . "juOge/awYJa8V2dED0oCjdAxex9Ak8lEE9naD6ZcuA0Kta5mHKk1ho5Z4aq1493w\r\n" . "HFbPbzVFldBAzFqig7m5/k1B/QY8w7CP1QG5aM9ebQeCJwdhz7UBmNQL2r2K02zn\r\n" . "2DFhEuus1YKM+pfSO2I+yTd/AyBtq4zu+LusibNoU9ADKQ3IoJtzyZ+CUuuOG3jz\r\n" . "Z+zwuzH/0hpuTs6TnBSAGYD1Xow2X7lULLzXwZ4R3SopTesncIbXLa2luTLQIody\r\n" . "uA/gSirbW7g02zQ8G3JcO+ce6UnusklzvdBPoJ2vttpDEsWlNqbSTWcCAwEAATAN\r\n" . "BgkqhkiG9w0BAQUFAAOCAQEARz9V7cBG2et/741mdtbspQTN4HF0hUp3NEJzBrP/\r\n" . "YtdMYIVAUh2sc3sf/oiakLgqYBA78rSk9CbNlv4EJ/FEC/5X3l1o9h5dFLXt40LL\r\n" . "4I+ijYY3BlsgRL9K2CNYRCq1bJX8xlcY0hVqqsZipzR4zeyqQVMLXH/zSScTrF5j\r\n" . "b5KQcYFiRP7AF30OtGoZxhnsDUcErhdWY5lGvaSex6LsOC2UGtmwK3FWu+NMDzL0\r\n" . "+ovdBGpsmDp3IN1AKwd9/6EQ3XbQPyXoXpW0TCBzs/OxGqnhiJD9rROCtVl1SJze\r\n" . "LWllWSmosQFhsXwSO5ZlnechO+SMaxN7OrV7POOv8aRcpQ==\r\n" . "-----END CERTIFICATE-----\n"; $this->assertEquals($expected, $helper->get_X509_certificate()); }