adding a configurable hostname when creating the onshape owin middleware
This commit is contained in:
@@ -28,5 +28,17 @@ namespace Owin.Security.Providers.Onshape
|
|||||||
CallbackPath = new PathString(callbackPath)
|
CallbackPath = new PathString(callbackPath)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static IAppBuilder UseOnshapeAuthentication(this IAppBuilder app, string appKey,
|
||||||
|
string appSecret, string callbackPath, string hostname)
|
||||||
|
{
|
||||||
|
return app.UseOnshapeAuthentication(new OnshapeAuthenticationOptions
|
||||||
|
{
|
||||||
|
AppKey = appKey,
|
||||||
|
AppSecret = appSecret,
|
||||||
|
CallbackPath = new PathString(callbackPath),
|
||||||
|
Hostname = hostname
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -20,8 +20,9 @@ namespace Owin.Security.Providers.Onshape
|
|||||||
{
|
{
|
||||||
private const string StateCookie = "_OnshapeState";
|
private const string StateCookie = "_OnshapeState";
|
||||||
private const string XmlSchemaString = "http://www.w3.org/2001/XMLSchema#string";
|
private const string XmlSchemaString = "http://www.w3.org/2001/XMLSchema#string";
|
||||||
private const string TokenEndpoint = "https://partner.dev.onshape.com/oauth/token";
|
private const string AuthorizationEndpoint = "/oauth/authorize";
|
||||||
private const string UserInfoEndpoint = "https://partner.dev.onshape.com/api/users/current";
|
private const string TokenEndpoint = "/oauth/token";
|
||||||
|
private const string UserInfoEndpoint = "/api/users/current";
|
||||||
|
|
||||||
private readonly ILogger logger;
|
private readonly ILogger logger;
|
||||||
private readonly HttpClient httpClient;
|
private readonly HttpClient httpClient;
|
||||||
@@ -77,7 +78,7 @@ namespace Owin.Security.Providers.Onshape
|
|||||||
body.Add(new KeyValuePair<string, string>("client_secret", Options.AppSecret));
|
body.Add(new KeyValuePair<string, string>("client_secret", Options.AppSecret));
|
||||||
|
|
||||||
// Get token
|
// Get token
|
||||||
var tokenRequest = new HttpRequestMessage(HttpMethod.Post, TokenEndpoint);
|
var tokenRequest = new HttpRequestMessage(HttpMethod.Post, "https://" + Options.Hostname + TokenEndpoint);
|
||||||
tokenRequest.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
|
tokenRequest.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
|
||||||
tokenRequest.Content = new FormUrlEncodedContent(body);
|
tokenRequest.Content = new FormUrlEncodedContent(body);
|
||||||
|
|
||||||
@@ -92,7 +93,7 @@ namespace Owin.Security.Providers.Onshape
|
|||||||
|
|
||||||
string tokenType = (string)response.token_type;
|
string tokenType = (string)response.token_type;
|
||||||
|
|
||||||
var userRequest = new HttpRequestMessage(HttpMethod.Get, UserInfoEndpoint);
|
var userRequest = new HttpRequestMessage(HttpMethod.Get, "https://" + Options.Hostname + UserInfoEndpoint);
|
||||||
userRequest.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
|
userRequest.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
|
||||||
userRequest.Headers.Authorization = new AuthenticationHeaderValue(tokenType, accessToken);
|
userRequest.Headers.Authorization = new AuthenticationHeaderValue(tokenType, accessToken);
|
||||||
HttpResponseMessage graphResponse = await httpClient.SendAsync(userRequest, Request.CallCancelled);
|
HttpResponseMessage graphResponse = await httpClient.SendAsync(userRequest, Request.CallCancelled);
|
||||||
@@ -163,7 +164,7 @@ namespace Owin.Security.Providers.Onshape
|
|||||||
GenerateCorrelationId(properties);
|
GenerateCorrelationId(properties);
|
||||||
|
|
||||||
string authorizationEndpoint =
|
string authorizationEndpoint =
|
||||||
"https://partner.dev.onshape.com/oauth/authorize" +
|
"https://" + Options.Hostname + AuthorizationEndpoint +
|
||||||
"?response_type=code" +
|
"?response_type=code" +
|
||||||
"&client_id=" + Uri.EscapeDataString(Options.AppKey) +
|
"&client_id=" + Uri.EscapeDataString(Options.AppKey) +
|
||||||
"&redirect_uri=" + Uri.EscapeDataString(redirectUri);
|
"&redirect_uri=" + Uri.EscapeDataString(redirectUri);
|
||||||
|
|||||||
@@ -62,14 +62,9 @@ namespace Owin.Security.Providers.Onshape
|
|||||||
public string AppSecret { get; set; }
|
public string AppSecret { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Endpoint which is used to redirect users to request Onshape access
|
/// Hostname to use for the endpoints. Override this for connecting to the partner stack.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string AuthorizationEndpoint { get; set; }
|
public string Hostname { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Endpoint which is used to exchange code for access token
|
|
||||||
/// </summary>
|
|
||||||
public string TokenEndpoint { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the <see cref="IOnshapeAuthenticationProvider" /> used in the authentication events
|
/// Gets or sets the <see cref="IOnshapeAuthenticationProvider" /> used in the authentication events
|
||||||
@@ -96,6 +91,7 @@ namespace Owin.Security.Providers.Onshape
|
|||||||
Caption = Constants.DefaultAuthenticationType;
|
Caption = Constants.DefaultAuthenticationType;
|
||||||
AuthenticationMode = AuthenticationMode.Passive;
|
AuthenticationMode = AuthenticationMode.Passive;
|
||||||
BackchannelTimeout = TimeSpan.FromSeconds(60);
|
BackchannelTimeout = TimeSpan.FromSeconds(60);
|
||||||
|
Hostname = "cad.onshape.com";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -298,7 +298,14 @@ namespace OwinOAuthProvidersDemo
|
|||||||
|
|
||||||
//app.UseOnshapeAuthentication(
|
//app.UseOnshapeAuthentication(
|
||||||
// appKey: "",
|
// appKey: "",
|
||||||
// appSecret: "");
|
// appSecret: "",
|
||||||
|
// callbackPath: "/oauthRedirect");
|
||||||
|
//
|
||||||
|
//app.UseOnshapeAuthentication(
|
||||||
|
// appKey: "",
|
||||||
|
// appSecret: "",
|
||||||
|
// callbackPath: "/oauthRedirect",
|
||||||
|
// hostname: "partner.dev.onshape.com");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user