Skip to content

Instantly share code, notes, and snippets.

@dcarley
Last active January 1, 2016 05:39
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dcarley/8100039 to your computer and use it in GitHub Desktop.
Save dcarley/8100039 to your computer and use it in GitHub Desktop.
Testing Fastly's API authentication
➜ ~ go run test_fastly_api_auth.go -user ${FASTLY_USER} -pass ${FASTLY_PASS}
200 OK
Took 469.833754ms
➜ ~ go run test_fastly_api_auth.go -user ${FASTLY_USER} -pass ${FASTLY_PASS}
200 OK
Took 995.766412ms
➜ ~ go run test_fastly_api_auth.go -user ${FASTLY_USER} -pass ${FASTLY_PASS}
200 OK
Took 835.970521ms
➜ ~ go run test_fastly_api_auth.go -user ${FASTLY_USER} -pass ${FASTLY_PASS}
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
200 OK
Took 41.633421364s
➜ ~ go run test_fastly_api_auth.go -user ${FASTLY_USER} -pass ${FASTLY_PASS}
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
403 Forbidden
200 OK
Took 1m28.361991013s
package main
import (
"errors"
"flag"
"fmt"
"net/url"
"net/http"
"net/http/cookiejar"
"time"
)
var (
user = flag.String("user", "", "API username")
pass = flag.String("pass", "", "API password")
)
func main() {
flag.Parse()
cj, _ := cookiejar.New(nil)
client := &http.Client{Jar: cj}
auth(client)
start := time.Now()
for err := errors.New(""); err != nil; {
var resp *http.Response
resp, err = stats(client)
fmt.Println(resp.Status)
if err != nil {
time.Sleep(time.Second)
}
}
fmt.Println("Took", time.Now().Sub(start))
}
func auth(client *http.Client) {
creds := url.Values{
"user": {*user},
"password": {*pass},
}
resp, err := client.PostForm("https://api.fastly.com/login", creds)
defer resp.Body.Close()
if err != nil || resp.StatusCode != 200 {
panic("Auth failed")
}
}
func stats(client *http.Client) (resp *http.Response, err error) {
resp, err = client.Get("https://api.fastly.com/stats/usage")
defer resp.Body.Close()
if err == nil && resp.StatusCode != 200 {
err = errors.New("Non-200 response")
}
return
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment