From 6af3a4a274242ec80181ea91ad5a5e78d93d1215 Mon Sep 17 00:00:00 2001 From: Julian Horner <julianhorner@web.de> Date: Sat, 25 Jul 2020 13:21:02 +0200 Subject: [PATCH] Add module options to variably select collection and database --- .../dpunkt/myaktion/login/MongoDBLoginModule.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/dpunkt/myaktion/login/MongoDBLoginModule.java b/src/main/java/de/dpunkt/myaktion/login/MongoDBLoginModule.java index 3218781..0ea449d 100644 --- a/src/main/java/de/dpunkt/myaktion/login/MongoDBLoginModule.java +++ b/src/main/java/de/dpunkt/myaktion/login/MongoDBLoginModule.java @@ -24,6 +24,12 @@ import com.mongodb.client.model.Filters; public class MongoDBLoginModule extends UsernamePasswordLoginModule { //---------------------------------------------------------------------------------------------- + private String database; + + private String collection; + + //---------------------------------------------------------------------------------------------- + /** * {@inheritDoc} */ @@ -31,6 +37,9 @@ public class MongoDBLoginModule extends UsernamePasswordLoginModule { public void initialize(Subject subject, CallbackHandler callbackHandler, Map<String, ?> sharedState, Map<String, ?> options) { super.initialize(subject, callbackHandler, sharedState, options); + + database = (String) options.get("database"); + collection = (String) options.get("collection"); } //---------------------------------------------------------------------------------------------- @@ -41,8 +50,9 @@ public class MongoDBLoginModule extends UsernamePasswordLoginModule { @Override protected String getUsersPassword() throws LoginException { MongoClient mongoClient = MongoClients.create("mongodb://localhost"); - MongoDatabase database = mongoClient.getDatabase("my-aktion"); - MongoCollection<Document> organizerCollection = database.getCollection("Organizer"); + + MongoDatabase database = mongoClient.getDatabase(this.database); + MongoCollection<Document> organizerCollection = database.getCollection(this.collection); Document organizerDocument = organizerCollection.find(Filters.eq("email", getUsername())).first(); -- GitLab