Skip to content

Commit 0ed5cf1

Browse files
committed
Updated to Flask 1.0.2 to resolve issue with CVE-2018-1000656 (https://nvd.nist.gov/vuln/detail/CVE-2018-1000656).
1 parent 8e8d1c8 commit 0ed5cf1

File tree

7 files changed

+47
-50
lines changed

7 files changed

+47
-50
lines changed

Diff for: api/restplus.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import traceback
1414

1515
from flask_restplus import Api
16-
import settings
1716
from sqlalchemy.orm.exc import NoResultFound
1817

1918
log = logging.getLogger(__name__)
@@ -28,8 +27,8 @@ def default_error_handler(exception):
2827
message = 'An unhandled exception occurred.'
2928
log.exception(message)
3029

31-
if not settings.FLASK_DEBUG:
32-
return {'message': message}, 500
30+
# if not settings.FLASK_DEBUG:
31+
# return {'message': message}, 500
3332

3433

3534
@api.errorhandler(NoResultFound)

Diff for: app.py

+2-15
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
from flask_jwt import JWT, jwt_required, current_identity
2020
from api.geolocation_data_flaskapi.endpoints.location_endpoint import ns as location_namespace
2121

22-
import settings
2322
from database import db
2423

2524

@@ -28,20 +27,7 @@ def create_app():
2827
return flask_app
2928

3029

31-
def configure_app(flask_app):
32-
if settings.FLASK_MODE is 'DEV':
33-
flask_app.config['SERVER_NAME'] = settings.FLASK_SERVER_NAME
34-
flask_app.config['SQLALCHEMY_DATABASE_URI'] = settings.SQLALCHEMY_DATABASE_URI
35-
flask_app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = settings.SQLALCHEMY_TRACK_MODIFICATIONS
36-
flask_app.config['SWAGGER_UI_DOC_EXPANSION'] = settings.RESTPLUS_SWAGGER_UI_DOC_EXPANSION
37-
flask_app.config['RESTPLUS_VALIDATE'] = settings.RESTPLUS_VALIDATE
38-
flask_app.config['RESTPLUS_MASK_SWAGGER'] = settings.RESTPLUS_MASK_SWAGGER
39-
flask_app.config['ERROR_404_HELP'] = settings.RESTPLUS_ERROR_404_HELP
40-
flask_app.secret_key = settings.FLASK_SECRET_KEY
41-
42-
4330
def initialize_app(flask_app):
44-
configure_app(flask_app)
4531
blueprint = Blueprint('geolocation', __name__, url_prefix='/geolocation')
4632
api.init_app(blueprint)
4733
api.add_namespace(location_namespace)
@@ -58,6 +44,7 @@ def initialize_app(flask_app):
5844
log = logging.getLogger(__name__)
5945

6046
app = create_app()
47+
app.config.from_object('config.DevelopmentConfig')
6148
initialize_app(app)
6249

6350
jwt = JWT(app, authenticate, identity)
@@ -85,4 +72,4 @@ def main():
8572

8673

8774
if __name__ == "__main__":
88-
app.run(debug=settings.FLASK_DEBUG)
75+
app.run()

Diff for: config.py

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
class Config(object):
2+
DEBUG = False
3+
TESTING = False
4+
SQLALCHEMY_DATABASE_URI = 'mysql://geolocation-api:mypass@localhost/Geolocation?charset=utf8'
5+
SECRET_KEY = 'Change me'
6+
SQLALCHEMY_TRACK_MODIFICATIONS = False
7+
8+
# RESTplus settings
9+
RESTPLUS_SWAGGER_UI_DOC_EXPANSION = 'list'
10+
RESTPLUS_VALIDATE = True
11+
RESTPLUS_MASK_SWAGGER = False
12+
RESTPLUS_ERROR_404_HELP = False
13+
14+
15+
class ProductionConfig(Config):
16+
pass
17+
18+
19+
class DevelopmentConfig(Config):
20+
DEBUG = True
21+
SQLALCHEMY_TRACK_MODIFICATIONS = True
22+
23+
24+
class TestingConfig(Config):
25+
TESTING = True
26+
SQLALCHEMY_TRACK_MODIFICATIONS = True

Diff for: create_geolocation_data_flaskapi_user.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
from passlib.hash import sha512_crypt
2828
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, NVARCHAR, BOOLEAN, DATETIME, select
2929

30-
from settings import SQLALCHEMY_DATABASE_URI
30+
import config
3131
from api.geolocation_data_flaskapi.business.security import salt_password
3232

3333
__all__ = []
@@ -168,7 +168,7 @@ def main(argv=None):
168168

169169
hashed_password = sha512_crypt.hash(salt_password(password, salt))
170170

171-
engine = create_engine(SQLALCHEMY_DATABASE_URI, echo=True)
171+
engine = create_engine(config.DevelopmentConfig.SQLALCHEMY_DATABASE_URI, echo=True)
172172

173173
metadata = MetaData()
174174
user = Table('user', metadata,

Diff for: requirements.txt

+15-15
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
1-
aniso8601==1.3.0
1+
aniso8601==3.0.2
22
appdirs==1.4.3
3-
certifi==2017.7.27.1
3+
certifi==2018.8.24
44
chardet==3.0.4
55
click==6.7
66
configparser==3.5.0
7-
Flask==0.12.2
7+
Flask==1.0.2
88
Flask-JWT==0.3.2
9-
flask-restplus==0.10.1
9+
flask-restplus==0.11.0
1010
Flask-SQLAlchemy==2.3.2
11-
idna==2.6
11+
idna==2.7
1212
itsdangerous==0.24
13-
Jinja2==2.9.6
13+
Jinja2==2.10
1414
jsonschema==2.6.0
1515
MarkupSafe==1.0
16-
mysqlclient==1.3.12
16+
mysqlclient==1.3.13
1717
passlib==1.7.1
18-
pycountry==17.9.23
19-
PyJWT==1.5.3
20-
python-dateutil==2.6.1
21-
pytz==2017.2
22-
requests==2.18.4
18+
pycountry==18.5.26
19+
PyJWT==1.6.4
20+
python-dateutil==2.7.3
21+
pytz==2018.5
22+
requests==2.19.1
2323
six==1.11.0
24-
SQLAlchemy==1.1.14
25-
urllib3==1.22
26-
Werkzeug==0.12.2
24+
SQLAlchemy==1.2.12
25+
urllib3==1.23
26+
Werkzeug==0.14.1

Diff for: settings.py

-15
This file was deleted.

Diff for: static/images/swagger-ui.png

101 KB
Loading

0 commit comments

Comments
 (0)