Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public HttpServer(InMemoryRavenConfiguration configuration, DocumentDatabase resourceStore)
        {
            RegisterHttpEndpointTarget();

            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);
            RemoveTenantDatabase.Occured.Subscribe(TenantDatabaseRemoved);
        }
Ejemplo n.º 3
0
        public HttpServer(InMemoryRavenConfiguration configuration, DocumentDatabase resourceStore)
        {
            HttpEndpointRegistration.RegisterHttpEndpointTarget();

            SystemDatabase      = resourceStore;
            SystemConfiguration = configuration;

            int val;

            if (int.TryParse(configuration.Settings["Raven/Tenants/MaxIdleTimeForTenantDatabase"], out val) == false)
            {
                val = 900;
            }
            maxTimeDatabaseCanBeIdle = TimeSpan.FromSeconds(val);
            if (int.TryParse(configuration.Settings["Raven/Tenants/FrequnecyToCheckForIdleDatabases"], out val) == false)
            {
                val = 60;
            }
            frequnecyToCheckForIdleDatabases = TimeSpan.FromSeconds(val);

            configuration.Container.SatisfyImportsOnce(this);

            InitializeRequestResponders(SystemDatabase);

            requestAuthorizer = new MixedModeRequestAuthorizer();

            requestAuthorizer.Initialize(() => currentDatabase.Value, () => currentConfiguration.Value, () => currentTenantId.Value, this);
        }
Ejemplo n.º 4
0
        public HttpServer(InMemoryRavenConfiguration configuration, DocumentDatabase resourceStore)
        {
            HttpEndpointRegistration.RegisterHttpEndpointTarget();

            DefaultResourceStore = resourceStore;
            DefaultConfiguration = configuration;

            int val;

            if (int.TryParse(configuration.Settings["Raven/Tenants/MaxIdleTimeForTenantDatabase"], out val) == false)
            {
                val = 900;
            }
            maxTimeDatabaseCanBeIdle = TimeSpan.FromSeconds(val);
            if (int.TryParse(configuration.Settings["Raven/Tenants/FrequnecyToCheckForIdleDatabases"], out val) == false)
            {
                val = 60;
            }
            frequnecyToCheckForIdleDatabases = TimeSpan.FromSeconds(val);

            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;

            case "noauth":
                requestAuthorizer = new NoAuthRequestAuthorizer();
                break;

            default:
                throw new InvalidOperationException(
                          string.Format("Unknown AuthenticationMode {0}. Options are Windows, OAuth, and NoAuth", configuration.AuthenticationMode));
            }

            requestAuthorizer.Initialize(() => currentDatabase.Value, () => currentConfiguration.Value, () => currentTenantId.Value, this);
            RemoveTenantDatabase.Occured.Subscribe(TenantDatabaseRemoved);
        }