43 lines
1.7 KiB
C#
43 lines
1.7 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|