forked from orbit-oss/flask
parent
5797416544
commit
b8eba0a3fa
3 changed files with 13 additions and 27 deletions
|
|
@ -1004,17 +1004,3 @@ def is_ip(value):
|
|||
return True
|
||||
|
||||
return False
|
||||
|
||||
|
||||
def patch_vary_header(response, value):
|
||||
"""Add a value to the ``Vary`` header if it is not already present."""
|
||||
|
||||
header = response.headers.get('Vary', '')
|
||||
headers = [h for h in (h.strip() for h in header.split(',')) if h]
|
||||
lower_value = value.lower()
|
||||
|
||||
if not any(h.lower() == lower_value for h in headers):
|
||||
headers.append(value)
|
||||
|
||||
updated_header = ', '.join(headers)
|
||||
response.headers['Vary'] = updated_header
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ from itsdangerous import BadSignature, URLSafeTimedSerializer
|
|||
from werkzeug.datastructures import CallbackDict
|
||||
from werkzeug.http import http_date, parse_date
|
||||
|
||||
from flask.helpers import patch_vary_header
|
||||
from . import Markup, json
|
||||
from ._compat import iteritems, text_type
|
||||
from .helpers import is_ip, total_seconds
|
||||
|
|
@ -407,7 +406,7 @@ class SecureCookieSessionInterface(SessionInterface):
|
|||
|
||||
# Add a "Vary: Cookie" header if the session was accessed at all.
|
||||
if session.accessed:
|
||||
patch_vary_header(response, 'Cookie')
|
||||
response.vary.add('Cookie')
|
||||
|
||||
if not self.should_set_cookie(app, session):
|
||||
return
|
||||
|
|
|
|||
|
|
@ -9,20 +9,21 @@
|
|||
:license: BSD, see LICENSE for more details.
|
||||
"""
|
||||
|
||||
import pytest
|
||||
|
||||
import re
|
||||
import uuid
|
||||
import time
|
||||
import flask
|
||||
import pickle
|
||||
import re
|
||||
import time
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
from threading import Thread
|
||||
from flask._compat import text_type
|
||||
from werkzeug.exceptions import BadRequest, NotFound, Forbidden
|
||||
|
||||
import pytest
|
||||
import werkzeug.serving
|
||||
from werkzeug.exceptions import BadRequest, Forbidden, NotFound
|
||||
from werkzeug.http import parse_date
|
||||
from werkzeug.routing import BuildError
|
||||
import werkzeug.serving
|
||||
|
||||
import flask
|
||||
from flask._compat import text_type
|
||||
|
||||
|
||||
def test_options_work(app, client):
|
||||
|
|
@ -523,14 +524,14 @@ def test_session_vary_cookie(app, client):
|
|||
@app.route('/vary-cookie-header-set')
|
||||
def vary_cookie_header_set():
|
||||
response = flask.Response()
|
||||
response.headers['Vary'] = 'Cookie'
|
||||
response.vary.add('Cookie')
|
||||
flask.session['test'] = 'test'
|
||||
return response
|
||||
|
||||
@app.route('/vary-header-set')
|
||||
def vary_header_set():
|
||||
response = flask.Response()
|
||||
response.headers['Vary'] = 'Accept-Encoding, Accept-Language'
|
||||
response.vary.update(('Accept-Encoding', 'Accept-Language'))
|
||||
flask.session['test'] = 'test'
|
||||
return response
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue