@@ -1183,12 +1183,6 @@ type oauth2TestServerResponse struct {
11831183
11841184func TestOAuth2 (t * testing.T ) {
11851185 ts := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
1186- if r .URL .Path == "/token" {
1187- if r .Header .Get ("User-Agent" ) != "myuseragent" {
1188- t .Fatalf ("Expected User-Agent header in oauth request to be 'myuseragent', got '%s'" , r .Header .Get ("User-Agent" ))
1189- }
1190- }
1191-
11921186 res , _ := json .Marshal (oauth2TestServerResponse {
11931187 AccessToken : "12345" ,
11941188 TokenType : "Bearer" ,
@@ -1205,7 +1199,6 @@ scopes:
12051199 - A
12061200 - B
12071201token_url: %s/token
1208- user_agent: myuseragent
12091202endpoint_params:
12101203 hi: hello
12111204` , ts .URL )
@@ -1215,7 +1208,6 @@ endpoint_params:
12151208 Scopes : []string {"A" , "B" },
12161209 EndpointParams : map [string ]string {"hi" : "hello" },
12171210 TokenURL : fmt .Sprintf ("%s/token" , ts .URL ),
1218- UserAgent : "myuseragent" ,
12191211 }
12201212
12211213 var unmarshalledConfig OAuth2
@@ -1227,7 +1219,7 @@ endpoint_params:
12271219 t .Fatalf ("Got unmarshalled config %v, expected %v" , unmarshalledConfig , expectedConfig )
12281220 }
12291221
1230- rt := NewOAuth2RoundTripper (& expectedConfig , http .DefaultTransport )
1222+ rt := NewOAuth2RoundTripper (& expectedConfig , http .DefaultTransport , & defaultHTTPClientOptions )
12311223
12321224 client := http.Client {
12331225 Transport : rt ,
@@ -1240,6 +1232,50 @@ endpoint_params:
12401232 }
12411233}
12421234
1235+ func TestOAuth2UserAgent (t * testing.T ) {
1236+ ts := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
1237+ if r .URL .Path != "/" {
1238+ if r .Header .Get ("User-Agent" ) != "myuseragent" {
1239+ t .Fatalf ("Expected User-Agent header in oauth request to be 'myuseragent', got '%s'" , r .Header .Get ("User-Agent" ))
1240+ }
1241+ }
1242+
1243+ res , _ := json .Marshal (oauth2TestServerResponse {
1244+ AccessToken : "12345" ,
1245+ TokenType : "Bearer" ,
1246+ })
1247+ w .Header ().Add ("Content-Type" , "application/json" )
1248+ _ , _ = w .Write (res )
1249+ }))
1250+ defer ts .Close ()
1251+
1252+ config := & OAuth2 {
1253+ ClientID : "1" ,
1254+ ClientSecret : "2" ,
1255+ Scopes : []string {"A" , "B" },
1256+ EndpointParams : map [string ]string {"hi" : "hello" },
1257+ TokenURL : fmt .Sprintf ("%s/token" , ts .URL ),
1258+ }
1259+
1260+ opts := defaultHTTPClientOptions
1261+ WithUserAgent ("myuseragent" )(& opts )
1262+
1263+ rt := NewOAuth2RoundTripper (config , http .DefaultTransport , & opts )
1264+
1265+ client := http.Client {
1266+ Transport : rt ,
1267+ }
1268+ resp , err := client .Get (ts .URL )
1269+ if err != nil {
1270+ t .Fatal (err )
1271+ }
1272+
1273+ authorization := resp .Request .Header .Get ("Authorization" )
1274+ if authorization != "Bearer 12345" {
1275+ t .Fatalf ("Expected authorization header to be 'Bearer 12345', got '%s'" , authorization )
1276+ }
1277+ }
1278+
12431279func TestOAuth2WithFile (t * testing.T ) {
12441280 var expectedAuth * string
12451281 var previousAuth string
@@ -1302,7 +1338,7 @@ endpoint_params:
13021338 t .Fatalf ("Got unmarshalled config %v, expected %v" , unmarshalledConfig , expectedConfig )
13031339 }
13041340
1305- rt := NewOAuth2RoundTripper (& expectedConfig , http .DefaultTransport )
1341+ rt := NewOAuth2RoundTripper (& expectedConfig , http .DefaultTransport , & defaultHTTPClientOptions )
13061342
13071343 client := http.Client {
13081344 Transport : rt ,
@@ -1496,10 +1532,3 @@ func TestOAuth2Proxy(t *testing.T) {
14961532 t .Errorf ("Error loading OAuth2 client config: %v" , err )
14971533 }
14981534}
1499-
1500- func TestOAuth2UserAgent (t * testing.T ) {
1501- _ , _ , err := LoadHTTPConfigFile ("testdata/http.conf.oauth2-user-agent.good.yml" )
1502- if err != nil {
1503- t .Errorf ("Error loading OAuth2 client config: %v" , err )
1504- }
1505- }
0 commit comments