public void Configure(HttpListener listener, IRavenHttpConfiguration config) { if (string.Equals(config.AuthenticationMode, "Windows",StringComparison.InvariantCultureIgnoreCase) == false) return; switch (config.AnonymousUserAccessMode) { case AnonymousUserAccessMode.None: listener.AuthenticationSchemes = AuthenticationSchemes.IntegratedWindowsAuthentication; break; case AnonymousUserAccessMode.All: listener.AuthenticationSchemes = AuthenticationSchemes.IntegratedWindowsAuthentication | AuthenticationSchemes.Anonymous; listener.AuthenticationSchemeSelectorDelegate = request => { if (request.RawUrl.StartsWith("/admin", StringComparison.InvariantCultureIgnoreCase)) return AuthenticationSchemes.IntegratedWindowsAuthentication; return AuthenticationSchemes.Anonymous; }; break; case AnonymousUserAccessMode.Get: listener.AuthenticationSchemes = AuthenticationSchemes.IntegratedWindowsAuthentication | AuthenticationSchemes.Anonymous; listener.AuthenticationSchemeSelectorDelegate = request => { return AbstractRequestAuthorizer.IsGetRequest(request.HttpMethod, request.Url.AbsolutePath) ? AuthenticationSchemes.Anonymous | AuthenticationSchemes.IntegratedWindowsAuthentication : AuthenticationSchemes.IntegratedWindowsAuthentication; }; break; default: throw new ArgumentException("Cannot understand access mode: " + config.AnonymousUserAccessMode); } }
protected HttpServer(IRavenHttpConfiguration configuration, IResourceStore resourceStore) { DefaultResourceStore = resourceStore; DefaultConfiguration = configuration; configuration.Container.SatisfyImportsOnce(this); foreach (var responder in RequestResponders) { responder.Value.Initialize(() => currentDatabase.Value, () => currentConfiguration.Value, () => currentTenantId.Value, this); } switch (configuration.AuthenticationMode.ToLowerInvariant()) { case "windows": requestAuthorizer = new WindowsRequestAuthorizer(); break; case "oauth": requestAuthorizer = new OAuthRequestAuthorizer(); break; default: throw new InvalidOperationException( string.Format("Unknown AuthenticationMode {0}. Options are Windows and OAuth", configuration.AuthenticationMode)); } requestAuthorizer.Initialize(() => currentDatabase.Value, () => currentConfiguration.Value, () => currentTenantId.Value, this); }
private void HandleRequest(GetRequest[] requests, GetResponse[] results, int i, IHttpContext context, IRavenHttpConfiguration ravenHttpConfiguration, MultiGetHttpContext[] contexts) { var request = requests[i]; if (request == null) return; server.HandleActualRequest(contexts[i]); results[i] = contexts[i].Complete(); }
public MultiGetHttpContext(IRavenHttpConfiguration configuration, IHttpContext realContext, GetRequest req) { this.configuration = configuration; this.realContext = realContext; getResponse = new GetResponse(); Request = new MultiGetHttpRequest(req, realContext.Request); Response = new MultiGetHttpResponse(getResponse, realContext.Response); }
public MultiGetHttpContext(IRavenHttpConfiguration configuration, IHttpContext realContext, GetRequest req, string tenantId) { this.configuration = configuration; this.realContext = realContext; this.tenantId = tenantId; getResponse = new GetResponse(); Request = new MultiGetHttpRequest(req, realContext.Request); Response = new MultiGetHttpResponse(getResponse, realContext.Response); }
public HttpListenerContextAdpater(HttpListenerContext ctx, IRavenHttpConfiguration configuration) { this.ctx = ctx; this.configuration = configuration; Request = new HttpListenerRequestAdapter(ctx.Request); ResponseInternal = new HttpListenerResponseAdapter(ctx.Response); SetMaxAge(); }
private void HandleRequest(GetRequest[] requests, GetResponse[] results, int i, IHttpContext context, IRavenHttpConfiguration ravenHttpConfiguration) { var request = requests[i]; if (request == null) return; var ctx = new MultiGetHttpContext(ravenHttpConfiguration, context, request, TenantId); server.HandleActualRequest(ctx); results[i] = ctx.Complete(); }
public HttpContextAdapter(HttpContext context, IRavenHttpConfiguration configuration) { this.context = context; this.configuration = configuration; request = new HttpRequestAdapter(context.Request); response = new HttpResponseAdapter(context.Response); SetMaxAge(); }
protected HttpServer(IRavenHttpConfiguration configuration, IResourceStore resourceStore) { DefaultResourceStore = resourceStore; DefaultConfiguration = configuration; configuration.Container.SatisfyImportsOnce(this); foreach (var requestResponder in RequestResponders) { requestResponder.Value.Initialize(() => currentDatabase.Value, () => currentConfiguration.Value); } }
public void Configure(HttpListener listener, IRavenHttpConfiguration config) { if (string.Equals(config.AuthenticationMode, "OAuth", StringComparison.InvariantCultureIgnoreCase) == false) return; listener.AuthenticationSchemes = AuthenticationSchemes.Anonymous | AuthenticationSchemes.Basic; listener.AuthenticationSchemeSelectorDelegate = request => { return request.RawUrl.StartsWith("/OAuth/AccessToken", StringComparison.InvariantCultureIgnoreCase) ? AuthenticationSchemes.Basic | AuthenticationSchemes.Anonymous : AuthenticationSchemes.Anonymous; }; }
public void Configure(HttpListener listener, IRavenHttpConfiguration config) { if (string.Equals(config.AuthenticationMode, "OAuth", StringComparison.InvariantCultureIgnoreCase) == false) { return; } listener.AuthenticationSchemes = AuthenticationSchemes.Anonymous | AuthenticationSchemes.Basic; listener.AuthenticationSchemeSelectorDelegate = request => { return(request.RawUrl.StartsWith("/OAuth/AccessToken", StringComparison.InvariantCultureIgnoreCase) ? AuthenticationSchemes.Basic | AuthenticationSchemes.Anonymous : AuthenticationSchemes.Anonymous); }; }
public void Configure(HttpListener listener, IRavenHttpConfiguration config) { if (string.Equals(config.AuthenticationMode, "Windows", StringComparison.InvariantCultureIgnoreCase) == false) { return; } switch (config.AnonymousUserAccessMode) { case AnonymousUserAccessMode.None: listener.AuthenticationSchemes = AuthenticationSchemes.IntegratedWindowsAuthentication; break; case AnonymousUserAccessMode.All: listener.AuthenticationSchemes = AuthenticationSchemes.IntegratedWindowsAuthentication | AuthenticationSchemes.Anonymous; listener.AuthenticationSchemeSelectorDelegate = request => { if (request.RawUrl.StartsWith("/admin", StringComparison.InvariantCultureIgnoreCase)) { return(AuthenticationSchemes.IntegratedWindowsAuthentication); } return(AuthenticationSchemes.Anonymous); }; break; case AnonymousUserAccessMode.Get: listener.AuthenticationSchemes = AuthenticationSchemes.IntegratedWindowsAuthentication | AuthenticationSchemes.Anonymous; listener.AuthenticationSchemeSelectorDelegate = request => { return(AbstractRequestAuthorizer.IsGetRequest(request.HttpMethod, request.Url.AbsolutePath) ? AuthenticationSchemes.Anonymous | AuthenticationSchemes.IntegratedWindowsAuthentication : AuthenticationSchemes.IntegratedWindowsAuthentication); }; break; default: throw new ArgumentException("Cannot understand access mode: " + config.AnonymousUserAccessMode); } }
private void Executerequests( IHttpContext context, IRavenHttpConfiguration ravenHttpConfiguration, GetResponse[] results, GetRequest[] requests) { if ("yes".Equals(context.Request.QueryString["parallel"], StringComparison.InvariantCultureIgnoreCase)) { Parallel.For(0, requests.Length, position => HandleRequest(requests, results, position, context, ravenHttpConfiguration) ); } else { for (var i = 0; i < requests.Length; i++) { HandleRequest(requests, results, i, context, ravenHttpConfiguration); } } }
private void Executerequests( IHttpContext context, IRavenHttpConfiguration ravenHttpConfiguration, GetResponse[] results, GetRequest[] requests) { // Need to create this here to preserve any current TLS data that we have to copy var contexts = requests.Select(request => new MultiGetHttpContext(ravenHttpConfiguration, context, request, TenantId)) .ToArray(); if ("yes".Equals(context.Request.QueryString["parallel"], StringComparison.InvariantCultureIgnoreCase)) { Parallel.For(0, requests.Length, position => HandleRequest(requests, results, position, context, ravenHttpConfiguration, contexts) ); } else { for (var i = 0; i < requests.Length; i++) { HandleRequest(requests, results, i, context, ravenHttpConfiguration, contexts); } } }
public RavenDbHttpServer(IRavenHttpConfiguration configuration, IResourceStore database) : base(configuration, database) { RemoveTenantDatabase.Occured.Subscribe(TenantDatabaseRemoved); }
public MultiGetHttpContext(IRavenHttpConfiguration configuration, IHttpContext realContext, GetRequest req, string tenantId) { this.configuration = configuration; this.realContext = realContext; this.tenantId = tenantId; getResponse = new GetResponse(); if (req == null) return; Request = new MultiGetHttpRequest(req, realContext.Request); Response = new MultiGetHttpResponse(getResponse, realContext.Response); }
private void HandleRequest(GetRequest[] requests, GetResponse[] results, int i, IHttpContext context, IRavenHttpConfiguration ravenHttpConfiguration) { var request = requests[i]; if (request == null) { return; } var ctx = new MultiGetHttpContext(ravenHttpConfiguration, context, request, TenantId); server.HandleActualRequest(ctx); results[i] = ctx.Complete(); }
public RavenDbHttpServer(IRavenHttpConfiguration configuration, IResourceStore database) : base(configuration, database) { }