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