diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ProxyLoginModuleInitializer.java b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ProxyLoginModuleInitializer.java
index da4380d..d69cc90 100644
--- a/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ProxyLoginModuleInitializer.java
+++ b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ProxyLoginModuleInitializer.java
@@ -18,9 +18,8 @@
 
 import org.apache.felix.karaf.jaas.boot.ProxyLoginModule;
 import org.osgi.framework.BundleContext;
-import org.springframework.osgi.context.BundleContextAware;
 
-public class ProxyLoginModuleInitializer implements BundleContextAware {
+public class ProxyLoginModuleInitializer {
 
     private BundleContext bundleContext;
 
diff --git a/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ResourceKeystoreInstance.java b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ResourceKeystoreInstance.java
index 7c79fb9..b2c478c 100644
--- a/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ResourceKeystoreInstance.java
+++ b/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/ResourceKeystoreInstance.java
@@ -33,6 +33,8 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.net.URL;
+import java.net.URI;
 
 import javax.net.ssl.KeyManager;
 import javax.net.ssl.KeyManagerFactory;
@@ -43,7 +45,7 @@
 import org.apache.commons.logging.LogFactory;
 import org.apache.felix.karaf.jaas.config.KeystoreInstance;
 import org.apache.felix.karaf.jaas.config.KeystoreIsLocked;
-import org.springframework.core.io.Resource;
+import org.springframework.util.StringUtils;
 
 /**
  *
@@ -55,7 +57,7 @@
 
     private String name;
     private int rank;
-    private Resource path;
+    private URL path;
     private String keystorePassword;
     private Map keyPasswords = new HashMap();
     private File keystoreFile; // Only valid after startup and if the resource points to a file
@@ -97,17 +99,18 @@
     /**
      * @return the keystorePath
      */
-    public Resource getPath() {
+    public URL getPath() {
         return path;
     }
 
     /**
      * @param keystorePath the keystorePath to set
      */
-    public void setPath(Resource keystorePath) throws IOException {
+    public void setPath(URL keystorePath) throws IOException {
         this.path = keystorePath;
-        if (keystorePath.getURL().getProtocol().equals("file")) {
-            this.keystoreFile = keystorePath.getFile();
+        if (keystorePath.getProtocol().equals("file")) {
+            URI uri = URI.create(StringUtils.replace(keystorePath.toString(), " ", "%20"));
+            this.keystoreFile = new File(uri.getSchemeSpecificPart());
         }
     }
 
@@ -261,7 +264,7 @@
             if (keystore == null) {
                 keystore = KeyStore.getInstance(JKS);
             }
-            InputStream in = new BufferedInputStream(path.getInputStream());
+            InputStream in = new BufferedInputStream(path.openStream());
             keystore.load(in, keystorePassword == null ? new char[0] : keystorePassword.toCharArray());
             in.close();
             Enumeration aliases = keystore.aliases();
diff --git a/karaf/jaas/jaas-config/src/main/resources/META-INF/spring/servicemix-jaas.xml b/karaf/jaas/jaas-config/src/main/resources/META-INF/spring/servicemix-jaas.xml
index d878a3d..1655f9a 100644
--- a/karaf/jaas/jaas-config/src/main/resources/META-INF/spring/servicemix-jaas.xml
+++ b/karaf/jaas/jaas-config/src/main/resources/META-INF/spring/servicemix-jaas.xml
@@ -42,7 +42,9 @@
 
     <bean id="proxyLoginModuleInitializer"
           class="org.apache.felix.karaf.jaas.config.impl.ProxyLoginModuleInitializer"
-          init-method="init"/>
+          init-method="init">
+        <property name="bundleContext" ref="bundleContext"/>
+    </bean>
 
     <!-- Register the Straight-Through flow -->
     <bean id="keystoreManager" class="org.apache.felix.karaf.jaas.config.impl.OsgiKeystoreManager" />
