From 91ccb75fa1bccf62e2700601e18ae4437c8384db Mon Sep 17 00:00:00 2001 From: Max Dor Date: Mon, 2 Apr 2018 14:36:23 +0200 Subject: [PATCH] Properly handle invalid characters in identifiers for Wordpress --- .../backend/wordpress/WordpressDirectoryProvider.java | 8 ++++++-- .../backend/wordpress/WordpressThreePidProvider.java | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/kamax/mxisd/backend/wordpress/WordpressDirectoryProvider.java b/src/main/java/io/kamax/mxisd/backend/wordpress/WordpressDirectoryProvider.java index 4caf77c1..f11a6b73 100644 --- a/src/main/java/io/kamax/mxisd/backend/wordpress/WordpressDirectoryProvider.java +++ b/src/main/java/io/kamax/mxisd/backend/wordpress/WordpressDirectoryProvider.java @@ -83,8 +83,12 @@ public UserDirectorySearchResult search(String searchTerm, String query) { while (rSet.next()) { processRow(rSet).ifPresent(e -> { - e.setUserId(MatrixID.from(e.getUserId(), mxCfg.getDomain()).valid().getId()); - result.addResult(e); + try { + e.setUserId(MatrixID.from(e.getUserId(), mxCfg.getDomain()).valid().getId()); + result.addResult(e); + } catch (IllegalArgumentException ex) { + log.warn("Ignoring result {} - Invalid characters for a Matrix ID", e.getUserId()); + } }); } diff --git a/src/main/java/io/kamax/mxisd/backend/wordpress/WordpressThreePidProvider.java b/src/main/java/io/kamax/mxisd/backend/wordpress/WordpressThreePidProvider.java index 450e43d5..0cfeca2b 100644 --- a/src/main/java/io/kamax/mxisd/backend/wordpress/WordpressThreePidProvider.java +++ b/src/main/java/io/kamax/mxisd/backend/wordpress/WordpressThreePidProvider.java @@ -87,10 +87,14 @@ protected Optional<_MatrixID> find(ThreePid tpid) { while (rSet.next()) { String uid = rSet.getString("uid"); log.info("Found match: {}", uid); - return Optional.of(MatrixID.from(uid, mxCfg.getDomain()).valid()); + try { + return Optional.of(MatrixID.from(uid, mxCfg.getDomain()).valid()); + } catch (IllegalArgumentException ex) { + log.warn("Ignoring match {} - Invalid characters for a Matrix ID", uid); + } } - log.info("No match found in Wordpress"); + log.info("No valid match found in Wordpress"); return Optional.empty(); } } catch (SQLException e) {