From 9cc862246f93aff1ffe76a5c8e424853700cf77e Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Wed, 6 Mar 2019 16:23:45 +0100 Subject: [PATCH] Local https URL resolution attempt with fallback to parser's default See gh-22504 --- .../beans/factory/xml/ResourceEntityResolver.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/xml/ResourceEntityResolver.java b/spring-beans/src/main/java/org/springframework/beans/factory/xml/ResourceEntityResolver.java index 989576a3fd..e8fc351df5 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/xml/ResourceEntityResolver.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/xml/ResourceEntityResolver.java @@ -114,9 +114,18 @@ public class ResourceEntityResolver extends DelegatingEntityResolver { if (url.startsWith("http:")) { url = "https:" + url.substring(5); } - source = new InputSource(url); - source.setPublicId(publicId); - return source; + try { + source = new InputSource(new URL(url).openStream()); + source.setPublicId(publicId); + source.setSystemId(systemId); + } + catch (IOException ex) { + if (logger.isDebugEnabled()) { + logger.debug("Could not resolve XML entity [" + systemId + "] through URL [" + url + "]", ex); + } + // Fall back to the parser's default behavior. + source = null; + } } } -- GitLab