diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/org/traccar/Context.java | 13 | ||||
-rw-r--r-- | src/main/java/org/traccar/MainModule.java | 12 | ||||
-rw-r--r-- | src/main/java/org/traccar/database/DataManager.java | 13 | ||||
-rw-r--r-- | src/main/java/org/traccar/database/LdapProvider.java | 2 |
4 files changed, 20 insertions, 20 deletions
diff --git a/src/main/java/org/traccar/Context.java b/src/main/java/org/traccar/Context.java index 97cfb2bf9..1aa673077 100644 --- a/src/main/java/org/traccar/Context.java +++ b/src/main/java/org/traccar/Context.java @@ -25,14 +25,12 @@ import org.traccar.config.Config; import org.traccar.config.Keys; import org.traccar.database.BaseObjectManager; import org.traccar.database.CalendarManager; -import org.traccar.session.ConnectionManager; import org.traccar.database.DataManager; import org.traccar.database.DeviceManager; import org.traccar.database.DriversManager; import org.traccar.database.GeofenceManager; import org.traccar.database.GroupsManager; import org.traccar.database.IdentityManager; -import org.traccar.database.LdapProvider; import org.traccar.database.MailManager; import org.traccar.database.MaintenancesManager; import org.traccar.database.NotificationManager; @@ -53,6 +51,7 @@ import org.traccar.model.User; import org.traccar.notification.EventForwarder; import org.traccar.notification.NotificatorManager; import org.traccar.reports.model.TripsConfig; +import org.traccar.session.ConnectionManager; import org.traccar.sms.HttpSmsClient; import org.traccar.sms.SmsManager; import org.traccar.sms.SnsSmsClient; @@ -94,12 +93,6 @@ public final class Context { return dataManager; } - private static LdapProvider ldapProvider; - - public static LdapProvider getLdapProvider() { - return ldapProvider; - } - private static MailManager mailManager; public static MailManager getMailManager() { @@ -263,10 +256,6 @@ public final class Context { dataManager = new DataManager(config); } - if (config.hasKey(Keys.LDAP_URL)) { - ldapProvider = new LdapProvider(config); - } - mailManager = new MailManager(); if (dataManager != null) { diff --git a/src/main/java/org/traccar/MainModule.java b/src/main/java/org/traccar/MainModule.java index 7b46656b3..15b9cefda 100644 --- a/src/main/java/org/traccar/MainModule.java +++ b/src/main/java/org/traccar/MainModule.java @@ -19,12 +19,12 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.google.inject.AbstractModule; import com.google.inject.Provides; import com.google.inject.Scopes; -import com.google.inject.Singleton; import io.netty.util.HashedWheelTimer; import io.netty.util.Timer; import org.traccar.config.Config; import org.traccar.config.Keys; import org.traccar.database.CalendarManager; +import org.traccar.database.LdapProvider; import org.traccar.session.ConnectionManager; import org.traccar.database.DataManager; import org.traccar.database.DeviceManager; @@ -66,6 +66,7 @@ import org.traccar.speedlimit.SpeedLimitProvider; import org.traccar.storage.Storage; import javax.annotation.Nullable; +import javax.inject.Singleton; import javax.ws.rs.client.Client; public class MainModule extends AbstractModule { @@ -142,6 +143,15 @@ public class MainModule extends AbstractModule { @Singleton @Provides + public static LdapProvider provideLdapProvider(Config config) { + if (config.hasKey(Keys.LDAP_URL)) { + return new LdapProvider(config); + } + return null; + } + + @Singleton + @Provides public static Geocoder provideGeocoder(Config config) { if (config.getBoolean(Keys.GEOCODER_ENABLE)) { String type = config.getString(Keys.GEOCODER_TYPE, "google"); diff --git a/src/main/java/org/traccar/database/DataManager.java b/src/main/java/org/traccar/database/DataManager.java index 1426daea3..29d70ec32 100644 --- a/src/main/java/org/traccar/database/DataManager.java +++ b/src/main/java/org/traccar/database/DataManager.java @@ -25,6 +25,7 @@ import liquibase.exception.LiquibaseException; import liquibase.resource.FileSystemResourceAccessor; import liquibase.resource.ResourceAccessor; import org.traccar.Context; +import org.traccar.Main; import org.traccar.config.Config; import org.traccar.config.Keys; import org.traccar.model.BaseModel; @@ -131,12 +132,12 @@ public class DataManager { config.getString(Keys.DATABASE_DRIVER), null, null, null, resourceAccessor); - Liquibase liquibase = new Liquibase( - config.getString(Keys.DATABASE_CHANGELOG), resourceAccessor, database); + String changelog = config.getString(Keys.DATABASE_CHANGELOG); - liquibase.clearCheckSums(); - - liquibase.update(new Contexts()); + try (Liquibase liquibase = new Liquibase(changelog, resourceAccessor, database)) { + liquibase.clearCheckSums(); + liquibase.update(new Contexts()); + } } } @@ -146,7 +147,7 @@ public class DataManager { new Condition.Or( new Condition.Equals("email", "email", email.trim()), new Condition.Equals("login", "email")))); - LdapProvider ldapProvider = Context.getLdapProvider(); + LdapProvider ldapProvider = Main.getInjector().getInstance(LdapProvider.class); if (user != null) { if (ldapProvider != null && user.getLogin() != null && ldapProvider.login(user.getLogin(), password) || !forceLdap && user.isPasswordValid(password)) { diff --git a/src/main/java/org/traccar/database/LdapProvider.java b/src/main/java/org/traccar/database/LdapProvider.java index d659a11a1..d517294b8 100644 --- a/src/main/java/org/traccar/database/LdapProvider.java +++ b/src/main/java/org/traccar/database/LdapProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2017 - 2020 Anton Tananaev (anton@traccar.org) + * Copyright 2017 - 2022 Anton Tananaev (anton@traccar.org) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. |