Пример #1
0
        public static void Register(HttpConfiguration config)
        {
            // Registere custom Route constraint for API Versioning (via ApiVersionConstraint class) with ASP.NET Web API
            // so that it gets applied to incoming requests.
            var constraintResolver = new DefaultInlineConstraintResolver();

            constraintResolver.ConstraintMap.Add("apiVersionConstraint", typeof(ApiVersionConstraint));
            config.MapHttpAttributeRoutes(constraintResolver);

            // Replace default implementation of controller selector to use our custom controller selector
            config.Services.Replace(typeof(IHttpControllerSelector), new NamespaceHttpControllerSelector(config));
            // config.EnableSystemDiagnosticsTracing(); // replacing this with our custom ITraceWriter
            config.Services.Replace(typeof(ITraceWriter), new SimpleTraceWriter(WebContainerManager.Get <ILogManager>()));
            config.Services.Add(typeof(IExceptionLogger), new SimpleExceptionLogger(WebContainerManager.Get <ILogManager>()));
            config.Services.Replace(typeof(IExceptionHandler), new GlobalExceptionHandler());
        }
Пример #2
0
        private void ConfigureOAuth(IAppBuilder app)
        {
            var serverOptions = new OAuthAuthorizationServerOptions()
            {
                AllowInsecureHttp         = true,
                TokenEndpointPath         = new PathString("/token"),
                AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
                Provider = new SimpleAuthorizationServerProvider(WebContainerManager.Get <IUsuarioRepository>())
            };

            app.UseOAuthAuthorizationServer(serverOptions);

            var bearerOptions = new OAuthBearerAuthenticationOptions();

            app.UseOAuthBearerAuthentication(bearerOptions);
        }
Пример #3
0
        public ICommand Resolve(CommandEnum commandEnum, object[] args)
        {
            if (args == null)
            {
                throw new ArgumentNullException(nameof(args));
            }

            if (!Enum.IsDefined(typeof(CommandEnum), commandEnum))
            {
                throw new InvalidEnumArgumentException(nameof(commandEnum), (int)commandEnum, typeof(CommandEnum));
            }

            var commandType = _commandsDictionary[commandEnum];

            return(WebContainerManager.Get <ICommand>(commandType.Name));
        }
Пример #4
0
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services
            var contstraintResolver = new DefaultInlineConstraintResolver();

            contstraintResolver.ConstraintMap.Add("apiVersionContraint", typeof(ApiVersionConstraint));


            // Web API routes
            config.MapHttpAttributeRoutes(contstraintResolver);
            config.Services.Replace(typeof(IHttpControllerSelector), new NamespaceHttpControllerSelector(config));
            //config.EnableSystemDiagnosticsTracing();
            //replaced by custom writer
            config.Services.Replace(typeof(ITraceWriter), new SimpleTraceWriter(WebContainerManager.Get <ILogManager>()));
            config.Services.Add(typeof(IExceptionLogger), new SimpleExceptionLogger(WebContainerManager.Get <ILogManager>()));
            config.Services.Replace(typeof(IExceptionHandler), new GlobalExceptionHandler());
        }
Пример #5
0
        public static void Register(HttpConfiguration config)
        {
            var constraintsResolver = new DefaultInlineConstraintResolver();

            constraintsResolver.ConstraintMap.Add("apiVersionConstraint", typeof
                                                  (ApiVersionConstraint));
            config.MapHttpAttributeRoutes(constraintsResolver);
            config.Services.Replace(typeof(IHttpControllerSelector),
                                    new NamespaceHttpControllerSelector(config));

            config.Services.Replace(typeof(ITraceWriter),
                                    new SimpleTraceWriter(WebContainerManager.Get <ILogManager>()));

            config.Services.Add(typeof(IExceptionLogger), new SimpleExceptionLogger(WebContainerManager.Get <ILogManager>()));

            config.Services.Replace(typeof(IExceptionHandler), new GlobalExceptionHandler());
        }
Пример #6
0
        public static void Register(HttpConfiguration config)
        {
            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
            config.Services.Add(typeof(IExceptionLogger), new SimpleExceptionLogger(WebContainerManager.Get <ILogManager>()));
            config.Services.Replace(typeof(IExceptionHandler), new GlobalExceptionHandler());
            config.Services.Replace(typeof(ITraceWriter), new SimpleTraceWriter(WebContainerManager.Get <ILogManager>()));

            config.EnableSystemDiagnosticsTracing();
        }
Пример #7
0
        private void RegisterHandlers()
        {
            var logManager  = WebContainerManager.Get <ILogManager>();
            var userSession = WebContainerManager.Get <IUserSession>();

            GlobalConfiguration.Configuration.MessageHandlers.Add(new BasicAuthenticationMessageHandler(logManager, WebContainerManager.Get <IBasicSecurityService>()));
            GlobalConfiguration.Configuration.MessageHandlers.Add(new TaskDataSecurityMessageHandler(logManager, userSession));
            var builder = new SecurityTokenBuilder();
            var reader  = new ConfigurationReader();

            GlobalConfiguration.Configuration.MessageHandlers.Add(
                new JwtAuthenticationMessageHandler
            {
                AllowedAudience = reader.AllowedAudience,
                Issuer          = reader.Issuer,
                SigningToken    = builder.CreateFromKey(reader.SymmetricKey)
            });
        }
Пример #8
0
        /// <summary>
        /// Register dependencies
        /// </summary>
        /// <param name="config">Config</param>
        protected virtual void RegisterDependencies()
        {
            var builder   = new ContainerBuilder();
            var container = builder.Build();

            this._containerManager = new WebContainerManager(container);

            //we create new instance of ContainerBuilder
            //because Build() or Update() method can only be called once on a ContainerBuilder.

            //dependencies
            var typeFinder = new WebAppTypeFinder();

            builder = new ContainerBuilder();

            //builder.RegisterInstance(config).As<MikeConfig>().SingleInstance();

            builder.RegisterInstance(this).As <IEngine>().SingleInstance();
            builder.RegisterInstance(typeFinder).As <ITypeFinder>().SingleInstance();
            builder.Update(container);

            //register dependencies provided by other assemblies
            builder = new ContainerBuilder();
            var drTypes     = typeFinder.FindClassesOfType <IDependencyRegistrar>();
            var drInstances = new List <IDependencyRegistrar>();

            foreach (var drType in drTypes)
            {
                drInstances.Add((IDependencyRegistrar)Activator.CreateInstance(drType));
            }
            //sort
            drInstances = drInstances.AsQueryable().OrderBy(t => t.Order).ToList();
            foreach (var dependencyRegistrar in drInstances)
            {
                dependencyRegistrar.Register(builder, typeFinder);
            }
            builder.Update(container);

            //set dependency resolver
            //DependencyResolver.SetResolver(new AutofacDependencyResolver(container));


            GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container);
        }
Пример #9
0
        public static void Register(HttpConfiguration config)
        {
//            // Web API configuration and services
//            // Configure Web API to use only bearer token authentication.
//            config.SuppressDefaultHostAuthentication();
//            config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));

            var constraintsResolver = new DefaultInlineConstraintResolver();

            constraintsResolver.ConstraintMap.Add("apiVersionConstraint", typeof(ApiVersionConstraint));
            config.MapHttpAttributeRoutes(constraintsResolver);

            config.Services.Replace(typeof(IHttpControllerSelector), new NamespaceHttpControllerSelector(config));
            config.EnableSystemDiagnosticsTracing();

            config.Services.Add(typeof(IExceptionLogger), new SimpleExceptionLogger(WebContainerManager.Get <ILogManager>()));
            config.Services.Replace(typeof(ITraceWriter), new SimpleTraceWriter(WebContainerManager.Get <ILogManager>()));
            config.Services.Replace(typeof(IExceptionHandler), new GlobalExceptionHandler());
        }
Пример #10
0
        public static void Register(HttpConfiguration config)
        {
            // http://stackoverflow.com/questions/12976352/asp-net-web-api-model-binding-not-working-with-xml-data-on-post
            config.Formatters.XmlFormatter.UseXmlSerializer = true;

            config.EnableCors();

            ConfigureRouting(config);

            // To disable tracing in your application, please comment out or remove the following line of code
            // For more information, refer to: http://www.asp.net/web-api
            config.Services.Replace(typeof(ITraceWriter),
                                    new SimpleTraceWriter(WebContainerManager.Get <ILogManager>()));

            config.Services.Add(typeof(IExceptionLogger),
                                new SimpleExceptionLogger(WebContainerManager.Get <ILogManager>()));

            config.Services.Replace(typeof(IExceptionHandler), new GlobalExceptionHandler());
        }
Пример #11
0
        public static void Register(HttpConfiguration config)
        {
            var constraintsResolver = new DefaultInlineConstraintResolver();

            constraintsResolver.ConstraintMap.Add("apiVersionConstraint", typeof(ApiVersionConstraint));

            config.MapHttpAttributeRoutes(constraintsResolver);

            config.Services.Replace(typeof(IHttpControllerSelector), new NamespaceHttpControllerSelector(config));

            config.Services.Add(typeof(IExceptionLogger),
                                new SimpleExceptionLogger(WebContainerManager.Get <ILogManager>()));
            config.Services.Replace(typeof(IExceptionHandler), new GlobalExceptionHandler());
            config.MessageHandlers.Add(new TokenValidationHandler());

            config.Routes.MapHttpRoute(
                name: "CatchAllUrlTo404",
                routeTemplate: "{*uri}"
                );
        }
Пример #12
0
        private static void ConfigureRouting(HttpConfiguration config)
        {
            config.Routes.MapHttpRoute(
                name: "legacyRoute",
                routeTemplate: "TeamTaskService.asmx",
                defaults: null,
                constraints: null,
                handler: new LegacyAuthenticationMessageHandler(WebContainerManager.Get <ILogManager>())
            {
                InnerHandler = new LegacyMessageHandler {
                    InnerHandler = new HttpControllerDispatcher(config)
                }
            });

            var constraintsResolver = new DefaultInlineConstraintResolver();

            constraintsResolver.ConstraintMap.Add("apiVersionConstraint", typeof(ApiVersionConstraint));
            config.MapHttpAttributeRoutes(constraintsResolver);

            config.Services.Replace(typeof(IHttpControllerSelector),
                                    new NamespaceHttpControllerSelector(config));
        }
        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });

            if (IsEmailAddressInvalid(context.UserName))
            {
                context.SetError("invalid_grant", "incorrect_email");
                return;
            }

            IAccountRepository repository = WebContainerManager.Get <IAccountRepository>();

            IdentityUser emailRegistered = await repository.FindByEmailAsync(context.UserName);

            if (emailRegistered == null)
            {
                context.SetError("invalid_grant", "email_not_registered");
                return;
            }

            IdentityUser user = await repository.FindUser(context.UserName, context.Password);

            repository.Dispose();

            if (user == null)
            {
                context.SetError("invalid_grant", "incorrect_password");
                return;
            }

            var identity = new ClaimsIdentity(context.Options.AuthenticationType);

            identity.AddClaim(new Claim("sub", context.UserName));
            identity.AddClaim(new Claim("role", "user"));

            context.Validated(identity);
        }
 public SimpleAuthorizationServerProvider(Func <UserManager <ApplicationUser> > userManagerFactory)
 {
     _userManagerFactory = userManagerFactory;
     _dbContext          = WebContainerManager.Get <IDbContext>();
 }
        public void GetContainer_Returns_Current_Dependency_Resolver()
        {
            IDependencyResolver dependencyResolver = WebContainerManager.GetContainer();

            Assert.IsInstanceOf <IDependencyResolver>(dependencyResolver);
        }
Пример #16
0
 public UserAuditAttribute() : this(WebContainerManager.Get <ILogManager>(), WebContainerManager.Get <IUserSession>())
 {
 }
Пример #17
0
 protected void Application_Start()
 {
     GlobalConfiguration.Configure(WebApiConfig.Register);
     new AutoMapperConfigurator().Configure(WebContainerManager.GetAll <IAutoMapperTypeConfigurator>());
 }
Пример #18
0
        private void ConfigureFormatters()
        {
            var legacyFormatter = (MediaTypeFormatter)WebContainerManager.Get <ILegacyMessageTypeFormatter>();

            GlobalConfiguration.Configuration.Formatters.Insert(0, legacyFormatter);
        }
Пример #19
0
 public ValidateTaskUpdateRequestAttribute()
     : this(WebContainerManager.Get <ILogManager>())
 {
 }
Пример #20
0
 private void RegisterHandlers()
 {
     var logManager  = WebContainerManager.Get <ILogManager>();
     var userSession = WebContainerManager.Get <IUserSession>();
 }
        public void Get_Returns_Instance_Of_Class()
        {
            ITestableInterface testable = WebContainerManager.Get <ITestableInterface>();

            Assert.IsInstanceOf <TestableClass>(testable);
        }
Пример #22
0
        private void RegisterHandlers()
        {
            var logManager  = WebContainerManager.Get <ILogManager>();
            var userSession = WebContainerManager.Get <IUserSession>();

            GlobalConfiguration.Configuration.MessageHandlers.Add(new BasicAuthenticationMessageHandler(logManager, WebContainerManager.Get <IBasicSecurityService>()));
            GlobalConfiguration.Configuration.MessageHandlers.Add(new EventDataSecurityMessageHandler(logManager, userSession));
        }
Пример #23
0
 public static void Register(HttpConfiguration config)
 {
     ConfigureRouting(config);
     //config.EnableSystemDiagnosticsTracing();
     config.Services.Replace(typeof(ITraceWriter), new SimpleTraceWriter(WebContainerManager.Get <ILogManager>()));
 }