protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines) { base.ApplicationStartup(container, pipelines); //var configuration = new StatelessAuthenticationConfiguration(context => //{ // var token = context.AuthorizationHeaderToken(); // var authenticator = container.Resolve<IAuthenticateUser>(); // return string.IsNullOrWhiteSpace(token) ? null : authenticator != null ? authenticator.GetUserIdentity(token) : null; //}); //StatelessAuthentication.Enable(pipelines, configuration); pipelines.EnableStatelessAuthentication(container.Resolve<IAuthenticateUser>()); pipelines.EnableCors(); // cross origin resource sharing pipelines.EnableMonitoring(); //Make every request SSL based //pipelines.BeforeRequest += ctx => //{ // return (!ctx.Request.Url.Scheme.Equals("https", StringComparison.OrdinalIgnoreCase)) ? // (Response)HttpStatusCode.Unauthorized : // null; //}; }
protected override void RequestStartup(IWindsorContainer container, IPipelines pipelines, NancyContext context) { pipelines.BeforeRequest.AddItemToEndOfPipeline(nancyContext => { this.Info(() => "Api invoked at {0}[{1}]".FormatWith(nancyContext.Request.Method, nancyContext.Request.Url)); var token = ""; var cookie = nancyContext.Request.Headers.Cookie.FirstOrDefault(x => (x.Name + "").ToLower() == "token"); if (cookie != null) token = HttpUtility.UrlDecode(cookie.Value); nancyContext.Request.Headers.Authorization = "Token {0}".FormatWith(token); var user = container.Resolve<ITokenizer>().Detokenize(token, nancyContext, new DefaultUserIdentityResolver()); if (user != null) { nancyContext.CurrentUser = user; } return null; }); pipelines.AfterRequest.AddItemToEndOfPipeline(nancyContext => this.Info(() => "Api invoked successfully at {0}[{1}]".FormatWith(nancyContext.Request.Method, nancyContext.Request.Url))); pipelines.OnError.AddItemToEndOfPipeline((nancyContext, exception) => { this.Error(() => "Error on Api request {0}[{1}] => {2}".FormatWith(nancyContext.Request.Method, nancyContext.Request.Url, exception)); var errorResponse = ErrorResponse.FromException(exception); if (exception is LightstoneAutoException) errorResponse.StatusCode = HttpStatusCode.ImATeapot; return errorResponse; }); pipelines.EnableCors(); // cross origin resource sharing TokenAuthentication.Enable(pipelines, new TokenAuthenticationConfiguration(container.Resolve<ITokenizer>())); base.RequestStartup(container, pipelines, context); }
protected override void RequestStartup(TinyIoCContainer container, IPipelines pipelines, NancyContext context) { base.RequestStartup(container, pipelines, context); if (!_corsConfiguration.DisableCors) { pipelines.EnableCors(_corsConfiguration); } }
protected override void ApplicationStartup(ILifetimeScope applicationContainer, IPipelines pipelines) { // Add swagger info SwaggerMetadataProvider.SetInfo("Domain0", "v1", "Domain0 JWT auth service", new Contact { Name = "domain0" }); var modelCatalog = applicationContainer.Resolve <ISwaggerModelCatalog>(); modelCatalog.AddModel <IEnumerable <ModelValidationError> >(); modelCatalog.AddModel <ModelValidationError>(); modelCatalog.AddModel <RolePermission>(); modelCatalog.AddModel <UserPermission>(); modelCatalog.AddModel <UserRole>(); SwaggerAnnotationsConfig.ShowOnlyAnnotatedRoutes = true; applicationContainer.Update(builder => { builder .RegisterType <SwaggerAnnotationsProvider>() .As <ISwaggerMetadataProvider>(); builder .RegisterInstance(new MemoryCache( new MemoryCacheOptions { ExpirationScanFrequency = TimeSpan.FromMinutes(5), SizeLimit = thresholdSettings.CacheLimitMB * 1024 * 1024 })) .As <IMemoryCache>() .SingleInstance(); builder .RegisterType <RequestThrottleManager>() .As <IRequestThrottleManager>() .SingleInstance(); }); pipelines.EnableCors(); }
protected override void ApplicationStartup(IKernel container, IPipelines pipelines) { base.ApplicationStartup(container, pipelines); pipelines.EnableCors(); }