Skip to content
Snippets Groups Projects
Unverified Commit fe08a089 authored by siarhei-haurylau's avatar siarhei-haurylau Committed by GitHub
Browse files

saml connector: fix nil pointer on validate saml (#3793)

parent 749bbd5d
No related branches found
No related tags found
No related merge requests found
...@@ -597,6 +597,9 @@ func verifyResponseSig(validator *dsig.ValidationContext, data []byte) (signed [ ...@@ -597,6 +597,9 @@ func verifyResponseSig(validator *dsig.ValidationContext, data []byte) (signed [
} }
response := doc.Root() response := doc.Root()
if response == nil {
return nil, false, fmt.Errorf("parse document: empty root")
}
transformedResponse, err := validator.Validate(response) transformedResponse, err := validator.Validate(response)
if err == nil { if err == nil {
// Root element is verified, return it. // Root element is verified, return it.
...@@ -609,7 +612,7 @@ func verifyResponseSig(validator *dsig.ValidationContext, data []byte) (signed [ ...@@ -609,7 +612,7 @@ func verifyResponseSig(validator *dsig.ValidationContext, data []byte) (signed [
// //
// TODO: Only select from child elements of the root. // TODO: Only select from child elements of the root.
assertion, err := etreeutils.NSSelectOne(response, "urn:oasis:names:tc:SAML:2.0:assertion", "Assertion") assertion, err := etreeutils.NSSelectOne(response, "urn:oasis:names:tc:SAML:2.0:assertion", "Assertion")
if err != nil { if err != nil || assertion == nil {
return nil, false, fmt.Errorf("response does not contain an Assertion element") return nil, false, fmt.Errorf("response does not contain an Assertion element")
} }
transformedAssertion, err := validator.Validate(assertion) transformedAssertion, err := validator.Validate(assertion)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment