Fix invalid parsing of 3PID medium configs
This commit is contained in:
@@ -20,7 +20,6 @@
|
|||||||
|
|
||||||
package io.kamax.mxisd.config.threepid;
|
package io.kamax.mxisd.config.threepid;
|
||||||
|
|
||||||
import com.google.gson.JsonObject;
|
|
||||||
import io.kamax.matrix.ThreePidMedium;
|
import io.kamax.matrix.ThreePidMedium;
|
||||||
import io.kamax.matrix.json.GsonUtil;
|
import io.kamax.matrix.json.GsonUtil;
|
||||||
import io.kamax.mxisd.config.threepid.medium.EmailConfig;
|
import io.kamax.mxisd.config.threepid.medium.EmailConfig;
|
||||||
@@ -31,18 +30,18 @@ import java.util.Map;
|
|||||||
|
|
||||||
public class ThreePidConfig {
|
public class ThreePidConfig {
|
||||||
|
|
||||||
private Map<String, JsonObject> medium = new HashMap<>();
|
private Map<String, Object> medium = new HashMap<>();
|
||||||
|
|
||||||
public ThreePidConfig() {
|
public ThreePidConfig() { // TODO Check if this is still needed
|
||||||
medium.put(ThreePidMedium.Email.getId(), GsonUtil.makeObj(new EmailConfig()));
|
medium.put(ThreePidMedium.Email.getId(), GsonUtil.makeObj(new EmailConfig()));
|
||||||
medium.put(ThreePidMedium.PhoneNumber.getId(), GsonUtil.makeObj(new PhoneConfig()));
|
medium.put(ThreePidMedium.PhoneNumber.getId(), GsonUtil.makeObj(new PhoneConfig()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, JsonObject> getMedium() {
|
public Map<String, Object> getMedium() {
|
||||||
return medium;
|
return medium;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMedium(Map<String, JsonObject> medium) {
|
public void setMedium(Map<String, Object> medium) {
|
||||||
this.medium = medium;
|
this.medium = medium;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -63,9 +63,9 @@ public class BuiltInNotificationHandlerSupplier implements NotificationHandlerSu
|
|||||||
|
|
||||||
private void acceptEmail(String handler, Mxisd mxisd) {
|
private void acceptEmail(String handler, Mxisd mxisd) {
|
||||||
if (StringUtils.equals(EmailRawNotificationHandler.ID, handler)) {
|
if (StringUtils.equals(EmailRawNotificationHandler.ID, handler)) {
|
||||||
JsonObject emailCfgJson = mxisd.getConfig().getThreepid().getMedium().get(ThreePidMedium.Email.getId());
|
Object o = mxisd.getConfig().getThreepid().getMedium().get(ThreePidMedium.Email.getId());
|
||||||
if (Objects.nonNull(emailCfgJson)) {
|
if (Objects.nonNull(o)) {
|
||||||
EmailConfig emailCfg = GsonUtil.get().fromJson(emailCfgJson, EmailConfig.class);
|
EmailConfig emailCfg = GsonUtil.get().fromJson(GsonUtil.makeObj(o), EmailConfig.class);
|
||||||
|
|
||||||
if (org.apache.commons.lang.StringUtils.isBlank(emailCfg.getGenerator())) {
|
if (org.apache.commons.lang.StringUtils.isBlank(emailCfg.getGenerator())) {
|
||||||
throw new ConfigurationException("notification.email.generator");
|
throw new ConfigurationException("notification.email.generator");
|
||||||
@@ -105,9 +105,9 @@ public class BuiltInNotificationHandlerSupplier implements NotificationHandlerSu
|
|||||||
|
|
||||||
private void acceptPhone(String handler, Mxisd mxisd) {
|
private void acceptPhone(String handler, Mxisd mxisd) {
|
||||||
if (StringUtils.equals(PhoneNotificationHandler.ID, handler)) {
|
if (StringUtils.equals(PhoneNotificationHandler.ID, handler)) {
|
||||||
JsonObject cfgJson = mxisd.getConfig().getThreepid().getMedium().get(ThreePidMedium.PhoneNumber.getId());
|
Object o = mxisd.getConfig().getThreepid().getMedium().get(ThreePidMedium.PhoneNumber.getId());
|
||||||
if (Objects.nonNull(cfgJson)) {
|
if (Objects.nonNull(o)) {
|
||||||
PhoneConfig cfg = GsonUtil.get().fromJson(cfgJson, PhoneConfig.class);
|
PhoneConfig cfg = GsonUtil.get().fromJson(GsonUtil.makeObj(o), PhoneConfig.class);
|
||||||
|
|
||||||
List<PhoneGenerator> generators = StreamSupport
|
List<PhoneGenerator> generators = StreamSupport
|
||||||
.stream(ServiceLoader.load(PhoneGeneratorSupplier.class).spliterator(), false)
|
.stream(ServiceLoader.load(PhoneGeneratorSupplier.class).spliterator(), false)
|
||||||
|
|||||||
Reference in New Issue
Block a user