/// <inheritdoc /> public async Task <IAuthorizationServer> CreateAuthorizationServerAsync(IAuthorizationServer authorizationServer, CancellationToken cancellationToken = default(CancellationToken)) => await PostAsync <AuthorizationServer>(new HttpRequest { Uri = "/api/v1/authorizationServers", Verb = HttpVerb.Post, Payload = authorizationServer, }, cancellationToken).ConfigureAwait(false);
/// <inheritdoc /> public async Task <IAuthorizationServer> UpdateAuthorizationServerAsync(IAuthorizationServer authorizationServer, string authServerId, CancellationToken cancellationToken = default(CancellationToken)) => await PutAsync <AuthorizationServer>(new HttpRequest { Uri = "/api/v1/authorizationServers/{authServerId}", Verb = HttpVerb.Put, Payload = authorizationServer, PathParameters = new Dictionary <string, object>() { ["authServerId"] = authServerId, }, }, cancellationToken).ConfigureAwait(false);
/// <summary> /// Creates a serializer/deserializer for this type. /// </summary> /// <param name="authorizationServer">The authorization server that will be serializing/deserializing this authorization code. Must not be null.</param> /// <returns>A DataBag formatter.</returns> internal static IDataBagFormatter<AuthorizationCode> CreateFormatter(IAuthorizationServer authorizationServer) { Requires.NotNull(authorizationServer, "authorizationServer"); Contract.Ensures(Contract.Result<IDataBagFormatter<AuthorizationCode>>() != null); return new UriStyleMessageFormatter<AuthorizationCode>( authorizationServer.CryptoKeyStore, AuthorizationCodeKeyBucket, signed: true, encrypted: true, compressed: false, maximumAge: AuthorizationCodeBindingElement.MaximumMessageAge, decodeOnceOnly: authorizationServer.VerificationCodeNonceStore); }
/// <summary> /// Creates a serializer/deserializer for this type. /// </summary> /// <param name="authorizationServer">The authorization server that will be serializing/deserializing this authorization code. Must not be null.</param> /// <returns>A DataBag formatter.</returns> internal static IDataBagFormatter<AuthorizationCode> CreateFormatter(IAuthorizationServer authorizationServer) { Requires.NotNull(authorizationServer, "authorizationServer"); Contract.Ensures(Contract.Result<IDataBagFormatter<AuthorizationCode>>() != null); var cryptoStore = authorizationServer.CryptoKeyStore; ErrorUtilities.VerifyHost(cryptoStore != null, OAuthStrings.ResultShouldNotBeNull, authorizationServer.GetType(), "CryptoKeyStore"); return new UriStyleMessageFormatter<AuthorizationCode>( cryptoStore, AuthorizationCodeKeyBucket, signed: true, encrypted: true, compressed: false, maximumAge: MaximumMessageAge, decodeOnceOnly: authorizationServer.NonceStore); }
/// <summary> /// Initializes a new instance of the <see cref="AuthorizationServer"/> class. /// </summary> /// <param name="authorizationServer">The authorization server.</param> public AuthorizationServer(IAuthorizationServer authorizationServer) { Contract.Requires<ArgumentNullException>(authorizationServer != null); this.OAuthChannel = new OAuth2AuthorizationServerChannel(authorizationServer); }
/// <summary> /// Initializes a new instance of the <see cref="OAuth2AuthorizationServerChannel"/> class. /// </summary> /// <param name="authorizationServer">The authorization server.</param> protected internal OAuth2AuthorizationServerChannel(IAuthorizationServer authorizationServer) : base(MessageTypes, InitializeBindingElements(authorizationServer)) { Requires.NotNull(authorizationServer, "authorizationServer"); this.AuthorizationServer = authorizationServer; }
/// <summary> /// Initializes the binding elements for the OAuth channel. /// </summary> /// <param name="authorizationServer">The authorization server.</param> /// <returns> /// An array of binding elements used to initialize the channel. /// </returns> private static IChannelBindingElement[] InitializeBindingElements(IAuthorizationServer authorizationServer) { Requires.NotNull(authorizationServer, "authorizationServer"); var bindingElements = new List<IChannelBindingElement>(); // The order they are provided is used for outgoing messgaes, and reversed for incoming messages. bindingElements.Add(new MessageValidationBindingElement()); bindingElements.Add(new TokenCodeSerializationBindingElement()); return bindingElements.ToArray(); }
/// <summary> /// Initializes the binding elements for the OAuth channel. /// </summary> /// <param name="authorizationServer">The authorization server.</param> /// <returns> /// An array of binding elements used to initialize the channel. /// </returns> private static IChannelBindingElement[] InitializeBindingElements(IAuthorizationServer authorizationServer) { Requires.NotNull(authorizationServer, "authorizationServer"); var bindingElements = new List<IChannelBindingElement>(); bindingElements.Add(new AuthServerAllFlowsBindingElement()); bindingElements.Add(new AuthorizationCodeBindingElement()); bindingElements.Add(new AccessTokenBindingElement()); bindingElements.Add(new AccessRequestBindingElement()); return bindingElements.ToArray(); }
/// <summary> /// Initializes a new instance of the <see cref="AuthorizationServer"/> class. /// </summary> /// <param name="authorizationServer">The authorization server.</param> public AuthorizationServer(IAuthorizationServer authorizationServer) { Requires.NotNull(authorizationServer, "authorizationServer"); this.Channel = new OAuth2AuthorizationServerChannel(authorizationServer); }
/// <summary> /// Initializes the binding elements for the OAuth channel. /// </summary> /// <param name="authorizationServer">The authorization server.</param> /// <returns> /// An array of binding elements used to initialize the channel. /// </returns> private static IChannelBindingElement[] InitializeBindingElements(IAuthorizationServer authorizationServer) { Contract.Requires<ArgumentNullException>(authorizationServer != null); var bindingElements = new List<IChannelBindingElement>(); bindingElements.Add(new AuthServerAllFlowsBindingElement()); bindingElements.Add(new AuthorizationCodeBindingElement()); bindingElements.Add(new AccessRequestBindingElement()); return bindingElements.ToArray(); }
/// <summary> /// Initializes a new instance of the <see cref="OAuth2AuthorizationServerChannel"/> class. /// </summary> /// <param name="authorizationServer">The authorization server.</param> protected internal OAuth2AuthorizationServerChannel(IAuthorizationServer authorizationServer) : base(InitializeBindingElements(authorizationServer)) { Contract.Requires<ArgumentNullException>(authorizationServer != null); this.AuthorizationServer = authorizationServer; }