X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=netconf%2Fcallhome-provider%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Fcallhome%2Fmount%2FCallHomeAuthProviderImpl.java;h=da5804af430a3560408df665a18ad14d22993774;hb=aab675bb3b93911cfd28f94e6102ddfa772db77a;hp=17b5c6be57a6d13a757e3625dc828019873600c5;hpb=4ac4b04b18e2667d43109b730dcd362038f9d4f9;p=netconf.git diff --git a/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/CallHomeAuthProviderImpl.java b/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/CallHomeAuthProviderImpl.java index 17b5c6be57..da5804af43 100644 --- a/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/CallHomeAuthProviderImpl.java +++ b/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/CallHomeAuthProviderImpl.java @@ -33,6 +33,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf. import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev161109.netconf.callhome.server.Global; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev161109.netconf.callhome.server.Global.MountPointNamingStrategy; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev161109.netconf.callhome.server.allowed.devices.Device; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev161109.netconf.callhome.server.allowed.devices.device.transport.Ssh; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev161109.netconf.callhome.server.allowed.devices.device.transport.ssh.SshClientParams; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; @@ -77,7 +79,12 @@ public class CallHomeAuthProviderImpl implements CallHomeAuthorizationProvider, if (deviceSpecific != null) { sessionName = deviceSpecific.getUniqueId(); - deviceCred = deviceSpecific.getCredentials(); + if (deviceSpecific.getTransport() instanceof Ssh) { + final SshClientParams clientParams = ((Ssh) deviceSpecific.getTransport()).getSshClientParams(); + deviceCred = clientParams.getCredentials(); + } else { + deviceCred = deviceSpecific.getCredentials(); + } } else { String syntheticId = fromRemoteAddress(remoteAddress); if (globalConfig.allowedUnknownKeys()) { @@ -158,7 +165,7 @@ public class CallHomeAuthProviderImpl implements CallHomeAuthorizationProvider, private void deleteDevice(final Device dataBefore) { if (dataBefore != null) { - final String publicKey = dataBefore.getSshHostKey(); + final String publicKey = getHostPublicKey(dataBefore); if (publicKey != null) { LOG.debug("Removing device {}", dataBefore.getUniqueId()); removeDevice(publicKey, dataBefore); @@ -169,7 +176,7 @@ public class CallHomeAuthProviderImpl implements CallHomeAuthorizationProvider, } private void writeDevice(final Device dataAfter) { - final String publicKey = dataAfter.getSshHostKey(); + final String publicKey = getHostPublicKey(dataAfter); if (publicKey != null) { LOG.debug("Adding device {}", dataAfter.getUniqueId()); addDevice(publicKey, dataAfter); @@ -178,6 +185,14 @@ public class CallHomeAuthProviderImpl implements CallHomeAuthorizationProvider, } } + private String getHostPublicKey(final Device device) { + if (device.getTransport() instanceof Ssh) { + return ((Ssh) device.getTransport()).getSshClientParams().getHostKey(); + } else { + return device.getSshHostKey(); + } + } + abstract void addDevice(String publicKey, Device device); abstract void removeDevice(String publicKey, Device device);