ParseRedirectResponse returns the decoded SAML LogoutResponse from an HTTP-Redirect URL
(u *url.URL)
| 24 | |
| 25 | // ParseRedirectResponse returns the decoded SAML LogoutResponse from an HTTP-Redirect URL |
| 26 | func ParseRedirectResponse(u *url.URL) ([]byte, error) { |
| 27 | compressedResponse, err := base64.StdEncoding.DecodeString(u.Query().Get("SAMLResponse")) |
| 28 | if err != nil { |
| 29 | return nil, fmt.Errorf("cannot decode response: %s", err) |
| 30 | } |
| 31 | buf, err := ioutil.ReadAll(flate.NewReader(bytes.NewReader(compressedResponse))) |
| 32 | if err != nil { |
| 33 | return nil, fmt.Errorf("cannot decompress response: %s", err) |
| 34 | } |
| 35 | return buf, nil |
| 36 | } |