(opts PassAccessTokenTestOptions)
| 328 | } |
| 329 | |
| 330 | func NewPassAccessTokenTest(opts PassAccessTokenTestOptions) (*PassAccessTokenTest, error) { |
| 331 | patt := &PassAccessTokenTest{} |
| 332 | |
| 333 | patt.providerServer = httptest.NewServer( |
| 334 | http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |
| 335 | var payload string |
| 336 | switch r.URL.Path { |
| 337 | case "/oauth/token": |
| 338 | payload = `{"access_token": "my_auth_token"}` |
| 339 | default: |
| 340 | payload = r.Header.Get("X-Forwarded-Access-Token") |
| 341 | if payload == "" { |
| 342 | payload = "No access token found." |
| 343 | } |
| 344 | } |
| 345 | w.WriteHeader(200) |
| 346 | _, err := w.Write([]byte(payload)) |
| 347 | if err != nil { |
| 348 | panic(err) |
| 349 | } |
| 350 | })) |
| 351 | |
| 352 | patt.opts = baseTestOptions() |
| 353 | patt.opts.UpstreamServers = options.UpstreamConfig{ |
| 354 | Upstreams: []options.Upstream{ |
| 355 | { |
| 356 | ID: patt.providerServer.URL, |
| 357 | Path: "/", |
| 358 | URI: patt.providerServer.URL, |
| 359 | }, |
| 360 | }, |
| 361 | } |
| 362 | if opts.ProxyUpstream.ID != "" { |
| 363 | patt.opts.UpstreamServers.Upstreams = append(patt.opts.UpstreamServers.Upstreams, opts.ProxyUpstream) |
| 364 | } |
| 365 | |
| 366 | patt.opts.Cookie.Secure = false |
| 367 | if opts.PassAccessToken { |
| 368 | patt.opts.InjectRequestHeaders = []options.Header{ |
| 369 | { |
| 370 | Name: "X-Forwarded-Access-Token", |
| 371 | Values: []options.HeaderValue{ |
| 372 | { |
| 373 | ClaimSource: &options.ClaimSource{ |
| 374 | Claim: "access_token", |
| 375 | }, |
| 376 | }, |
| 377 | }, |
| 378 | }, |
| 379 | } |
| 380 | } |
| 381 | |
| 382 | err := validation.Validate(patt.opts) |
| 383 | if err != nil { |
| 384 | return nil, err |
| 385 | } |
| 386 | |
| 387 | providerURL, _ := url.Parse(patt.providerServer.URL) |
no test coverage detected