MCPcopy
hub / github.com/oauth2-proxy/oauth2-proxy / NewPassAccessTokenTest

Function NewPassAccessTokenTest

oauthproxy_test.go:330–400  ·  view source on GitHub ↗
(opts PassAccessTokenTestOptions)

Source from the content-addressed store, hash-verified

328}
329
330func 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)

Calls 7

ValidateFunction · 0.92
baseTestOptionsFunction · 0.85
NewTestProviderFunction · 0.85
NewOAuthProxyFunction · 0.85
WriteHeaderMethod · 0.80
GetMethod · 0.65
WriteMethod · 0.45

Tested by

no test coverage detected