public static function getStatus($dom)
    {
        $status = array();

        $statusEntry = self::query($dom, '/samlp:Response/samlp:Status');
        if ($statusEntry->length != 1) {
            throw new OneLogin_Saml2_ValidationError(
                "Missing Status on response",
                OneLogin_Saml2_ValidationError::MISSING_STATUS
            );
        }

        $codeEntry = self::query($dom, '/samlp:Response/samlp:Status/samlp:StatusCode', $statusEntry->item(0));
        if ($codeEntry->length != 1) {
            throw new OneLogin_Saml2_ValidationError(
                "Missing Status Code on response",
                OneLogin_Saml2_ValidationError::MISSING_STATUS_CODE
            );
        }
        $code = $codeEntry->item(0)->getAttribute('Value');
        $status['code'] = $code;

        $status['msg'] = '';
        $messageEntry = self::query($dom, '/samlp:Response/samlp:Status/samlp:StatusMessage', $statusEntry->item(0));
        if ($messageEntry->length == 0) {
            $subCodeEntry = self::query($dom, '/samlp:Response/samlp:Status/samlp:StatusCode/samlp:StatusCode', $statusEntry->item(0));
            if ($subCodeEntry->length == 1) {
                $status['msg'] = $subCodeEntry->item(0)->getAttribute('Value');
            }
        } else if ($messageEntry->length == 1) {
            $msg = $messageEntry->item(0)->textContent;
            $status['msg'] = $msg;
        }

        return $status;
    }
public static function getStatus($dom)
    {
        $status = array();

        $statusEntry = self::query($dom, '/samlp:Response/samlp:Status');
        if ($statusEntry->length != 1) {
            throw new OneLogin_Saml2_ValidationError(
                "Missing Status on response",
                OneLogin_Saml2_ValidationError::MISSING_STATUS
            );
        }

        $codeEntry = self::query($dom, '/samlp:Response/samlp:Status/samlp:StatusCode', $statusEntry->item(0));
        if ($codeEntry->length != 1) {
            throw new OneLogin_Saml2_ValidationError(
                "Missing Status Code on response",
                OneLogin_Saml2_ValidationError::MISSING_STATUS_CODE
            );
        }
        $code = $codeEntry->item(0)->getAttribute('Value');
        $status['code'] = $code;

        $status['msg'] = '';
        $messageEntry = self::query($dom, '/samlp:Response/samlp:Status/samlp:StatusMessage', $statusEntry->item(0));
        if ($messageEntry->length == 0) {
            $subCodeEntry = self::query($dom, '/samlp:Response/samlp:Status/samlp:StatusCode/samlp:StatusCode', $statusEntry->item(0));
            if ($subCodeEntry->length == 1) {
                $status['msg'] = $subCodeEntry->item(0)->getAttribute('Value');
            }
        } else if ($messageEntry->length == 1) {
            $msg = $messageEntry->item(0)->textContent;
            $status['msg'] = $msg;
        }

        return $status;
    }
public static function getStatus ( $ dom ) { $ status = array ( ) ; $ statusEntry = self :: query ( $ dom , '/samlp:Response/samlp:Status' ) ; if ( $ statusEntry -> length != 1 ) { throw new OneLogin_Saml2_ValidationError ( "Missing Status on response" , OneLogin_Saml2_ValidationError :: MISSING_STATUS ) ; } $ codeEntry = self :: query ( $ dom , '/samlp:Response/samlp:Status/samlp:StatusCode' , $ statusEntry -> item ( 0 ) ) ; if ( $ codeEntry -> length != 1 ) { throw new OneLogin_Saml2_ValidationError ( "Missing Status Code on response" , OneLogin_Saml2_ValidationError :: MISSING_STATUS_CODE ) ; } $ code = $ codeEntry -> item ( 0 ) -> getAttribute ( 'Value' ) ; $ status [ 'code' ] = $ code ; $ status [ 'msg' ] = '' ; $ messageEntry = self :: query ( $ dom , '/samlp:Response/samlp:Status/samlp:StatusMessage' , $ statusEntry -> item ( 0 ) ) ; if ( $ messageEntry -> length == 0 ) { $ subCodeEntry = self :: query ( $ dom , '/samlp:Response/samlp:Status/samlp:StatusCode/samlp:StatusCode' , $ statusEntry -> item ( 0 ) ) ; if ( $ subCodeEntry -> length == 1 ) { $ status [ 'msg' ] = $ subCodeEntry -> item ( 0 ) -> getAttribute ( 'Value' ) ; } } else if ( $ messageEntry -> length == 1 ) { $ msg = $ messageEntry -> item ( 0 ) -> textContent ; $ status [ 'msg' ] = $ msg ; } return $ status ; }
Gets Status from a Response.

@param DOMDocument $dom The Response as XML

@return array $status The Status, an array with the code and a message.

@throws OneLogin_Saml2_ValidationError
Gets Status from a Response .