fix urllib quote_plus, close #1822

This commit is contained in:
ilvalle
2017-12-12 19:23:19 +01:00
parent 5e6c3dba81
commit dca4639b85
2 changed files with 6 additions and 7 deletions
+2 -2
View File
@@ -26,7 +26,7 @@ if PY2:
from email.MIMEText import MIMEText from email.MIMEText import MIMEText
from email.Charset import add_charset, QP as charset_QP from email.Charset import add_charset, QP as charset_QP
from urllib import FancyURLopener, urlencode, urlopen from urllib import FancyURLopener, urlencode, urlopen
from urllib import quote as urllib_quote, unquote as urllib_unquote from urllib import quote as urllib_quote, unquote as urllib_unquote, quote_plus as urllib_quote_plus
from string import maketrans from string import maketrans
from types import ClassType from types import ClassType
import cgi import cgi
@@ -94,7 +94,7 @@ else:
from email.header import Header from email.header import Header
from email.charset import Charset, add_charset, QP as charset_QP from email.charset import Charset, add_charset, QP as charset_QP
from urllib.request import FancyURLopener, urlopen from urllib.request import FancyURLopener, urlopen
from urllib.parse import quote as urllib_quote, unquote as urllib_unquote, urlencode from urllib.parse import quote as urllib_quote, unquote as urllib_unquote, urlencode, quote_plus as urllib_quote_plus
from http import cookiejar as cookielib from http import cookiejar as cookielib
from xmlrpc.client import ProtocolError from xmlrpc.client import ProtocolError
import html # warning, this is the python3 module and not the web2py html module import html # warning, this is the python3 module and not the web2py html module
+4 -5
View File
@@ -22,12 +22,11 @@ import re
import logging import logging
import traceback import traceback
import threading import threading
import urllib
from gluon.storage import Storage, List from gluon.storage import Storage, List
from gluon.http import HTTP from gluon.http import HTTP
from gluon.fileutils import abspath, read_file from gluon.fileutils import abspath, read_file
from gluon.settings import global_settings from gluon.settings import global_settings
from gluon._compat import urllib_unquote, urllib_quote, iteritems, xrange from gluon._compat import urllib_unquote, urllib_quote, iteritems, xrange, urllib_quote_plus
isdir = os.path.isdir isdir = os.path.isdir
isfile = os.path.isfile isfile = os.path.isfile
@@ -235,7 +234,7 @@ def try_rewrite_on_error(http_response, request, environ, ticket=None):
path_info, query_string = uri, '' path_info, query_string = uri, ''
query_string += \ query_string += \
'code=%s&ticket=%s&requested_uri=%s&request_url=%s' % \ 'code=%s&ticket=%s&requested_uri=%s&request_url=%s' % \
(status, ticket, urllib.quote_plus( (status, ticket, urllib_quote_plus(
request.env.request_uri), request.url) request.env.request_uri), request.url)
if uri.startswith('http://') or uri.startswith('https://'): if uri.startswith('http://') or uri.startswith('https://'):
# make up a response # make up a response
@@ -270,12 +269,12 @@ def try_redirect_on_error(http_object, request, ticket=None):
elif '?' in redir: elif '?' in redir:
url = '%s&code=%s&ticket=%s&requested_uri=%s&request_url=%s' % \ url = '%s&code=%s&ticket=%s&requested_uri=%s&request_url=%s' % \
(redir, status, ticket, (redir, status, ticket,
urllib.quote_plus(request.env.request_uri), urllib_quote_plus(request.env.request_uri),
request.url) request.url)
else: else:
url = '%s?code=%s&ticket=%s&requested_uri=%s&request_url=%s' % \ url = '%s?code=%s&ticket=%s&requested_uri=%s&request_url=%s' % \
(redir, status, ticket, (redir, status, ticket,
urllib.quote_plus(request.env.request_uri), urllib_quote_plus(request.env.request_uri),
request.url) request.url)
return HTTP(303, 'You are being redirected <a href="%s">here</a>' % url, Location=url) return HTTP(303, 'You are being redirected <a href="%s">here</a>' % url, Location=url)
return http_object return http_object