Allow to provide protocol in gravatar service url Gravatar service protocol (http/https) can be defined in provided url. If the protocol is not present, it will be taken from canonical web url. Change-Id: Ie9960445e26bd1274e0c3aabb9e95fdc48c18907
diff --git a/src/main/java/com/googlesource/gerrit/plugins/avatars/gravatar/GravatarAvatarProvider.java b/src/main/java/com/googlesource/gerrit/plugins/avatars/gravatar/GravatarAvatarProvider.java index f53464a..b481a99 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/avatars/gravatar/GravatarAvatarProvider.java +++ b/src/main/java/com/googlesource/gerrit/plugins/avatars/gravatar/GravatarAvatarProvider.java
@@ -42,7 +42,6 @@ return r.toString(); } - private final boolean ssl; private final String avatarType; private final String avatarRating; private final String gravatarUrl; @@ -53,17 +52,23 @@ @CanonicalWebUrl String canonicalUrl, @PluginName String pluginName, PluginConfigFactory cfgFactory) { - ssl = canonicalUrl.startsWith("https://"); this.avatarType = cfgFactory.getFromGerritConfig(pluginName).getString("type", "identicon"); this.avatarRating = cfgFactory.getFromGerritConfig(pluginName).getString("rating", "pg"); - this.gravatarUrl = - cfgFactory - .getFromGerritConfig(pluginName) - .getString("gravatarUrl", "www.gravatar.com/avatar/"); this.changeAvatarUrl = cfgFactory .getFromGerritConfig(pluginName) .getString("changeAvatarUrl", "http://www.gravatar.com"); + + String gravatarUrlCfg = + cfgFactory + .getFromGerritConfig(pluginName) + .getString("gravatarUrl", "www.gravatar.com/avatar/"); + if (gravatarUrlCfg.matches("^https?://.+")) { + this.gravatarUrl = gravatarUrlCfg; + } else { + this.gravatarUrl = + (canonicalUrl.startsWith("https://") ? "https://" : "http://") + gravatarUrlCfg; + } } @Override @@ -81,13 +86,7 @@ } catch (NoSuchAlgorithmException e) { throw new RuntimeException("MD5 digest not supported - required for Gravatar"); } - StringBuilder url = new StringBuilder(); - if (ssl) { - url.append("https://"); - } else { - url.append("http://"); - } - url.append(gravatarUrl); + StringBuilder url = new StringBuilder(gravatarUrl); url.append(hex(emailMd5)); url.append(".jpg"); url.append("?d=" + avatarType + "&r=" + avatarRating);
diff --git a/src/main/resources/Documentation/config.md b/src/main/resources/Documentation/config.md index 465ae8d..d9a0f67 100644 --- a/src/main/resources/Documentation/config.md +++ b/src/main/resources/Documentation/config.md
@@ -31,7 +31,7 @@ `plugin.@PLUGIN@.gravatarUrl` : URL that provides the Gravatar API. - Uses the same protocol (http, https) as gerrit.canonicalWebUrl. + Uses provided protocol (http, https) or the same as gerrit.canonicalWebUrl. Default: www.gravatar.com/avatar/