Start structural port from Spring Boot to Undertow
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* mxisd - Matrix Identity Server Daemon
|
||||
* Copyright (C) 2018 Kamax Sarl
|
||||
*
|
||||
* https://www.kamax.io/
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package io.kamax.mxisd.backend;
|
||||
|
||||
import io.kamax.mxisd.Mxisd;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public interface IdentityStoreSupplier extends Consumer<Mxisd> {
|
||||
|
||||
}
|
||||
@@ -33,20 +33,16 @@ import io.kamax.mxisd.exception.InternalServerError;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
@Component
|
||||
public class ExecAuthStore extends ExecStore implements AuthenticatorProvider {
|
||||
|
||||
private final Logger log = LoggerFactory.getLogger(ExecAuthStore.class);
|
||||
private transient final Logger log = LoggerFactory.getLogger(ExecAuthStore.class);
|
||||
|
||||
private ExecConfig.Auth cfg;
|
||||
|
||||
@Autowired
|
||||
public ExecAuthStore(ExecConfig cfg) {
|
||||
this.cfg = Objects.requireNonNull(cfg.getAuth());
|
||||
}
|
||||
|
||||
@@ -24,22 +24,19 @@ import io.kamax.matrix.MatrixID;
|
||||
import io.kamax.matrix.json.GsonUtil;
|
||||
import io.kamax.mxisd.config.ExecConfig;
|
||||
import io.kamax.mxisd.config.MatrixConfig;
|
||||
import io.kamax.mxisd.controller.directory.v1.io.UserDirectorySearchRequest;
|
||||
import io.kamax.mxisd.controller.directory.v1.io.UserDirectorySearchResult;
|
||||
import io.kamax.mxisd.config.MxisdConfig;
|
||||
import io.kamax.mxisd.directory.IDirectoryProvider;
|
||||
import io.kamax.mxisd.http.io.UserDirectorySearchRequest;
|
||||
import io.kamax.mxisd.http.io.UserDirectorySearchResult;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class ExecDirectoryStore extends ExecStore implements IDirectoryProvider {
|
||||
|
||||
private ExecConfig.Directory cfg;
|
||||
private MatrixConfig mxCfg;
|
||||
|
||||
@Autowired
|
||||
public ExecDirectoryStore(ExecConfig cfg, MatrixConfig mxCfg) {
|
||||
this(cfg.getDirectory(), mxCfg);
|
||||
public ExecDirectoryStore(MxisdConfig cfg) {
|
||||
this(cfg.getExec().getDirectory(), cfg.getMatrix());
|
||||
}
|
||||
|
||||
public ExecDirectoryStore(ExecConfig.Directory cfg, MatrixConfig mxCfg) {
|
||||
|
||||
@@ -40,8 +40,6 @@ import io.kamax.mxisd.lookup.provider.IThreePidProvider;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
@@ -49,15 +47,13 @@ import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
public class ExecIdentityStore extends ExecStore implements IThreePidProvider {
|
||||
|
||||
private final Logger log = LoggerFactory.getLogger(ExecIdentityStore.class);
|
||||
private transient final Logger log = LoggerFactory.getLogger(ExecIdentityStore.class);
|
||||
|
||||
private final ExecConfig.Identity cfg;
|
||||
private final MatrixConfig mxCfg;
|
||||
|
||||
@Autowired
|
||||
public ExecIdentityStore(ExecConfig cfg, MatrixConfig mxCfg) {
|
||||
this(cfg.getIdentity(), mxCfg);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* mxisd - Matrix Identity Server Daemon
|
||||
* Copyright (C) 2018 Kamax Sarl
|
||||
*
|
||||
* https://www.kamax.io/
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package io.kamax.mxisd.backend.exec;
|
||||
|
||||
import io.kamax.mxisd.Mxisd;
|
||||
import io.kamax.mxisd.auth.AuthProviders;
|
||||
import io.kamax.mxisd.backend.IdentityStoreSupplier;
|
||||
import io.kamax.mxisd.config.MxisdConfig;
|
||||
import io.kamax.mxisd.directory.DirectoryProviders;
|
||||
import io.kamax.mxisd.lookup.ThreePidProviders;
|
||||
import io.kamax.mxisd.profile.ProfileProviders;
|
||||
|
||||
public class ExecIdentityStoreSupplier implements IdentityStoreSupplier {
|
||||
|
||||
@Override
|
||||
public void accept(Mxisd mxisd) {
|
||||
accept(mxisd.getConfig());
|
||||
}
|
||||
|
||||
public void accept(MxisdConfig cfg) {
|
||||
if (cfg.getExec().getAuth().isEnabled()) {
|
||||
AuthProviders.register(() -> new ExecAuthStore(cfg.getExec()));
|
||||
}
|
||||
|
||||
if (cfg.getExec().getDirectory().isEnabled()) {
|
||||
DirectoryProviders.register(() -> new ExecDirectoryStore(cfg));
|
||||
}
|
||||
|
||||
if (cfg.getExec().getIdentity().isEnabled()) {
|
||||
ThreePidProviders.register(() -> new ExecIdentityStore(cfg.getExec(), cfg.getMatrix()));
|
||||
}
|
||||
|
||||
if (cfg.getExec().getProfile().isEnabled()) {
|
||||
ProfileProviders.register(() -> new ExecProfileStore(cfg.getExec()));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -28,19 +28,15 @@ import io.kamax.mxisd.profile.JsonProfileRequest;
|
||||
import io.kamax.mxisd.profile.JsonProfileResult;
|
||||
import io.kamax.mxisd.profile.ProfileProvider;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@Component
|
||||
public class ExecProfileStore extends ExecStore implements ProfileProvider {
|
||||
|
||||
private ExecConfig.Profile cfg;
|
||||
|
||||
@Autowired
|
||||
public ExecProfileStore(ExecConfig cfg) {
|
||||
this(cfg.getProfile());
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ public class ExecStore {
|
||||
return GsonUtil.get().toJson(o);
|
||||
}
|
||||
|
||||
private final Logger log = LoggerFactory.getLogger(ExecStore.class);
|
||||
private transient final Logger log = LoggerFactory.getLogger(ExecStore.class);
|
||||
|
||||
private Supplier<ProcessExecutor> executorSupplier = () -> new ProcessExecutor().readOutput(true);
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@ import io.kamax.matrix._MatrixID;
|
||||
import io.kamax.mxisd.UserIdType;
|
||||
import io.kamax.mxisd.auth.provider.AuthenticatorProvider;
|
||||
import io.kamax.mxisd.auth.provider.BackendAuthResult;
|
||||
import io.kamax.mxisd.config.FirebaseConfig;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -38,10 +39,14 @@ import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class GoogleFirebaseAuthenticator extends GoogleFirebaseBackend implements AuthenticatorProvider {
|
||||
|
||||
private Logger log = LoggerFactory.getLogger(GoogleFirebaseAuthenticator.class);
|
||||
private transient final Logger log = LoggerFactory.getLogger(GoogleFirebaseAuthenticator.class);
|
||||
|
||||
private PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
|
||||
|
||||
public GoogleFirebaseAuthenticator(FirebaseConfig cfg) {
|
||||
this(cfg.isEnabled(), cfg.getCredentials(), cfg.getDatabase());
|
||||
}
|
||||
|
||||
public GoogleFirebaseAuthenticator(boolean isEnabled, String credsPath, String db) {
|
||||
super(isEnabled, "AuthenticationProvider", credsPath, db);
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ import java.io.IOException;
|
||||
|
||||
public class GoogleFirebaseBackend {
|
||||
|
||||
private Logger log = LoggerFactory.getLogger(GoogleFirebaseBackend.class);
|
||||
private transient final Logger log = LoggerFactory.getLogger(GoogleFirebaseBackend.class);
|
||||
|
||||
private boolean isEnabled;
|
||||
private FirebaseAuth fbAuth;
|
||||
|
||||
@@ -25,6 +25,7 @@ import com.google.firebase.tasks.OnFailureListener;
|
||||
import com.google.firebase.tasks.OnSuccessListener;
|
||||
import io.kamax.matrix.MatrixID;
|
||||
import io.kamax.matrix.ThreePidMedium;
|
||||
import io.kamax.mxisd.config.MxisdConfig;
|
||||
import io.kamax.mxisd.lookup.SingleLookupReply;
|
||||
import io.kamax.mxisd.lookup.SingleLookupRequest;
|
||||
import io.kamax.mxisd.lookup.ThreePidMapping;
|
||||
@@ -40,9 +41,13 @@ import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class GoogleFirebaseProvider extends GoogleFirebaseBackend implements IThreePidProvider {
|
||||
|
||||
private Logger log = LoggerFactory.getLogger(GoogleFirebaseProvider.class);
|
||||
private transient final Logger log = LoggerFactory.getLogger(GoogleFirebaseProvider.class);
|
||||
private String domain;
|
||||
|
||||
public GoogleFirebaseProvider(MxisdConfig cfg) {
|
||||
this(cfg.getFirebase().isEnabled(), cfg.getFirebase().getCredentials(), cfg.getFirebase().getDatabase(), cfg.getMatrix().getDomain());
|
||||
}
|
||||
|
||||
public GoogleFirebaseProvider(boolean isEnabled, String credsPath, String db, String domain) {
|
||||
super(isEnabled, "ThreePidProvider", credsPath, db);
|
||||
this.domain = domain;
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* mxisd - Matrix Identity Server Daemon
|
||||
* Copyright (C) 2018 Kamax Sarl
|
||||
*
|
||||
* https://www.kamax.io/
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package io.kamax.mxisd.backend.firebase;
|
||||
|
||||
import io.kamax.mxisd.Mxisd;
|
||||
import io.kamax.mxisd.auth.AuthProviders;
|
||||
import io.kamax.mxisd.backend.IdentityStoreSupplier;
|
||||
import io.kamax.mxisd.config.MxisdConfig;
|
||||
import io.kamax.mxisd.lookup.ThreePidProviders;
|
||||
|
||||
public class GoogleFirebaseStoreSupplier implements IdentityStoreSupplier {
|
||||
|
||||
@Override
|
||||
public void accept(Mxisd mxisd) {
|
||||
accept(mxisd.getConfig());
|
||||
}
|
||||
|
||||
public void accept(MxisdConfig cfg) {
|
||||
if (cfg.getFirebase().isEnabled()) {
|
||||
AuthProviders.register(() -> new GoogleFirebaseAuthenticator(cfg.getFirebase()));
|
||||
ThreePidProviders.register(() -> new GoogleFirebaseProvider(cfg));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -43,8 +43,6 @@ import org.apache.directory.api.ldap.model.message.SearchScope;
|
||||
import org.apache.directory.ldap.client.api.LdapConnection;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.HashSet;
|
||||
@@ -52,14 +50,12 @@ import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
|
||||
@Component
|
||||
public class LdapAuthProvider extends LdapBackend implements AuthenticatorProvider {
|
||||
|
||||
private Logger log = LoggerFactory.getLogger(LdapAuthProvider.class);
|
||||
private transient final Logger log = LoggerFactory.getLogger(LdapAuthProvider.class);
|
||||
|
||||
private PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
|
||||
|
||||
@Autowired
|
||||
public LdapAuthProvider(LdapConfig cfg, MatrixConfig mxCfg) {
|
||||
super(cfg, mxCfg);
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ public abstract class LdapBackend {
|
||||
public static final String UID = "uid";
|
||||
public static final String MATRIX_ID = "mxid";
|
||||
|
||||
private Logger log = LoggerFactory.getLogger(LdapBackend.class);
|
||||
private transient final Logger log = LoggerFactory.getLogger(LdapBackend.class);
|
||||
|
||||
private LdapConfig cfg;
|
||||
private MatrixConfig mxCfg;
|
||||
|
||||
@@ -22,9 +22,9 @@ package io.kamax.mxisd.backend.ldap;
|
||||
|
||||
import io.kamax.mxisd.config.MatrixConfig;
|
||||
import io.kamax.mxisd.config.ldap.LdapConfig;
|
||||
import io.kamax.mxisd.controller.directory.v1.io.UserDirectorySearchResult;
|
||||
import io.kamax.mxisd.directory.IDirectoryProvider;
|
||||
import io.kamax.mxisd.exception.InternalServerError;
|
||||
import io.kamax.mxisd.http.io.UserDirectorySearchResult;
|
||||
import io.kamax.mxisd.util.GsonUtil;
|
||||
import org.apache.directory.api.ldap.model.cursor.CursorException;
|
||||
import org.apache.directory.api.ldap.model.cursor.CursorLdapReferralException;
|
||||
@@ -35,19 +35,15 @@ import org.apache.directory.api.ldap.model.message.SearchScope;
|
||||
import org.apache.directory.ldap.client.api.LdapConnection;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
public class LdapDirectoryProvider extends LdapBackend implements IDirectoryProvider {
|
||||
|
||||
private Logger log = LoggerFactory.getLogger(LdapDirectoryProvider.class);
|
||||
private transient final Logger log = LoggerFactory.getLogger(LdapDirectoryProvider.class);
|
||||
|
||||
@Autowired
|
||||
public LdapDirectoryProvider(LdapConfig cfg, MatrixConfig mxCfg) {
|
||||
super(cfg, mxCfg);
|
||||
}
|
||||
@@ -95,7 +91,6 @@ public class LdapDirectoryProvider extends LdapBackend implements IDirectoryProv
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} catch (CursorLdapReferralException e) {
|
||||
log.warn("An entry is only available via referral, skipping");
|
||||
} catch (IOException | LdapException | CursorException e) {
|
||||
|
||||
@@ -36,8 +36,6 @@ import org.apache.directory.api.ldap.model.message.SearchScope;
|
||||
import org.apache.directory.ldap.client.api.LdapConnection;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
@@ -45,12 +43,10 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@Component
|
||||
public class LdapProfileProvider extends LdapBackend implements ProfileProvider {
|
||||
|
||||
private transient Logger log = LoggerFactory.getLogger(LdapProfileProvider.class);
|
||||
private transient final Logger log = LoggerFactory.getLogger(LdapProfileProvider.class);
|
||||
|
||||
@Autowired
|
||||
public LdapProfileProvider(LdapConfig cfg, MatrixConfig mxCfg) {
|
||||
super(cfg, mxCfg);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* mxisd - Matrix Identity Server Daemon
|
||||
* Copyright (C) 2018 Kamax Sarl
|
||||
*
|
||||
* https://www.kamax.io/
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package io.kamax.mxisd.backend.ldap;
|
||||
|
||||
import io.kamax.mxisd.Mxisd;
|
||||
import io.kamax.mxisd.auth.AuthProviders;
|
||||
import io.kamax.mxisd.backend.IdentityStoreSupplier;
|
||||
import io.kamax.mxisd.config.MxisdConfig;
|
||||
import io.kamax.mxisd.directory.DirectoryProviders;
|
||||
import io.kamax.mxisd.lookup.ThreePidProviders;
|
||||
import io.kamax.mxisd.profile.ProfileProviders;
|
||||
|
||||
public class LdapStoreSupplier implements IdentityStoreSupplier {
|
||||
|
||||
@Override
|
||||
public void accept(Mxisd mxisd) {
|
||||
accept(mxisd.getConfig());
|
||||
}
|
||||
|
||||
public void accept(MxisdConfig cfg) {
|
||||
if (cfg.getLdap().isEnabled()) {
|
||||
AuthProviders.register(() -> new LdapAuthProvider(cfg.getLdap(), cfg.getMatrix()));
|
||||
DirectoryProviders.register(() -> new LdapDirectoryProvider(cfg.getLdap(), cfg.getMatrix()));
|
||||
ThreePidProviders.register(() -> new LdapThreePidProvider(cfg.getLdap(), cfg.getMatrix()));
|
||||
ProfileProviders.register(() -> new LdapProfileProvider(cfg.getLdap(), cfg.getMatrix()));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -37,17 +37,15 @@ import org.apache.directory.api.ldap.model.message.SearchScope;
|
||||
import org.apache.directory.ldap.client.api.LdapConnection;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@Component
|
||||
public class LdapThreePidProvider extends LdapBackend implements IThreePidProvider {
|
||||
|
||||
private Logger log = LoggerFactory.getLogger(LdapThreePidProvider.class);
|
||||
private transient final Logger log = LoggerFactory.getLogger(LdapThreePidProvider.class);
|
||||
|
||||
public LdapThreePidProvider(LdapConfig cfg, MatrixConfig mxCfg) {
|
||||
super(cfg, mxCfg);
|
||||
|
||||
@@ -23,9 +23,7 @@ package io.kamax.mxisd.backend.ldap.netiq;
|
||||
import io.kamax.mxisd.backend.ldap.LdapAuthProvider;
|
||||
import io.kamax.mxisd.config.MatrixConfig;
|
||||
import io.kamax.mxisd.config.ldap.netiq.NetIqLdapConfig;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class NetIqLdapAuthProvider extends LdapAuthProvider {
|
||||
|
||||
public NetIqLdapAuthProvider(NetIqLdapConfig cfg, MatrixConfig mxCfg) {
|
||||
|
||||
@@ -23,9 +23,7 @@ package io.kamax.mxisd.backend.ldap.netiq;
|
||||
import io.kamax.mxisd.backend.ldap.LdapDirectoryProvider;
|
||||
import io.kamax.mxisd.config.MatrixConfig;
|
||||
import io.kamax.mxisd.config.ldap.netiq.NetIqLdapConfig;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class NetIqLdapDirectoryProvider extends LdapDirectoryProvider {
|
||||
|
||||
public NetIqLdapDirectoryProvider(NetIqLdapConfig cfg, MatrixConfig mxCfg) {
|
||||
|
||||
@@ -24,13 +24,9 @@ import io.kamax.matrix._MatrixID;
|
||||
import io.kamax.mxisd.backend.ldap.LdapProfileProvider;
|
||||
import io.kamax.mxisd.config.MatrixConfig;
|
||||
import io.kamax.mxisd.config.ldap.netiq.NetIqLdapConfig;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class NetIqLdapProfileProvider extends LdapProfileProvider {
|
||||
|
||||
@Autowired
|
||||
public NetIqLdapProfileProvider(NetIqLdapConfig cfg, MatrixConfig mxCfg) {
|
||||
super(cfg, mxCfg);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* mxisd - Matrix Identity Server Daemon
|
||||
* Copyright (C) 2018 Kamax Sarl
|
||||
*
|
||||
* https://www.kamax.io/
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package io.kamax.mxisd.backend.ldap.netiq;
|
||||
|
||||
import io.kamax.mxisd.Mxisd;
|
||||
import io.kamax.mxisd.auth.AuthProviders;
|
||||
import io.kamax.mxisd.backend.IdentityStoreSupplier;
|
||||
import io.kamax.mxisd.config.MxisdConfig;
|
||||
import io.kamax.mxisd.directory.DirectoryProviders;
|
||||
import io.kamax.mxisd.lookup.ThreePidProviders;
|
||||
import io.kamax.mxisd.profile.ProfileProviders;
|
||||
|
||||
public class NetIqLdapStoreSupplier implements IdentityStoreSupplier {
|
||||
|
||||
@Override
|
||||
public void accept(Mxisd mxisd) {
|
||||
accept(mxisd.getConfig());
|
||||
}
|
||||
|
||||
public void accept(MxisdConfig cfg) {
|
||||
if (cfg.getLdap().isEnabled()) {
|
||||
AuthProviders.register(() -> new NetIqLdapAuthProvider(cfg.getNetiq(), cfg.getMatrix()));
|
||||
DirectoryProviders.register(() -> new NetIqLdapDirectoryProvider(cfg.getNetiq(), cfg.getMatrix()));
|
||||
ThreePidProviders.register(() -> new NetIqLdapThreePidProvider(cfg.getNetiq(), cfg.getMatrix()));
|
||||
ProfileProviders.register(() -> new NetIqLdapProfileProvider(cfg.getNetiq(), cfg.getMatrix()));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -23,9 +23,7 @@ package io.kamax.mxisd.backend.ldap.netiq;
|
||||
import io.kamax.mxisd.backend.ldap.LdapThreePidProvider;
|
||||
import io.kamax.mxisd.config.MatrixConfig;
|
||||
import io.kamax.mxisd.config.ldap.netiq.NetIqLdapConfig;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class NetIqLdapThreePidProvider extends LdapThreePidProvider {
|
||||
|
||||
public NetIqLdapThreePidProvider(NetIqLdapConfig cfg, MatrixConfig mxCfg) {
|
||||
|
||||
@@ -31,8 +31,8 @@ import io.kamax.mxisd.config.MatrixConfig;
|
||||
import io.kamax.mxisd.config.memory.MemoryIdentityConfig;
|
||||
import io.kamax.mxisd.config.memory.MemoryStoreConfig;
|
||||
import io.kamax.mxisd.config.memory.MemoryThreePid;
|
||||
import io.kamax.mxisd.controller.directory.v1.io.UserDirectorySearchResult;
|
||||
import io.kamax.mxisd.directory.IDirectoryProvider;
|
||||
import io.kamax.mxisd.http.io.UserDirectorySearchResult;
|
||||
import io.kamax.mxisd.lookup.SingleLookupReply;
|
||||
import io.kamax.mxisd.lookup.SingleLookupRequest;
|
||||
import io.kamax.mxisd.lookup.ThreePidMapping;
|
||||
@@ -41,8 +41,6 @@ import io.kamax.mxisd.profile.ProfileProvider;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
@@ -51,15 +49,13 @@ import java.util.Optional;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
@Component
|
||||
public class MemoryIdentityStore implements AuthenticatorProvider, IDirectoryProvider, IThreePidProvider, ProfileProvider {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(MemoryIdentityStore.class);
|
||||
private transient final Logger logger = LoggerFactory.getLogger(MemoryIdentityStore.class);
|
||||
|
||||
private final MatrixConfig mxCfg;
|
||||
private final MemoryStoreConfig cfg;
|
||||
|
||||
@Autowired
|
||||
public MemoryIdentityStore(MatrixConfig mxCfg, MemoryStoreConfig cfg) {
|
||||
this.mxCfg = mxCfg;
|
||||
this.cfg = cfg;
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* mxisd - Matrix Identity Server Daemon
|
||||
* Copyright (C) 2018 Kamax Sarl
|
||||
*
|
||||
* https://www.kamax.io/
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package io.kamax.mxisd.backend.memory;
|
||||
|
||||
import io.kamax.mxisd.Mxisd;
|
||||
import io.kamax.mxisd.auth.AuthProviders;
|
||||
import io.kamax.mxisd.backend.IdentityStoreSupplier;
|
||||
import io.kamax.mxisd.config.MxisdConfig;
|
||||
import io.kamax.mxisd.directory.DirectoryProviders;
|
||||
import io.kamax.mxisd.lookup.ThreePidProviders;
|
||||
import io.kamax.mxisd.profile.ProfileProviders;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class MemoryIdentityStoreSupplier implements IdentityStoreSupplier {
|
||||
|
||||
@Override
|
||||
public void accept(Mxisd mxisd) {
|
||||
accept(mxisd.getConfig());
|
||||
}
|
||||
|
||||
public void accept(MxisdConfig cfg) {
|
||||
if (cfg.getMemory().isEnabled()) {
|
||||
Supplier<MemoryIdentityStore> supplier = () -> new MemoryIdentityStore(cfg.getMatrix(), cfg.getMemory());
|
||||
|
||||
AuthProviders.register(supplier);
|
||||
DirectoryProviders.register(supplier);
|
||||
ThreePidProviders.register(supplier);
|
||||
ProfileProviders.register(supplier);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -27,15 +27,11 @@ import io.kamax.mxisd.config.rest.RestBackendConfig;
|
||||
import io.kamax.mxisd.util.RestClientUtils;
|
||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||
import org.apache.http.client.methods.HttpUriRequest;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
@Component
|
||||
public class RestAuthProvider extends RestProvider implements AuthenticatorProvider {
|
||||
|
||||
@Autowired
|
||||
public RestAuthProvider(RestBackendConfig cfg) {
|
||||
super(cfg);
|
||||
}
|
||||
|
||||
@@ -23,20 +23,18 @@ package io.kamax.mxisd.backend.rest;
|
||||
import io.kamax.matrix.MatrixID;
|
||||
import io.kamax.mxisd.config.MatrixConfig;
|
||||
import io.kamax.mxisd.config.rest.RestBackendConfig;
|
||||
import io.kamax.mxisd.controller.directory.v1.io.UserDirectorySearchRequest;
|
||||
import io.kamax.mxisd.controller.directory.v1.io.UserDirectorySearchResult;
|
||||
import io.kamax.mxisd.directory.IDirectoryProvider;
|
||||
import io.kamax.mxisd.exception.InternalServerError;
|
||||
import io.kamax.mxisd.http.io.UserDirectorySearchRequest;
|
||||
import io.kamax.mxisd.http.io.UserDirectorySearchResult;
|
||||
import io.kamax.mxisd.util.RestClientUtils;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
@Component
|
||||
public class RestDirectoryProvider extends RestProvider implements IDirectoryProvider {
|
||||
|
||||
private MatrixConfig mxCfg;
|
||||
|
||||
@@ -40,7 +40,6 @@ import org.apache.http.entity.ContentType;
|
||||
import org.apache.http.entity.StringEntity;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URISyntaxException;
|
||||
@@ -48,10 +47,9 @@ import java.nio.charset.StandardCharsets;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
|
||||
@Component
|
||||
public class RestProfileProvider extends RestProvider implements ProfileProvider {
|
||||
|
||||
private final Logger log = LoggerFactory.getLogger(RestProfileProvider.class);
|
||||
private transient final Logger log = LoggerFactory.getLogger(RestProfileProvider.class);
|
||||
|
||||
public RestProfileProvider(RestBackendConfig cfg) {
|
||||
super(cfg);
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* mxisd - Matrix Identity Server Daemon
|
||||
* Copyright (C) 2018 Kamax Sarl
|
||||
*
|
||||
* https://www.kamax.io/
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package io.kamax.mxisd.backend.rest;
|
||||
|
||||
import io.kamax.mxisd.Mxisd;
|
||||
import io.kamax.mxisd.auth.AuthProviders;
|
||||
import io.kamax.mxisd.backend.IdentityStoreSupplier;
|
||||
import io.kamax.mxisd.config.MxisdConfig;
|
||||
import io.kamax.mxisd.directory.DirectoryProviders;
|
||||
import io.kamax.mxisd.lookup.ThreePidProviders;
|
||||
import io.kamax.mxisd.profile.ProfileProviders;
|
||||
|
||||
public class RestStoreSupplier implements IdentityStoreSupplier {
|
||||
|
||||
@Override
|
||||
public void accept(Mxisd mxisd) {
|
||||
accept(mxisd.getConfig());
|
||||
}
|
||||
|
||||
public void accept(MxisdConfig cfg) {
|
||||
if (cfg.getRest().isEnabled()) {
|
||||
AuthProviders.register(() -> new RestAuthProvider(cfg.getRest()));
|
||||
DirectoryProviders.register(() -> new RestDirectoryProvider(cfg.getRest(), cfg.getMatrix()));
|
||||
ThreePidProviders.register(() -> new RestThreePidProvider(cfg.getRest(), cfg.getMatrix()));
|
||||
ProfileProviders.register(() -> new RestProfileProvider(cfg.getRest()));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -35,8 +35,6 @@ import org.apache.http.client.methods.CloseableHttpResponse;
|
||||
import org.apache.http.client.methods.HttpUriRequest;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
@@ -44,14 +42,12 @@ import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
public class RestThreePidProvider extends RestProvider implements IThreePidProvider {
|
||||
|
||||
private Logger log = LoggerFactory.getLogger(RestThreePidProvider.class);
|
||||
private transient final Logger log = LoggerFactory.getLogger(RestThreePidProvider.class);
|
||||
|
||||
private MatrixConfig mxCfg; // FIXME should be done in the lookup manager
|
||||
|
||||
@Autowired
|
||||
public RestThreePidProvider(RestBackendConfig cfg, MatrixConfig mxCfg) {
|
||||
super(cfg);
|
||||
this.mxCfg = mxCfg;
|
||||
|
||||
@@ -39,7 +39,7 @@ import java.util.Optional;
|
||||
|
||||
public abstract class SqlProfileProvider implements ProfileProvider {
|
||||
|
||||
private Logger log = LoggerFactory.getLogger(SqlProfileProvider.class);
|
||||
private transient final Logger log = LoggerFactory.getLogger(SqlProfileProvider.class);
|
||||
|
||||
private SqlConfig.Profile cfg;
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ import java.util.Optional;
|
||||
|
||||
public abstract class SqlThreePidProvider implements IThreePidProvider {
|
||||
|
||||
private Logger log = LoggerFactory.getLogger(SqlThreePidProvider.class);
|
||||
private transient final Logger log = LoggerFactory.getLogger(SqlThreePidProvider.class);
|
||||
|
||||
private SqlConfig cfg;
|
||||
private MatrixConfig mxCfg;
|
||||
|
||||
@@ -27,20 +27,19 @@ import io.kamax.mxisd.config.sql.generic.GenericSqlProviderConfig;
|
||||
import io.kamax.mxisd.invitation.InvitationManager;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class GenericSqlAuthProvider implements AuthenticatorProvider {
|
||||
|
||||
private Logger log = LoggerFactory.getLogger(GenericSqlAuthProvider.class);
|
||||
private transient final Logger log = LoggerFactory.getLogger(GenericSqlAuthProvider.class);
|
||||
|
||||
@Autowired
|
||||
private GenericSqlProviderConfig cfg;
|
||||
|
||||
@Autowired
|
||||
private InvitationManager invMgr;
|
||||
|
||||
public GenericSqlAuthProvider(GenericSqlProviderConfig cfg, InvitationManager invMgr) {
|
||||
this.cfg = cfg;
|
||||
this.invMgr = invMgr;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
return cfg.getAuth().isEnabled();
|
||||
|
||||
@@ -25,9 +25,9 @@ import io.kamax.mxisd.backend.sql.SqlConnectionPool;
|
||||
import io.kamax.mxisd.config.MatrixConfig;
|
||||
import io.kamax.mxisd.config.sql.SqlConfig;
|
||||
import io.kamax.mxisd.config.sql.generic.GenericSqlProviderConfig;
|
||||
import io.kamax.mxisd.controller.directory.v1.io.UserDirectorySearchResult;
|
||||
import io.kamax.mxisd.directory.IDirectoryProvider;
|
||||
import io.kamax.mxisd.exception.InternalServerError;
|
||||
import io.kamax.mxisd.http.io.UserDirectorySearchResult;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -38,11 +38,11 @@ import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Optional;
|
||||
|
||||
import static io.kamax.mxisd.controller.directory.v1.io.UserDirectorySearchResult.Result;
|
||||
import static io.kamax.mxisd.http.io.UserDirectorySearchResult.Result;
|
||||
|
||||
public abstract class GenericSqlDirectoryProvider implements IDirectoryProvider {
|
||||
public class GenericSqlDirectoryProvider implements IDirectoryProvider {
|
||||
|
||||
private Logger log = LoggerFactory.getLogger(GenericSqlDirectoryProvider.class);
|
||||
private transient final Logger log = LoggerFactory.getLogger(GenericSqlDirectoryProvider.class);
|
||||
|
||||
protected SqlConfig cfg;
|
||||
protected MatrixConfig mxCfg;
|
||||
|
||||
@@ -22,9 +22,7 @@ package io.kamax.mxisd.backend.sql.generic;
|
||||
|
||||
import io.kamax.mxisd.backend.sql.SqlProfileProvider;
|
||||
import io.kamax.mxisd.config.sql.generic.GenericSqlProviderConfig;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class GenericSqlProfileProvider extends SqlProfileProvider {
|
||||
|
||||
public GenericSqlProfileProvider(GenericSqlProviderConfig cfg) {
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* mxisd - Matrix Identity Server Daemon
|
||||
* Copyright (C) 2018 Kamax Sarl
|
||||
*
|
||||
* https://www.kamax.io/
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package io.kamax.mxisd.backend.sql.generic;
|
||||
|
||||
import io.kamax.mxisd.Mxisd;
|
||||
import io.kamax.mxisd.auth.AuthProviders;
|
||||
import io.kamax.mxisd.backend.IdentityStoreSupplier;
|
||||
import io.kamax.mxisd.directory.DirectoryProviders;
|
||||
import io.kamax.mxisd.lookup.ThreePidProviders;
|
||||
import io.kamax.mxisd.profile.ProfileProviders;
|
||||
|
||||
public class GenericSqlStoreSupplier implements IdentityStoreSupplier {
|
||||
|
||||
@Override
|
||||
public void accept(Mxisd mxisd) {
|
||||
if (mxisd.getConfig().getSql().getAuth().isEnabled()) {
|
||||
AuthProviders.register(() -> new GenericSqlAuthProvider(mxisd.getConfig().getSql(), mxisd.getInvitationManager()));
|
||||
}
|
||||
|
||||
if (mxisd.getConfig().getSql().getDirectory().isEnabled()) {
|
||||
DirectoryProviders.register(() -> new GenericSqlDirectoryProvider(mxisd.getConfig().getSql(), mxisd.getConfig().getMatrix()));
|
||||
}
|
||||
|
||||
if (mxisd.getConfig().getSql().getIdentity().isEnabled()) {
|
||||
ThreePidProviders.register(() -> new GenericSqlThreePidProvider(mxisd.getConfig().getSql(), mxisd.getConfig().getMatrix()));
|
||||
}
|
||||
|
||||
if (mxisd.getConfig().getSql().getProfile().isEnabled()) {
|
||||
ProfileProviders.register(() -> new GenericSqlProfileProvider(mxisd.getConfig().getSql()));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -23,13 +23,9 @@ package io.kamax.mxisd.backend.sql.generic;
|
||||
import io.kamax.mxisd.backend.sql.SqlThreePidProvider;
|
||||
import io.kamax.mxisd.config.MatrixConfig;
|
||||
import io.kamax.mxisd.config.sql.generic.GenericSqlProviderConfig;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class GenericSqlThreePidProvider extends SqlThreePidProvider {
|
||||
|
||||
@Autowired
|
||||
public GenericSqlThreePidProvider(GenericSqlProviderConfig cfg, MatrixConfig mxCfg) {
|
||||
super(cfg, mxCfg);
|
||||
}
|
||||
|
||||
@@ -22,19 +22,15 @@ package io.kamax.mxisd.backend.sql.synapse;
|
||||
|
||||
import io.kamax.mxisd.backend.sql.SqlConnectionPool;
|
||||
import io.kamax.mxisd.config.sql.synapse.SynapseSqlProviderConfig;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.util.Optional;
|
||||
|
||||
@Component
|
||||
public class Synapse {
|
||||
|
||||
private SqlConnectionPool pool;
|
||||
|
||||
@Autowired
|
||||
public Synapse(SynapseSqlProviderConfig sqlCfg) {
|
||||
this.pool = new SqlConnectionPool(sqlCfg);
|
||||
}
|
||||
|
||||
@@ -24,32 +24,15 @@ import io.kamax.mxisd.backend.sql.generic.GenericSqlDirectoryProvider;
|
||||
import io.kamax.mxisd.config.MatrixConfig;
|
||||
import io.kamax.mxisd.config.sql.generic.GenericSqlProviderConfig;
|
||||
import io.kamax.mxisd.config.sql.synapse.SynapseSqlProviderConfig;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Objects;
|
||||
|
||||
@Component
|
||||
public class SynapseSqlDirectoryProvider extends GenericSqlDirectoryProvider {
|
||||
|
||||
@Autowired
|
||||
public SynapseSqlDirectoryProvider(SynapseSqlProviderConfig cfg, MatrixConfig mxCfg) {
|
||||
super(cfg, mxCfg);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setParameters(PreparedStatement stmt, String searchTerm) throws SQLException {
|
||||
stmt.setString(1, "%" + searchTerm + "%");
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
public void build() {
|
||||
if (!isEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
GenericSqlProviderConfig.Type queries = cfg.getDirectory().getQuery();
|
||||
if (Objects.isNull(queries.getName().getValue())) {
|
||||
@@ -60,4 +43,9 @@ public class SynapseSqlDirectoryProvider extends GenericSqlDirectoryProvider {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setParameters(PreparedStatement stmt, String searchTerm) throws SQLException {
|
||||
stmt.setString(1, "%" + searchTerm + "%");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -22,13 +22,9 @@ package io.kamax.mxisd.backend.sql.synapse;
|
||||
|
||||
import io.kamax.mxisd.backend.sql.SqlProfileProvider;
|
||||
import io.kamax.mxisd.config.sql.synapse.SynapseSqlProviderConfig;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class SynapseSqlProfileProvider extends SqlProfileProvider {
|
||||
|
||||
@Autowired
|
||||
public SynapseSqlProfileProvider(SynapseSqlProviderConfig cfg) {
|
||||
super(cfg);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* mxisd - Matrix Identity Server Daemon
|
||||
* Copyright (C) 2018 Kamax Sarl
|
||||
*
|
||||
* https://www.kamax.io/
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package io.kamax.mxisd.backend.sql.synapse;
|
||||
|
||||
import io.kamax.mxisd.Mxisd;
|
||||
import io.kamax.mxisd.backend.IdentityStoreSupplier;
|
||||
import io.kamax.mxisd.config.MxisdConfig;
|
||||
import io.kamax.mxisd.directory.DirectoryProviders;
|
||||
import io.kamax.mxisd.lookup.ThreePidProviders;
|
||||
import io.kamax.mxisd.profile.ProfileProviders;
|
||||
|
||||
public class SynapseSqlStoreSupplier implements IdentityStoreSupplier {
|
||||
|
||||
@Override
|
||||
public void accept(Mxisd mxisd) {
|
||||
accept(mxisd.getConfig());
|
||||
}
|
||||
|
||||
public void accept(MxisdConfig cfg) {
|
||||
if (cfg.getSynapseSql().getDirectory().isEnabled()) {
|
||||
DirectoryProviders.register(() -> new SynapseSqlDirectoryProvider(cfg.getSynapseSql(), cfg.getMatrix()));
|
||||
}
|
||||
|
||||
if (cfg.getSynapseSql().getIdentity().isEnabled()) {
|
||||
ThreePidProviders.register(() -> new SynapseSqlThreePidProvider(cfg.getSynapseSql(), cfg.getMatrix()));
|
||||
}
|
||||
|
||||
if (cfg.getSynapseSql().getProfile().isEnabled()) {
|
||||
ProfileProviders.register(() -> new SynapseSqlProfileProvider(cfg.getSynapseSql()));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -23,13 +23,9 @@ package io.kamax.mxisd.backend.sql.synapse;
|
||||
import io.kamax.mxisd.backend.sql.SqlThreePidProvider;
|
||||
import io.kamax.mxisd.config.MatrixConfig;
|
||||
import io.kamax.mxisd.config.sql.synapse.SynapseSqlProviderConfig;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class SynapseSqlThreePidProvider extends SqlThreePidProvider {
|
||||
|
||||
@Autowired
|
||||
public SynapseSqlThreePidProvider(SynapseSqlProviderConfig cfg, MatrixConfig mxCfg) {
|
||||
super(cfg, mxCfg);
|
||||
}
|
||||
|
||||
@@ -28,17 +28,13 @@ import io.kamax.mxisd.auth.provider.BackendAuthResult;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class WordpressAuthProvider implements AuthenticatorProvider {
|
||||
|
||||
private final Logger log = LoggerFactory.getLogger(WordpressAuthProvider.class);
|
||||
private transient final Logger log = LoggerFactory.getLogger(WordpressAuthProvider.class);
|
||||
|
||||
private WordpressRestBackend wordpress;
|
||||
|
||||
@Autowired
|
||||
public WordpressAuthProvider(WordpressRestBackend wordpress) {
|
||||
this.wordpress = wordpress;
|
||||
}
|
||||
|
||||
@@ -23,13 +23,11 @@ package io.kamax.mxisd.backend.wordpress;
|
||||
import io.kamax.matrix.MatrixID;
|
||||
import io.kamax.mxisd.config.MatrixConfig;
|
||||
import io.kamax.mxisd.config.wordpress.WordpressConfig;
|
||||
import io.kamax.mxisd.controller.directory.v1.io.UserDirectorySearchResult;
|
||||
import io.kamax.mxisd.directory.IDirectoryProvider;
|
||||
import io.kamax.mxisd.exception.InternalServerError;
|
||||
import io.kamax.mxisd.http.io.UserDirectorySearchResult;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
@@ -37,16 +35,14 @@ import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Optional;
|
||||
|
||||
@Component
|
||||
public class WordpressDirectoryProvider implements IDirectoryProvider {
|
||||
|
||||
private final Logger log = LoggerFactory.getLogger(WordpressDirectoryProvider.class);
|
||||
private transient final Logger log = LoggerFactory.getLogger(WordpressDirectoryProvider.class);
|
||||
|
||||
private WordpressConfig cfg;
|
||||
private WordressSqlBackend wordpress;
|
||||
private MatrixConfig mxCfg;
|
||||
|
||||
@Autowired
|
||||
public WordpressDirectoryProvider(WordpressConfig cfg, WordressSqlBackend wordpress, MatrixConfig mxCfg) {
|
||||
this.cfg = cfg;
|
||||
this.wordpress = wordpress;
|
||||
|
||||
@@ -34,15 +34,12 @@ import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.util.EntityUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
@Component
|
||||
public class WordpressRestBackend {
|
||||
|
||||
private final Logger log = LoggerFactory.getLogger(WordpressRestBackend.class);
|
||||
private transient final Logger log = LoggerFactory.getLogger(WordpressRestBackend.class);
|
||||
private final String jsonPath = "/wp-json";
|
||||
private final String jwtPath = "/jwt-auth/v1";
|
||||
|
||||
@@ -54,7 +51,6 @@ public class WordpressRestBackend {
|
||||
|
||||
private String token;
|
||||
|
||||
@Autowired
|
||||
public WordpressRestBackend(WordpressConfig cfg, CloseableHttpClient client) {
|
||||
this.cfg = cfg;
|
||||
this.client = client;
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
* mxisd - Matrix Identity Server Daemon
|
||||
* Copyright (C) 2018 Kamax Sarl
|
||||
*
|
||||
* https://www.kamax.io/
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package io.kamax.mxisd.backend.wordpress;
|
||||
|
||||
import io.kamax.mxisd.Mxisd;
|
||||
import io.kamax.mxisd.auth.AuthProviders;
|
||||
import io.kamax.mxisd.backend.IdentityStoreSupplier;
|
||||
import io.kamax.mxisd.config.MatrixConfig;
|
||||
import io.kamax.mxisd.config.wordpress.WordpressConfig;
|
||||
import io.kamax.mxisd.directory.DirectoryProviders;
|
||||
import io.kamax.mxisd.lookup.ThreePidProviders;
|
||||
|
||||
public class WordpressStoreSupplier implements IdentityStoreSupplier {
|
||||
|
||||
@Override
|
||||
public void accept(Mxisd m) {
|
||||
WordpressConfig wpCfg = m.getConfig().getWordpress();
|
||||
MatrixConfig mxCfg = m.getConfig().getMatrix();
|
||||
|
||||
if (m.getConfig().getWordpress().isEnabled()) {
|
||||
WordpressRestBackend restBackend = new WordpressRestBackend(wpCfg, m.getHttpClient());
|
||||
WordressSqlBackend sqlBackend = new WordressSqlBackend(wpCfg);
|
||||
|
||||
AuthProviders.register(() -> new WordpressAuthProvider(restBackend));
|
||||
DirectoryProviders.register(() -> new WordpressDirectoryProvider(wpCfg, sqlBackend, mxCfg));
|
||||
ThreePidProviders.register(() -> new WordpressThreePidProvider(mxCfg, wpCfg, sqlBackend));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -31,8 +31,6 @@ import io.kamax.mxisd.lookup.ThreePidMapping;
|
||||
import io.kamax.mxisd.lookup.provider.IThreePidProvider;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
@@ -42,16 +40,14 @@ import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
@Component
|
||||
public class WordpressThreePidProvider implements IThreePidProvider {
|
||||
|
||||
private final Logger log = LoggerFactory.getLogger(WordpressThreePidProvider.class);
|
||||
private transient final Logger log = LoggerFactory.getLogger(WordpressThreePidProvider.class);
|
||||
|
||||
private MatrixConfig mxCfg;
|
||||
private WordpressConfig cfg;
|
||||
private WordressSqlBackend wordpress;
|
||||
|
||||
@Autowired
|
||||
public WordpressThreePidProvider(MatrixConfig mxCfg, WordpressConfig cfg, WordressSqlBackend wordpress) {
|
||||
this.mxCfg = mxCfg;
|
||||
this.cfg = cfg;
|
||||
|
||||
@@ -24,22 +24,17 @@ import com.mchange.v2.c3p0.ComboPooledDataSource;
|
||||
import io.kamax.mxisd.config.wordpress.WordpressConfig;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.SQLException;
|
||||
|
||||
@Component
|
||||
public class WordressSqlBackend {
|
||||
|
||||
private Logger log = LoggerFactory.getLogger(WordressSqlBackend.class);
|
||||
private transient final Logger log = LoggerFactory.getLogger(WordressSqlBackend.class);
|
||||
|
||||
private WordpressConfig cfg;
|
||||
|
||||
private ComboPooledDataSource ds;
|
||||
|
||||
@Autowired
|
||||
public WordressSqlBackend(WordpressConfig cfg) {
|
||||
this.cfg = cfg;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user