-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add authentication to MongoDBBackend #59
Comments
I was able to get this to work as needed by hacking the mongodb_backend.py file and changing it to this: # added optional 'username' and 'password' in constructor
class MongoDBBackend(Backend):
def __init__(self, db_name='cork', hostname='localhost', port=27017, initialize=False, username=None, password=None):
"""Initialize MongoDB Backend"""
connection = MongoClient(host=hostname, port=port)
db = connection[db_name]
# if username and password are present than authenticate...
if username and password:
db.authenticate(username, password)
self.users = MongoMultiValueTable('users', 'login', db.users)
self.pending_registrations = MongoMultiValueTable(
'pending_registrations',
'pending_registration',
db.pending_registrations
)
self.roles = MongoSingleValueTable('roles', 'role', db.roles)
if initialize:
self._initialize_storage() |
MongoDB supports URIs in the "host" parameter as in: Given that the "hostname" parameter in MongoDBBackend is simply passed to MongoClient as "host", you should be already able to perform authentication. Example: Does that work for you? Certainly "hostname" is a misleading name for an URI, I'll update it. |
That does not work. That results in the following: Traceback (most recent call last): |
I will just stick with my two line modification for now because it works perfectly and has no other impact on the code. |
MongoDBBackend is currently not usable by me because I use mongolab.com and they require that the 'pymongo.Connection' be authenticated.
Would love to use this functionality.
The text was updated successfully, but these errors were encountered: