From e221352fab7ae46ba1fb91eab48a4de3090317e1 Mon Sep 17 00:00:00 2001 From: Maxime Dor Date: Wed, 3 May 2017 19:08:40 +0200 Subject: [PATCH] Allow to enable/disable LDAP provider in config --- application.example.yaml | 1 + src/main/groovy/io/kamax/mxisd/config/LdapConfig.groovy | 9 +++++++++ .../kamax/mxisd/lookup/provider/DnsLookupProvider.groovy | 5 +++++ .../kamax/mxisd/lookup/provider/ForwarderProvider.groovy | 5 +++++ .../kamax/mxisd/lookup/provider/IThreePidProvider.groovy | 2 ++ .../io/kamax/mxisd/lookup/provider/LdapProvider.groovy | 5 +++++ .../strategy/RecursivePriorityLookupStrategy.groovy | 2 +- 7 files changed, 28 insertions(+), 1 deletion(-) diff --git a/application.example.yaml b/application.example.yaml index 63fcf8a..9ffa259 100644 --- a/application.example.yaml +++ b/application.example.yaml @@ -97,6 +97,7 @@ lookup: ldap: + enabled: true host: 'localhost' port: 389 bindDn: 'CN=Matrix Identity Server,CN=Users,DC=example,DC=org' diff --git a/src/main/groovy/io/kamax/mxisd/config/LdapConfig.groovy b/src/main/groovy/io/kamax/mxisd/config/LdapConfig.groovy index db2495e..4434b26 100644 --- a/src/main/groovy/io/kamax/mxisd/config/LdapConfig.groovy +++ b/src/main/groovy/io/kamax/mxisd/config/LdapConfig.groovy @@ -32,6 +32,7 @@ class LdapConfig implements InitializingBean { private Logger log = LoggerFactory.getLogger(LdapConfig.class) + private boolean enabled; private String host private int port private String baseDn @@ -41,6 +42,14 @@ class LdapConfig implements InitializingBean { private String bindPassword private Map mappings + boolean getEnabled() { + return enabled + } + + void setEnabled(boolean enabled) { + this.enabled = enabled + } + String getHost() { return host } diff --git a/src/main/groovy/io/kamax/mxisd/lookup/provider/DnsLookupProvider.groovy b/src/main/groovy/io/kamax/mxisd/lookup/provider/DnsLookupProvider.groovy index 141a375..a7076a1 100644 --- a/src/main/groovy/io/kamax/mxisd/lookup/provider/DnsLookupProvider.groovy +++ b/src/main/groovy/io/kamax/mxisd/lookup/provider/DnsLookupProvider.groovy @@ -48,6 +48,11 @@ class DnsLookupProvider implements IThreePidProvider { @Autowired private IRemoteIdentityServerFetcher fetcher + @Override + boolean isEnabled() { + return true + } + @Override boolean isLocal() { return false diff --git a/src/main/groovy/io/kamax/mxisd/lookup/provider/ForwarderProvider.groovy b/src/main/groovy/io/kamax/mxisd/lookup/provider/ForwarderProvider.groovy index d6093a0..f2253dc 100644 --- a/src/main/groovy/io/kamax/mxisd/lookup/provider/ForwarderProvider.groovy +++ b/src/main/groovy/io/kamax/mxisd/lookup/provider/ForwarderProvider.groovy @@ -40,6 +40,11 @@ class ForwarderProvider implements IThreePidProvider { @Autowired private IRemoteIdentityServerFetcher fetcher + @Override + boolean isEnabled() { + return true + } + @Override boolean isLocal() { return false diff --git a/src/main/groovy/io/kamax/mxisd/lookup/provider/IThreePidProvider.groovy b/src/main/groovy/io/kamax/mxisd/lookup/provider/IThreePidProvider.groovy index ee25cb3..445afda 100644 --- a/src/main/groovy/io/kamax/mxisd/lookup/provider/IThreePidProvider.groovy +++ b/src/main/groovy/io/kamax/mxisd/lookup/provider/IThreePidProvider.groovy @@ -25,6 +25,8 @@ import io.kamax.mxisd.lookup.ThreePidMapping interface IThreePidProvider { + boolean isEnabled() + boolean isLocal() /** diff --git a/src/main/groovy/io/kamax/mxisd/lookup/provider/LdapProvider.groovy b/src/main/groovy/io/kamax/mxisd/lookup/provider/LdapProvider.groovy index 8e7ca08..186b7b4 100644 --- a/src/main/groovy/io/kamax/mxisd/lookup/provider/LdapProvider.groovy +++ b/src/main/groovy/io/kamax/mxisd/lookup/provider/LdapProvider.groovy @@ -50,6 +50,11 @@ class LdapProvider implements IThreePidProvider { @Autowired private LdapConfig ldapCfg + @Override + boolean isEnabled() { + return ldapCfg.getEnabled() + } + @Override boolean isLocal() { return true diff --git a/src/main/groovy/io/kamax/mxisd/lookup/strategy/RecursivePriorityLookupStrategy.groovy b/src/main/groovy/io/kamax/mxisd/lookup/strategy/RecursivePriorityLookupStrategy.groovy index 9895ee8..49f2fff 100644 --- a/src/main/groovy/io/kamax/mxisd/lookup/strategy/RecursivePriorityLookupStrategy.groovy +++ b/src/main/groovy/io/kamax/mxisd/lookup/strategy/RecursivePriorityLookupStrategy.groovy @@ -96,7 +96,7 @@ class RecursivePriorityLookupStrategy implements LookupStrategy, InitializingBea log.info("Host {} allowed for recursion: {}", request.getRequester(), canRecurse) for (IThreePidProvider provider : providers) { - if (provider.isLocal() || canRecurse) { + if (provider.isEnabled() && (provider.isLocal() || canRecurse)) { usableProviders.add(provider) } }