using System.Configuration; using System.Web; using IdentityServer3.AccessTokenValidation; using Kreta.BusinessLogic; using Kreta.Naplo.WebApi; using Kreta.Web.Logging.Logger; using Microsoft.Owin; using Owin; using SimpleInjector; using SimpleInjector.Integration.WebApi; using SimpleInjector.Lifestyles; using HttpGlobalConfiguration = System.Web.Http.GlobalConfiguration; [assembly: OwinStartup(typeof(Startup))] namespace Kreta.Naplo.WebApi { public static class Startup { public static void Configuration(IAppBuilder appBuilder) { HttpGlobalConfiguration.Configure(WebApiConfig.Register); log4net.Config.XmlConfigurator.Configure(); var container = new Container(); container.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle(); container.InjectNaploMobileBusinessLogic(); container.Register(() => TraceLoggerFactory.Create(HttpContext.Current), Lifestyle.Scoped); container.RegisterWebApiControllers(HttpGlobalConfiguration.Configuration); container.Verify(); HttpGlobalConfiguration.Configuration.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container); appBuilder.UseIdentityServerBearerTokenAuthentication( new IdentityServerBearerTokenAuthenticationOptions { ValidationMode = ValidationMode.Local, Authority = ConfigurationManager.AppSettings["idp:Authority"], RequiredScopes = ConfigurationManager.AppSettings["idp:RequiredScopes"].Split(';') }) .UseWebApi(HttpGlobalConfiguration.Configuration); } } }