QPID-8426: [Broker-J] Fix loading of resources with a path containing spaces
diff --git a/broker-core/src/test/java/org/apache/qpid/server/test/KerberosUtilities.java b/broker-core/src/test/java/org/apache/qpid/server/test/KerberosUtilities.java
index e04b1b9..8bfd077 100644
--- a/broker-core/src/test/java/org/apache/qpid/server/test/KerberosUtilities.java
+++ b/broker-core/src/test/java/org/apache/qpid/server/test/KerberosUtilities.java
@@ -24,6 +24,7 @@
import java.io.File;
import java.io.IOException;
+import java.io.InputStream;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -45,6 +46,7 @@
import javax.security.auth.login.LoginContext;
import javax.security.auth.login.LoginException;
+import com.google.common.io.ByteStreams;
import org.ietf.jgss.GSSContext;
import org.ietf.jgss.GSSCredential;
import org.ietf.jgss.GSSException;
@@ -54,8 +56,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.qpid.server.util.FileUtils;
-
public class KerberosUtilities
{
private static final Logger LOGGER = LoggerFactory.getLogger(KerberosUtilities.class);
@@ -227,7 +227,15 @@
{
throw new IllegalArgumentException(String.format("Unknown resource '%s'", resourceName));
}
- final String config = new String(FileUtils.readFileAsBytes(resource.getFile()), UTF_8);
+ final String config;
+ try(InputStream is = resource.openStream())
+ {
+ config = new String(ByteStreams.toByteArray(is), UTF_8);
+ }
+ catch (IOException e)
+ {
+ throw new IOException(String.format("Failed to load resource '%s'", resource.toExternalForm()), e);
+ }
String newConfig = config.replace("AMQP/localhost", "AMQP/" + hostName);
if (IBM_LOGIN_MODULE_CLASS.equals(KERBEROS_LOGIN_MODULE_CLASS))
{