Пример #1
0
        public override bool PostProcess(BadrRequest request, BadrResponse response, out string errorMessage)
        {
            CookiesSettings cookiesSettings = SiteManager.Settings.Cookies;
            errorMessage = null;

            if ((!cookiesSettings.SessionSecure || request.IsSecure)
                && response.Status.IsSuccess() && request.Session != null && request.Session.SendCookie)
            {
                HttpCookieFragment sessionFragment = new HttpCookieFragment(
                    name: CookieNames.SESSION_ID,
                    value: request.Session.ID,
                    path: "/",
                    domain: request.DomainUri.Host);

                if(cookiesSettings != null)
                {
                    if(!SiteManager.Settings.Cookies.SessionExpireAtBrowserClose)
                        sessionFragment[HttpCookieFragment.ATTR_MAX_AGE] = cookiesSettings.SessionAge.ToString();

                    sessionFragment.IsSecure = cookiesSettings.SessionSecure;
                    sessionFragment.IsHttpOnly = cookiesSettings.SessionHttpOnly;
                }

                response.Cookies[CookieNames.SESSION_ID] = sessionFragment;
            }

            return true;
        }
Пример #2
0
        public bool PostProcess(BadrRequest wRequest, BadrResponse wResponse, out string errorMessage)
        {
            bool result = true;
            errorMessage = null;
            foreach (MiddlewareBase middleware in _middlewares)
            {
                result = middleware.PostProcess(wRequest, wResponse, out errorMessage);
                if (!result || !wResponse.Status.IsSuccess())
                    return result;
            }

            return result;
        }
Пример #3
0
        public override bool PostProcess(BadrRequest request, BadrResponse response, out string errorMessage)
        {
            errorMessage = null;
            if ((!SiteManager.Settings.Cookies.CsrfSecure || request.IsSecure)
                 && response.Status.IsSuccess() && IsValidCsrf(request))
            {
                HttpCookieFragment csrfFragment = new HttpCookieFragment(
                    name: CookieNames.CSRF_TOKEN,
                    value: request.CsrfToken,
                    path: "/",
                    domain: request.DomainUri.Host);

                if(SiteManager.Settings.Cookies != null)
                {
                    csrfFragment.IsSecure = SiteManager.Settings.Cookies.CsrfSecure;
                }

                response.Cookies[CookieNames.CSRF_TOKEN] = csrfFragment;
            }

            return true;
        }
Пример #4
0
 public abstract bool PostProcess(BadrRequest request, BadrResponse response, out string errorMessage);
Пример #5
0
        public static BadrResponse ServeStaticFiles(BadrRequest request, UrlArgs args = null)
        {
            string resourcePath = null;
            if (args != null && (resourcePath = args[STATIC_RESOURCE_GROUP_NAME]) != null)
            {
                bool reloadFile = true;
                bool conditionalGet = request.Headers[HttpRequestHeaders.IfModifiedSince] != null;

                DateTime resourceLastModificationDate = StaticFilesManager.GetLastModificationTimeUtc(resourcePath);
                DateTime clientLastModificationDate;

                if(conditionalGet)
                {
                    if(DateTime.TryParse(request.Headers[Badr.Net.Http.Request.HttpRequestHeaders.IfModifiedSince], out clientLastModificationDate))
                    {
                        reloadFile = resourceLastModificationDate.CompareTo(clientLastModificationDate) > 0;
                    }
                }

                BadrResponse response;

                if (reloadFile){
                    response = new StaticResponse(request, MimeMapping.GetMimeMapping(resourcePath))
                    {
                        Status = HttpResponseStatus._200,
                        BodyBytes = StaticFilesManager.GetFileBytes(resourcePath)
                    };
                }
                else {
                    response = new BadrResponse(request) { Status = HttpResponseStatus._304 };
                }

                response.Headers.Add(HttpResponseHeaders.LastModified, resourceLastModificationDate.ToString("r"));
                return response;
            }

            return null;
        }