public void OnAuthorization_NotAuthenticated_RedirectsToLogin()
        {
            AuthorizationContext action = new AuthorizationContext();

            action.ActionDescriptor = Substitute.For <ActionDescriptor>();
            HttpContextBase context = HttpContextFactory.CreateHttpContextBase();
            AuthorizationFilterAttribute attribute = new AuthorizationFilterAttribute {
                Users = "None"
            };

            action.RouteData = context.Request.RequestContext.RouteData;
            action.RouteData.Values["test"] = "Test";
            action.HttpContext = context;

            attribute.OnAuthorization(action);

            RouteValueDictionary actual = (action.Result as RedirectToRouteResult).RouteValues;

            Assert.Equal(action.RouteData.Values["language"], actual["language"]);
            Assert.Equal(action.HttpContext.Request.RawUrl, actual["returnUrl"]);
            Assert.Equal("Auth", actual["controller"]);
            Assert.Equal("Login", actual["action"]);
            Assert.Equal("", actual["area"]);
            Assert.Equal(5, actual.Count);
        }
Exemplo n.º 2
0
        public void BeforeEach()
        {
            fixture = new Fixture().Customize(new AutoMoqCustomization());
            fixture.Inject(new UriScheme("http"));
            authorizationHdeaderKey = "Authorization";
            token              = TokenSchema + "SomeRandomToken";
            expectedSession    = fixture.Create <Session>();
            tracerId           = fixture.Create <string>();
            url                = "//autofixture.com";
            moqSessionsService = new Mock <ISessionsService>(MockBehavior.Strict);
            moqConfiguration   = new Mock <IConfigurationManager>(MockBehavior.Strict);
            moqConfiguration.SetupGet(x => x.AuthenticationSchema).Returns(TokenSchema);
            moqSessionsService.Setup(x => x.GetSessionByTokenAsync(It.IsAny <string>())).Returns(Task.FromResult(expectedSession));
            moqServiceProvider = new Mock <IServiceProvider>(MockBehavior.Strict);
            moqServiceProvider.Setup(x => x.GetService(typeof(ISessionsService))).Returns(moqSessionsService.Object);
            moqServiceProvider.Setup(x => x.GetService(typeof(IConfigurationManager))).Returns(moqConfiguration.Object);
            moqHttpContext = new Mock <HttpContext>(MockBehavior.Default);
            moqHttpContext.Setup(x => x.Request.Headers[authorizationHdeaderKey]).Returns(token);
            moqHttpContext.Setup(x => x.Request.Path).Returns(url);
            moqHttpContext.Setup(x => x.Request.HttpContext.TraceIdentifier).Returns(tracerId);
            moqHttpContext.Setup(x => x.RequestServices).Returns(moqServiceProvider.Object);


            moqActionDescriptor  = new Mock <ActionDescriptor>();
            actionContext        = new ActionContext(moqHttpContext.Object, new RouteData(), moqActionDescriptor.Object);
            filtersMetadata      = new List <IFilterMetadata>();
            authorizationContext = new AuthorizationFilterContext(actionContext, filtersMetadata);
            authorizationFilter  = new AuthorizationFilterAttribute();
        }
        public AuthorizationFilterAttributeTracer(AuthorizationFilterAttribute innerFilter, ITraceWriter traceWriter)
        {
            Contract.Assert(innerFilter != null);
            Contract.Assert(traceWriter != null);

            _innerFilter = innerFilter;
            _traceStore  = traceWriter;
        }
        public void Decorator_GetInner_On_AuthorizationFilterAttributeTracer_Returns_AuthorizationFilterAttribute()
        {
            // Arrange
            AuthorizationFilterAttribute       expectedInner    = new Mock <AuthorizationFilterAttribute>().Object;
            AuthorizationFilterAttributeTracer productUnderTest = new AuthorizationFilterAttributeTracer(expectedInner, new TestTraceWriter());

            // Act
            AuthorizationFilterAttribute actualInner = Decorator.GetInner(productUnderTest as AuthorizationFilterAttribute);

            // Assert
            Assert.Same(expectedInner, actualInner);
        }
        public void Inner_Property_On_AuthorizationFilterAttributeTracer_Returns_AuthorizationFilterAttribute()
        {
            // Arrange
            AuthorizationFilterAttribute       expectedInner    = new Mock <AuthorizationFilterAttribute>().Object;
            AuthorizationFilterAttributeTracer productUnderTest = new AuthorizationFilterAttributeTracer(expectedInner, new TestTraceWriter());

            // Act
            AuthorizationFilterAttribute actualInner = productUnderTest.Inner;

            // Assert
            Assert.Same(expectedInner, actualInner);
        }
Exemplo n.º 6
0
        public static IEnumerable <IFilter> CreateFilterTracers(IFilter filter, ITraceWriter traceWriter)
        {
            List <IFilter> filters = new List <IFilter>();
            bool           addedActionAttributeTracer        = false;
            bool           addedAuthorizationAttributeTracer = false;
            bool           addedExceptionAttributeTracer     = false;

            ActionFilterAttribute actionFilterAttribute = filter as ActionFilterAttribute;

            if (actionFilterAttribute != null)
            {
                filters.Add(new ActionFilterAttributeTracer(actionFilterAttribute, traceWriter));
                addedActionAttributeTracer = true;
            }

            AuthorizationFilterAttribute authorizationFilterAttribute = filter as AuthorizationFilterAttribute;

            if (authorizationFilterAttribute != null)
            {
                filters.Add(new AuthorizationFilterAttributeTracer(authorizationFilterAttribute, traceWriter));
                addedAuthorizationAttributeTracer = true;
            }

            ExceptionFilterAttribute exceptionFilterAttribute = filter as ExceptionFilterAttribute;

            if (exceptionFilterAttribute != null)
            {
                filters.Add(new ExceptionFilterAttributeTracer(exceptionFilterAttribute, traceWriter));
                addedExceptionAttributeTracer = true;
            }

            // Do not add an IActionFilter tracer if we already added an ActionFilterAttribute tracer
            IActionFilter actionFilter = filter as IActionFilter;

            if (actionFilter != null && !addedActionAttributeTracer)
            {
                filters.Add(new ActionFilterTracer(actionFilter, traceWriter));
            }

            // Do not add an IAuthorizationFilter tracer if we already added an AuthorizationFilterAttribute tracer
            IAuthorizationFilter authorizationFilter = filter as IAuthorizationFilter;

            if (authorizationFilter != null && !addedAuthorizationAttributeTracer)
            {
                filters.Add(new AuthorizationFilterTracer(authorizationFilter, traceWriter));
            }

            // Do not add an IExceptionFilter tracer if we already added an ExceptoinFilterAttribute tracer
            IExceptionFilter exceptionFilter = filter as IExceptionFilter;

            if (exceptionFilter != null && !addedExceptionAttributeTracer)
            {
                filters.Add(new ExceptionFilterTracer(exceptionFilter, traceWriter));
            }

            if (filters.Count == 0)
            {
                filters.Add(new FilterTracer(filter, traceWriter));
            }

            return(filters);
        }
Exemplo n.º 7
0
 public AuthorizationFilterAttributeTracer(AuthorizationFilterAttribute innerFilter, ITraceWriter traceStore)
 {
     _innerFilter = innerFilter;
     _traceStore  = traceStore;
 }