OneLogin_Saml2_Auth::buildRequestSignature PHP Méthode

buildRequestSignature() public méthode

Generates the Signature for a SAML Request
public buildRequestSignature ( string $samlRequest, string $relayState, string $signAlgorithm = XMLSecurityKey::RSA_SHA1 ) : string
$samlRequest string The SAML Request
$relayState string The RelayState
$signAlgorithm string Signature algorithm method
Résultat string A base64 encoded signature
    public function buildRequestSignature($samlRequest, $relayState, $signAlgorithm = XMLSecurityKey::RSA_SHA1)
    {
        if (!$this->_settings->checkSPCerts()) {
            throw new OneLogin_Saml2_Error("Trying to sign the SAML Request but can't load the SP certs", OneLogin_Saml2_Error::SP_CERTS_NOT_FOUND);
        }
        $key = $this->_settings->getSPkey();
        $objKey = new XMLSecurityKey($signAlgorithm, array('type' => 'private'));
        $objKey->loadKey($key, false);
        $security = $this->_settings->getSecurityData();
        if ($security['lowercaseUrlencoding']) {
            $msg = 'SAMLRequest=' . rawurlencode($samlRequest);
            if (isset($relayState)) {
                $msg .= '&RelayState=' . rawurlencode($relayState);
            }
            $msg .= '&SigAlg=' . rawurlencode($signAlgorithm);
        } else {
            $msg = 'SAMLRequest=' . urlencode($samlRequest);
            if (isset($relayState)) {
                $msg .= '&RelayState=' . urlencode($relayState);
            }
            $msg .= '&SigAlg=' . urlencode($signAlgorithm);
        }
        $signature = $objKey->signData($msg);
        return base64_encode($signature);
    }