// DoRunTestKrib func DoRunTestKrib(m modsset, overwrite *Testparams) (tp *Testparams) { if !*dokrib { return } tp = Newtp(overwrite) defer xxx(tp.Trace) tp.Usedoubleproxy = true ApplyMods(tp.Attributestmt, m["attributemods"]) tp.SSOCreateInitialRequest() ApplyMods(tp.Initialrequest, m["requestmods"]) // log.Println(tp.Initialrequest.Pp()) tp.SSOSendRequest1() if tp.Resp.StatusCode == 500 { fmt.Println(strings.TrimSpace(string(tp.Responsebody))) return } authnrequest := gosaml.Url2SAMLRequest(tp.Resp.Location()) ApplyMods(authnrequest, m["birkrequestmods"]) u, _ := gosaml.SAMLRequest2Url(authnrequest, "", "", "") tp.Resp.Header.Set("Location", u.String()) if tp.Resp.StatusCode == 500 { fmt.Println(strings.TrimSpace(string(tp.Responsebody))) return } tp.SSOSendRequest2() if tp.Newresponse == nil { log.Panic(string(tp.Responsebody)) } tp.SSOSendResponse() if tp.Resp.StatusCode == 500 { fmt.Println(strings.TrimSpace(string(tp.Responsebody))) return } tp.SSOSendResponse() if tp.Resp.StatusCode == 500 { fmt.Println(strings.TrimSpace(string(tp.Responsebody))) return } if tp.Logxml { log.Println("final response", tp.Newresponse.Pp()) } return }
// DoRunTestBirk runs a test on the hub - applying the necessary modifications on the way // Returns a *Testparams which can be analyzed func DoRunTestBirk(m modsset, overwrite *Testparams) (tp *Testparams) { if !*dobirk { return } tp = Newtp(overwrite) defer xxx(tp.Trace) tp.Firstidpmd = tp.Birkmd tp.Usedoubleproxy = true ApplyMods(tp.Attributestmt, m["attributemods"]) tp.SSOCreateInitialRequest() ApplyMods(tp.Initialrequest, m["requestmods"]) // log.Println(tp.Initialrequest.Pp()) tp.SSOSendRequest1() if tp.Resp.StatusCode == 500 { fmt.Println(strings.Trim(strings.SplitN(string(tp.Responsebody), " ", 2)[1], "\n ")) return } authnrequest := gosaml.Url2SAMLRequest(tp.Resp.Location()) ApplyMods(authnrequest, m["birkrequestmods"]) // log.Println(authnrequest.Pp()) u, _ := gosaml.SAMLRequest2Url(authnrequest, "", "", "") tp.Resp.Header.Set("Location", u.String()) tp.SSOSendRequest2() // pt. after signing - remember to have a before as well if tp.Resp.StatusCode == 500 { fmt.Println(strings.SplitN(string(tp.Responsebody), " ", 2)[1]) return } tp.SSOSendResponse() if tp.Resp.StatusCode == 500 { fmt.Println(strings.SplitN(string(tp.Responsebody), " ", 2)[1]) return } ApplyMods(tp.Newresponse, m["responsemods"]) tp.SSOSendResponse() if tp.Resp.StatusCode == 500 { fmt.Println(strings.Trim(strings.SplitN(string(tp.Responsebody), " ", 2)[1], "\n ")) return } return }