Split up NetconfKeystoreAdapter
[netconf.git] / apps / callhome-provider / src / main / java / org / opendaylight / netconf / callhome / mount / tls / SslHandlerFactoryAdapter.java
index a012ff7a103822fcc65904628d644b5e6e7981cd..ced99a0e249915e40417d250a40ad6406a7a29b0 100644 (file)
@@ -7,12 +7,14 @@
  */
 package org.opendaylight.netconf.callhome.mount.tls;
 
+import static java.util.Objects.requireNonNull;
+
 import io.netty.handler.ssl.SslHandler;
 import java.util.Set;
-import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.netconf.callhome.protocol.tls.TlsAllowedDevicesMonitor;
 import org.opendaylight.netconf.client.SslHandlerFactory;
-import org.opendaylight.netconf.sal.connect.netconf.sal.NetconfKeystoreAdapter;
+import org.opendaylight.netconf.client.mdsal.api.KeyStoreProvider;
 import org.opendaylight.netconf.sal.connect.util.SslHandlerFactoryImpl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -23,10 +25,10 @@ public class SslHandlerFactoryAdapter implements SslHandlerFactory {
     private final TlsAllowedDevicesMonitor allowedDevicesMonitor;
     private final SslHandlerFactory sslHandlerFactory;
 
-    public SslHandlerFactoryAdapter(final DataBroker dataBroker, final TlsAllowedDevicesMonitor allowedDevicesMonitor) {
-        final NetconfKeystoreAdapter keystoreAdapter = new NetconfKeystoreAdapter(dataBroker);
-        this.sslHandlerFactory = new SslHandlerFactoryImpl(keystoreAdapter);
-        this.allowedDevicesMonitor = allowedDevicesMonitor;
+    public SslHandlerFactoryAdapter(final KeyStoreProvider keyStoreProvider,
+            final @NonNull TlsAllowedDevicesMonitor allowedDevicesMonitor) {
+        this.allowedDevicesMonitor = requireNonNull(allowedDevicesMonitor);
+        sslHandlerFactory = new SslHandlerFactoryImpl(keyStoreProvider);
     }
 
     @Override
@@ -36,14 +38,16 @@ public class SslHandlerFactoryAdapter implements SslHandlerFactory {
 
     @Override
     public SslHandler createSslHandler(final Set<String> allowedKeys) {
+        // FIXME: we are ignoring passed in keys?!
         return createSslHandlerFilteredByKeys();
     }
 
     private SslHandler createSslHandlerFilteredByKeys() {
-        if (allowedDevicesMonitor.findAllowedKeys().isEmpty()) {
+        final var allowedKeys = allowedDevicesMonitor.findAllowedKeys();
+        if (allowedKeys.isEmpty()) {
             LOG.error("No associated keys for TLS authentication were found");
             throw new IllegalStateException("No associated keys for TLS authentication were found");
         }
-        return sslHandlerFactory.createSslHandler(allowedDevicesMonitor.findAllowedKeys());
+        return sslHandlerFactory.createSslHandler(allowedKeys);
     }
 }
\ No newline at end of file