Move azure specific resource parameter handling into azure provider
This commit is contained in:
		
							parent
							
								
									97e95fd4ff
								
							
						
					
					
						commit
						fde09bea4e
					
				|  | @ -210,3 +210,12 @@ func (p *AzureProvider) GetEmailAddress(ctx context.Context, s *sessions.Session | ||||||
| 
 | 
 | ||||||
| 	return email, err | 	return email, err | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | func (p *AzureProvider) GetLoginURL(redirectURI, state string) string { | ||||||
|  | 	a, params := DefaultGetLoginURL(p.ProviderData, redirectURI, state) | ||||||
|  | 	if p.ProtectedResource != nil && p.ProtectedResource.String() != "" { | ||||||
|  | 		params.Add("resource", p.ProtectedResource.String()) | ||||||
|  | 	} | ||||||
|  | 	a.RawQuery = params.Encode() | ||||||
|  | 	return a.String() | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -213,3 +213,10 @@ func TestAzureProviderRedeemReturnsIdToken(t *testing.T) { | ||||||
| 	assert.Equal(t, timestamp, s.ExpiresOn.UTC()) | 	assert.Equal(t, timestamp, s.ExpiresOn.UTC()) | ||||||
| 	assert.Equal(t, "refresh1234", s.RefreshToken) | 	assert.Equal(t, "refresh1234", s.RefreshToken) | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | func TestAzureProviderProtectedResourceConfigured(t *testing.T) { | ||||||
|  | 	p := testAzureProvider("") | ||||||
|  | 	p.ProtectedResource, _ = url.Parse("http://my.resource.test") | ||||||
|  | 	result := p.GetLoginURL("https://my.test.app/oauth", "") | ||||||
|  | 	assert.Contains(t, result, "resource="+url.QueryEscape("http://my.resource.test")) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -89,9 +89,6 @@ func DefaultGetLoginURL(p *ProviderData, redirectURI, state string) (url.URL, ur | ||||||
| 	params.Set("client_id", p.ClientID) | 	params.Set("client_id", p.ClientID) | ||||||
| 	params.Set("response_type", "code") | 	params.Set("response_type", "code") | ||||||
| 	params.Add("state", state) | 	params.Add("state", state) | ||||||
| 	if p.ProtectedResource != nil && p.ProtectedResource.String() != "" { |  | ||||||
| 		params.Add("resource", p.ProtectedResource.String()) |  | ||||||
| 	} |  | ||||||
| 	return a, params | 	return a, params | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -47,21 +47,3 @@ func TestAcrValuesConfigured(t *testing.T) { | ||||||
| 	result := p.GetLoginURL("https://my.test.app/oauth", "") | 	result := p.GetLoginURL("https://my.test.app/oauth", "") | ||||||
| 	assert.Contains(t, result, "acr_values=testValue") | 	assert.Contains(t, result, "acr_values=testValue") | ||||||
| } | } | ||||||
| 
 |  | ||||||
| func TestProtectedResourceConfigured(t *testing.T) { |  | ||||||
| 	p := &ProviderData{ |  | ||||||
| 		LoginURL: &url.URL{ |  | ||||||
| 			Scheme: "http", |  | ||||||
| 			Host:   "my.test.idp", |  | ||||||
| 			Path:   "/oauth/authorize", |  | ||||||
| 		}, |  | ||||||
| 		AcrValues: "testValue", |  | ||||||
| 		ProtectedResource: &url.URL{ |  | ||||||
| 			Scheme: "http", |  | ||||||
| 			Host:   "my.resource.test", |  | ||||||
| 		}, |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	result := p.GetLoginURL("https://my.test.app/oauth", "") |  | ||||||
| 	assert.Contains(t, result, "resource="+url.QueryEscape("http://my.resource.test")) |  | ||||||
| } |  | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue