Example #1
0
        /// <summary>
        /// Perform any initialisation tasks
        /// </summary>
        /// <param name="pipelines">Application pipelines</param>
        public void Initialize(IApplicationPipelines pipelines)
        {
            pipelines.AfterRequest.AddItemToEndOfPipeline(
                context =>
            {
                if (context.Response == null || context.Response.Cookies == null)
                {
                    return;
                }

                if (context.Items.ContainsKey(CsrfToken.DEFAULT_CSRF_KEY))
                {
                    context.Response.Cookies.Add(new NancyCookie(CsrfToken.DEFAULT_CSRF_KEY, (string)context.Items[CsrfToken.DEFAULT_CSRF_KEY], true));
                    return;
                }

                if (context.Request.Cookies.ContainsKey(CsrfToken.DEFAULT_CSRF_KEY))
                {
                    context.Items[CsrfToken.DEFAULT_CSRF_KEY] = HttpUtility.UrlDecode(context.Request.Cookies[CsrfToken.DEFAULT_CSRF_KEY]);
                    return;
                }

                var token = new CsrfToken
                {
                    CreatedDate = DateTime.Now,
                };
                token.CreateRandomBytes();
                token.CreateHmac(CryptographyConfiguration.HmacProvider);
                var tokenString = ObjectSerializer.Serialize(token);

                context.Items[CsrfToken.DEFAULT_CSRF_KEY] = tokenString;
                context.Response.Cookies.Add(new NancyCookie(CsrfToken.DEFAULT_CSRF_KEY, tokenString, true));
            });
        }
Example #2
0
        public static void Enable(IApplicationPipelines applicationPipelines, IRootPathProvider rootPathProvider, IStitchConfiguration configuration)
        {
            if (applicationPipelines == null)
            {
                throw new ArgumentNullException("applicationPipelines");
            }

            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }

            if (rootPathProvider == null)
            {
                throw new ArgumentNullException("rootPathProvider");
            }

            var compilerTypes =
                from type in AppDomainAssemblyTypeScanner.Types
                where typeof(ICompile).IsAssignableFrom(type)
                select type;

            var compilers = compilerTypes.Select(compiler => (ICompile) Activator.CreateInstance(compiler)).ToList();

            applicationPipelines.BeforeRequest.AddItemToStartOfPipeline(GetStitchResponse(compilers, rootPathProvider, configuration));
        }
Example #3
0
 public void Initialize(IApplicationPipelines pipelines)
 {
     foreach (var viewEngine in viewEngines)
     {
         viewEngine.Initialize(CreateViewEngineStartupContext(viewEngine));
     }
 }
Example #4
0
 public void Initialize(IApplicationPipelines pipelines)
 {
     foreach (var viewEngine in viewEngines)
     {
         viewEngine.Initialize(CreateViewEngineStartupContext(viewEngine));
     }
 }
Example #5
0
        public static void Enable(IApplicationPipelines applicationPipelines, OAuthConfiguration configuration)
        {
            //Uri authorizationEndpoint, Uri tokenEndpoint) {
            Configuration = configuration;

            applicationPipelines.BeforeRequest.AddItemToStartOfPipeline(Before());
        }
Example #6
0
        /// <summary>
        /// <para>
        /// Enable SassAndCoffee support in the application.
        /// </para>
        /// <para>
        /// SassAndCoffee supports on the fly compilation and caching of CoffeeScript and Sass,
        /// along with concatenation and minification.
        /// </para>
        /// </summary>
        /// <param name="pipelines">Application pipelines to hook into</param>
        /// <param name="cache">Cache provider to use</param>
        /// <param name="rootPathProvider">Root path provider</param>
        public static void Enable(IApplicationPipelines pipelines, ICompiledCache cache, IRootPathProvider rootPathProvider)
        {
            var host = new NancyCompilerHost(rootPathProvider);

            var compiler = new ContentCompiler(host, cache);

            pipelines.BeforeRequest.AddItemToStartOfPipeline(GetPipelineHook(compiler));
        }
Example #7
0
        /// <summary>
        /// Initialise and add cookie based session hooks to the application pipeine
        /// </summary>
        /// <param name="applicationPipelines">Application pipelines</param>
        /// <param name="encryptionProvider">Encryption provider for encrypting cookies</param>
        /// <param name="hmacProvider">The hmac provider</param>
        /// <param name="passPhrase">Encryption pass phrase</param>
        /// <param name="salt">Encryption salt</param>
        /// <param name="hmacPassphrase">The hmac passphrase</param>
        /// <returns>Formatter selector for choosing a non-default formatter</returns>
        public static IFormatterSelector Enable(IApplicationPipelines applicationPipelines, IEncryptionProvider encryptionProvider, IHmacProvider hmacProvider, string passPhrase, string salt, string hmacPassphrase)
        {
            var sessionStore = new CookieBasedSessions(encryptionProvider, hmacProvider, passPhrase, salt, hmacPassphrase, new DefaultSessionObjectFormatter());

            applicationPipelines.BeforeRequest.AddItemToEndOfPipeline(ctx => LoadSession(ctx, sessionStore));
            applicationPipelines.AfterRequest.AddItemToEndOfPipeline(ctx => SaveSession(ctx, sessionStore));

            return(sessionStore);
        }
Example #8
0
        /// <summary>
        /// Initialise and add cookie based session hooks to the application pipeine
        /// </summary>
        /// <param name="applicationPipelines">Application pipelines</param>
        /// <param name="encryptionProvider">Encryption provider for encrypting cookies</param>
        /// <param name="passPhrase">Encryption pass phrase</param>
        /// <param name="salt">Encryption salt</param>
        /// <returns>Formatter selector for choosing a non-default formatter</returns>
        public static IFormatterSelector Enable(IApplicationPipelines applicationPipelines, IEncryptionProvider encryptionProvider, string passPhrase, string salt)
        {
            var sessionStore = new CookieBasedSessions(encryptionProvider, passPhrase, salt, new DefaultSessionObjectFormatter());

            applicationPipelines.BeforeRequest.AddItemToEndOfPipeline(ctx => LoadSession(ctx, sessionStore));
            applicationPipelines.AfterRequest.AddItemToEndOfPipeline(ctx => SaveSession(ctx, sessionStore));

            return sessionStore;
        }
Example #9
0
        /// <summary>
        /// Initialise and add cookie based session hooks to the application pipeine
        /// </summary>
        /// <param name="applicationPipelines">Application pipelines</param>
        /// <param name="cryptographyConfiguration">Cryptography configuration</param>
        /// <returns>Formatter selector for choosing a non-default serializer</returns>
        public static IObjectSerializerSelector Enable(IApplicationPipelines applicationPipelines, CryptographyConfiguration cryptographyConfiguration)
        {
            var sessionStore = new CookieBasedSessions(cryptographyConfiguration.EncryptionProvider, cryptographyConfiguration.HmacProvider, new DefaultObjectSerializer());

            applicationPipelines.BeforeRequest.AddItemToEndOfPipeline(ctx => LoadSession(ctx, sessionStore));
            applicationPipelines.AfterRequest.AddItemToEndOfPipeline(ctx => SaveSession(ctx, sessionStore));

            return sessionStore;
        }
Example #10
0
        /// <summary>
        /// Initialise and add cookie based session hooks to the application pipeine
        /// </summary>
        /// <param name="applicationPipelines">Application pipelines</param>
        /// <param name="cryptographyConfiguration">Cryptography configuration</param>
        /// <returns>Formatter selector for choosing a non-default serializer</returns>
        public static IObjectSerializerSelector Enable(IApplicationPipelines applicationPipelines, CryptographyConfiguration cryptographyConfiguration)
        {
            var sessionStore = new CookieBasedSessions(cryptographyConfiguration.EncryptionProvider, cryptographyConfiguration.HmacProvider, new DefaultObjectSerializer());

            applicationPipelines.BeforeRequest.AddItemToEndOfPipeline(ctx => LoadSession(ctx, sessionStore));
            applicationPipelines.AfterRequest.AddItemToEndOfPipeline(ctx => SaveSession(ctx, sessionStore));

            return(sessionStore);
        }
 public BasicAuthenticationFixture()
 {
     this.config = new BasicAuthenticationConfiguration(A.Fake<IUserValidator>(), "realm");
     this.context = new NancyContext()
     {
         Request = new FakeRequest("GET", "/")
     };
     this.hooks = new FakeApplicationPipelines();
     BasicAuthentication.Enable(this.hooks, this.config);
 }
Example #12
0
        /// <summary>
        /// Perform any initialisation tasks
        /// </summary>
        public void Initialize(IApplicationPipelines pipelines)
        {
            var item = new PipelineItem<Func<NancyContext, Response>>("Static content", ctx =>
            {
                return conventions
                    .Select(convention => convention.Invoke(ctx, rootPathProvider.GetRootPath()))
                    .FirstOrDefault(response => response != null);
            });

            pipelines.BeforeRequest.AddItemToStartOfPipeline(item);
        }
Example #13
0
        /// <summary>
        /// Perform any initialisation tasks
        /// </summary>
        public void Initialize(IApplicationPipelines pipelines)
        {
            var item = new PipelineItem <Func <NancyContext, Response> >("Static content", ctx =>
            {
                return(conventions
                       .Select(convention => convention.Invoke(ctx, rootPathProvider.GetRootPath()))
                       .FirstOrDefault(response => response != null));
            });

            pipelines.BeforeRequest.AddItemToStartOfPipeline(item);
        }
Example #14
0
        public CsrfStartupFixture()
        {
            this.pipelines = new MockApplicationPipelines();

            var csrfStartup = new CsrfStartup(
                CryptographyConfiguration.Default,
                new DefaultObjectSerializer(),
                new DefaultCsrfTokenValidator(CryptographyConfiguration.Default));

            csrfStartup.Initialize(this.pipelines);

            this.request  = new FakeRequest("GET", "/");
            this.response = new Response();
        }
Example #15
0
        public CsrfStartupFixture()
        {
            this.pipelines = new MockApplicationPipelines();

            var csrfStartup = new CsrfStartup(
                CryptographyConfiguration.Default,
                new DefaultObjectSerializer(),
                new DefaultCsrfTokenValidator(CryptographyConfiguration.Default));

            csrfStartup.Initialize(this.pipelines);

            this.request = new FakeRequest("GET", "/");
            this.response = new Response();
        }
Example #16
0
        /// <summary>
        /// Enables basic authentication for the application
        /// </summary>
        /// <param name="applicationPipelines">Pipelines to add handlers to (usually "this")</param>
        /// <param name="configuration">Forms authentication configuration</param>
        public static void Enable(IApplicationPipelines applicationPipelines, BasicAuthenticationConfiguration configuration)
        {
            if (applicationPipelines == null)
            {
                throw new ArgumentNullException("applicationPipelines");
            }

            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }

            applicationPipelines.BeforeRequest.AddItemToStartOfPipeline(GetCredentialRetrievalHook(configuration));
            applicationPipelines.AfterRequest.AddItemToEndOfPipeline(GetAuthenticationPromptHook(configuration));
        }
Example #17
0
        /// <summary>
        /// Enables basic authentication for the application
        /// </summary>
        /// <param name="applicationPipelines">Pipelines to add handlers to (usually "this")</param>
        /// <param name="configuration">Forms authentication configuration</param>
        public static void Enable(IApplicationPipelines applicationPipelines, BasicAuthenticationConfiguration configuration)
        {
            if (applicationPipelines == null)
            {
                throw new ArgumentNullException("applicationPipelines");
            }

            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }

            applicationPipelines.BeforeRequest.AddItemToStartOfPipeline(GetCredentialRetrievalHook(configuration));
            applicationPipelines.AfterRequest.AddItemToEndOfPipeline(GetAuthenticationPromptHook(configuration));
        }
Example #18
0
        /// <summary>
        /// Enables forms authentication for the application
        /// </summary>
        /// <param name="applicationPipelines">Pipelines to add handlers to (usually "this")</param>
        /// <param name="configuration">Forms authentication configuration</param>
        public static void Enable(IApplicationPipelines applicationPipelines, FormsAuthenticationConfiguration configuration)
        {
            if (applicationPipelines == null)
            {
                throw new ArgumentNullException("applicationPipelines");
            }

            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }

            if (!configuration.IsValid)
            {
                throw new ArgumentException("Configuration is invalid", "configuration");
            }

            currentConfiguration = configuration;

            applicationPipelines.BeforeRequest.AddItemToStartOfPipeline(GetLoadAuthenticationHook(configuration));
            applicationPipelines.AfterRequest.AddItemToEndOfPipeline(GetRedirectToLoginHook(configuration));
        }
Example #19
0
        /// <summary>
        /// Enables forms authentication for the application
        /// </summary>
        /// <param name="applicationPipelines">Pipelines to add handlers to (usually "this")</param>
        /// <param name="configuration">Forms authentication configuration</param>
        public static void Enable(IApplicationPipelines applicationPipelines, FormsAuthenticationConfiguration configuration)
        {
            if (applicationPipelines == null)
            {
                throw new ArgumentNullException("applicationPipelines");
            }

            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }

            if (!configuration.IsValid)
            {
                throw new ArgumentException("Configuration is invalid", "configuration");
            }

            currentConfiguration = configuration;

            applicationPipelines.BeforeRequest.AddItemToStartOfPipeline(GetLoadAuthenticationHook(configuration));
            applicationPipelines.AfterRequest.AddItemToEndOfPipeline(GetRedirectToLoginHook(configuration));
        }
 public BasicAuthenticationFixture()
 {
     this.config = new BasicAuthenticationConfiguration(A.Fake<IUserValidator>(), "realm");
     this.hooks = new FakeApplicationPipelines();
     BasicAuthentication.Enable(this.hooks, this.config);
 }
Example #21
0
 /// <summary>
 /// Perform any initialisation tasks
 /// </summary>
 public void Initialize(IApplicationPipelines pipelines)
 {
 }
Example #22
0
 /// <summary>
 /// Initialise and add cookie based session hooks to the application pipeine with the default encryption provider.
 /// </summary>
 /// <param name="applicationPipelines">Application pipelines</param>
 /// <returns>Formatter selector for choosing a non-default serializer</returns>
 public static IObjectSerializerSelector Enable(IApplicationPipelines applicationPipelines)
 {
     return(Enable(applicationPipelines, CryptographyConfiguration.Default));
 }
Example #23
0
 /// <summary>
 /// Perform any initialisation tasks
 /// </summary>
 /// <param name="pipelines">Application pipelines</param>
 public void Initialize(IApplicationPipelines pipelines)
 {
 }
Example #24
0
 /// <summary>
 /// Initialise and add cookie based session hooks to the application pipeine with the default encryption provider.
 /// </summary>
 /// <param name="applicationPipelines">Application pipelines</param>
 /// <returns>Formatter selector for choosing a non-default serializer</returns>
 public static IObjectSerializerSelector Enable(IApplicationPipelines applicationPipelines)
 {
     return Enable(applicationPipelines, CryptographyConfiguration.Default);
 }
Example #25
0
 /// <summary>
 /// Module requires basic authentication
 /// </summary>
 /// <param name="pipeline">Bootstrapper to enable</param>
 /// <param name="configuration">Basic authentication configuration</param>
 public static void EnableBasicAuthentication(this IApplicationPipelines pipeline, BasicAuthenticationConfiguration configuration)
 {
     BasicAuthentication.Enable(pipeline, configuration);
 }
 public BasicAuthenticationFixture()
 {
     this.config = new BasicAuthenticationConfiguration(A.Fake <IUserValidator>(), "realm");
     this.hooks  = new FakeApplicationPipelines();
     BasicAuthentication.Enable(this.hooks, this.config);
 }
Example #27
0
 /// <summary>
 /// Initialise and add cookie based session hooks to the application pipeine with the default encryption provider.
 /// </summary>
 /// <param name="applicationPipelines">Application pipelines</param>
 /// <param name="passPhrase">Encryption pass phrase</param>
 /// <param name="salt">Encryption salt</param>
 /// <param name="hmacPassphrase">The hmac passphrase</param>
 /// <returns>Formatter selector for choosing a non-default formatter</returns>
 public static IFormatterSelector Enable(IApplicationPipelines applicationPipelines, string passPhrase, string salt, string hmacPassphrase)
 {
     return Enable(applicationPipelines, new DefaultEncryptionProvider(), new DefaultHmacProvider(), passPhrase, salt, hmacPassphrase);
 }
Example #28
0
 /// <summary>
 /// Initialise and add cookie based session hooks to the application pipeine with the default encryption provider.
 /// </summary>
 /// <param name="applicationPipelines">Application pipelines</param>
 /// <param name="passPhrase">Encryption pass phrase</param>
 /// <param name="salt">Encryption salt</param>
 /// <param name="hmacPassphrase">The hmac passphrase</param>
 /// <returns>Formatter selector for choosing a non-default formatter</returns>
 public static IFormatterSelector Enable(IApplicationPipelines applicationPipelines, string passPhrase, string salt, string hmacPassphrase)
 {
     return(Enable(applicationPipelines, new DefaultEncryptionProvider(), new DefaultHmacProvider(), passPhrase, salt, hmacPassphrase));
 }
Example #29
0
 /// <summary>
 /// Initialise and add cookie based session hooks to the application pipeine with the default encryption provider.
 /// </summary>
 /// <param name="applicationPipelines">Application pipelines</param>
 /// <returns>Formatter selector for choosing a non-default formatter</returns>
 public static IFormatterSelector Enable(IApplicationPipelines applicationPipelines)
 {
     return Enable(applicationPipelines, CryptographyConfiguration.Default);
 }