using System; using OAuth.AspNet.AuthServer; namespace Microsoft.AspNet.Builder { /// /// Extension methods to add Authorization Server capabilities to an OWIN pipeline /// public static class OAuthAuthorizationServerExtensions { /// /// Adds OAuth2 Authorization Server capabilities to an OWIN web application. This middleware /// performs the request processing for the Authorize and Token endpoints defined by the OAuth2 specification. /// See also http://tools.ietf.org/html/rfc6749 /// /// The web application builder /// Options which control the behavior of the Authorization Server. /// The application builder public static IApplicationBuilder UseOAuthAuthorizationServer(this IApplicationBuilder app, OAuthAuthorizationServerOptions options) { if (app == null) throw new NullReferenceException($"The extension method {nameof(OAuthAuthorizationServerExtensions.UseOAuthAuthorizationServer)} was called on a null reference to a {nameof(IApplicationBuilder)}"); if (options == null) throw new ArgumentNullException(nameof(options)); return app.UseMiddleware(options); } /// /// Adds OAuth2 Authorization Server capabilities to an OWIN web application. This middleware /// performs the request processing for the Authorize and Token endpoints defined by the OAuth2 specification. /// See also http://tools.ietf.org/html/rfc6749 /// /// The web application builder /// Options which control the behavior of the Authorization Server. /// The application builder public static IApplicationBuilder UseOAuthAuthorizationServer(this IApplicationBuilder app, Action configureOptions) { if (app == null) throw new NullReferenceException($"The extension method {nameof(OAuthAuthorizationServerExtensions.UseOAuthAuthorizationServer)} was called on a null reference to a {nameof(IApplicationBuilder)}"); if (configureOptions == null) throw new ArgumentNullException(nameof(configureOptions)); var options = new OAuthAuthorizationServerOptions(); if (configureOptions != null) configureOptions(options); return app.UseOAuthAuthorizationServer(options); } } }