Commit d5c7e49f authored by Alexandre Dulaunoy's avatar Alexandre Dulaunoy
Browse files

Merge pull request #68 from timeemit/authentication

Mongo authentication
parents c2f3652e 3524ae24
Loading
Loading
Loading
Loading
+17 −2
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ import redis
import re
import datetime
import configparser
import urllib.parse


class Configuration():
@@ -28,6 +29,7 @@ class Configuration():
               'redisVendorDB': 10,      'redisNotificationsDB': 11,
               'mongoHost': 'localhost', 'mongoPort': 27017,
               'mongoDB': "cvedb",       
               'mongoUsername': '', 'mongoPassword': '',
               'flaskHost': "127.0.0.1", 'flaskPort': 5000,
               'flaskDebug': True,       'pageLength': 50,
               'loginRequired': False,
@@ -75,7 +77,20 @@ class Configuration():
        mongoHost = cls.readSetting("Mongo", "Host", cls.default['mongoHost'])
        mongoPort = cls.readSetting("Mongo", "Port", cls.default['mongoPort'])
        mongoDB = cls.getMongoDB()
        mongoUsername = cls.readSetting("Mongo", "Username", cls.default['mongoUsername'])
        mongoPassword = cls.readSetting("Mongo", "Password", cls.default['mongoPassword'])

        mongoUsername = urllib.parse.quote( mongoUsername )
        mongoPassword = urllib.parse.quote( mongoPassword )
        try:
            if mongoUsername and mongoPassword:
                mongoURI = "mongodb://{username}:{password}@{host}:{port}/{db}".format(
                    username = mongoUsername, password = mongoPassword,
                    host = mongoHost, port = mongoPort,
                    db = mongoDB
                )
                connect = pymongo.MongoClient(mongoURI)
            else:
                connect = pymongo.MongoClient(mongoHost, mongoPort)
        except:
            sys.exit("Unable to connect to Mongo. Is it running on %s:%s?"%(mongoHost,mongoPort))