use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev201015.credentials.Credentials in project netconf by opendaylight.
the class NetconfTopologyRPCProvider method handleEncryption.
private Credentials handleEncryption(final Credentials credentials) {
if (credentials instanceof LoginPw) {
final LoginPassword loginPassword = ((LoginPw) credentials).getLoginPassword();
final String encryptedPassword = encryptionService.encrypt(loginPassword.getPassword());
return new LoginPwBuilder().setLoginPassword(new LoginPasswordBuilder().setPassword(encryptedPassword).setUsername(loginPassword.getUsername()).build()).build();
}
// nothing else needs to be encrypted
return credentials;
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev201015.credentials.Credentials in project netconf by opendaylight.
the class NetconfTopologyRPCProviderTest method getInput.
private static CreateDeviceInput getInput(final boolean encrypt) {
CreateDeviceInputBuilder builder = new CreateDeviceInputBuilder();
final Credentials credentials;
if (encrypt) {
credentials = new LoginPwBuilder().setLoginPassword(new LoginPasswordBuilder().setUsername("test").setPassword(TEST_PWD).build()).build();
} else {
credentials = new LoginPwUnencryptedBuilder().setLoginPasswordUnencrypted(new LoginPasswordUnencryptedBuilder().setUsername("test").setPassword(TEST_PWD).build()).build();
}
return builder.setCredentials(credentials).setHost(new Host(new IpAddress(new Ipv4Address("10.18.16.188")))).setPort(new PortNumber(Uint16.valueOf(830))).setTcpOnly(Boolean.FALSE).setNodeId(NODE_ID.toString()).build();
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev201015.credentials.Credentials in project netconf by opendaylight.
the class NetconfTopologyImplTest method hideCredentialsTest.
@Test
public void hideCredentialsTest() {
final String userName = "admin";
final String password = "pa$$word";
final Node node = new NodeBuilder().addAugmentation(new NetconfNodeBuilder().setHost(new Host(new IpAddress(new Ipv4Address("127.0.0.1")))).setPort(new PortNumber(Uint16.valueOf(9999))).setReconnectOnChangedSchema(true).setDefaultRequestTimeoutMillis(Uint32.valueOf(1000)).setBetweenAttemptsTimeoutMillis(Uint16.valueOf(100)).setKeepaliveDelay(Uint32.valueOf(1000)).setTcpOnly(false).setProtocol(new ProtocolBuilder().setName(Name.TLS).build()).setCredentials(new LoginPasswordBuilder().setUsername(userName).setPassword(password).build()).build()).setNodeId(NodeId.getDefaultInstance("junos")).build();
final String transformedNetconfNode = AbstractNetconfTopology.hideCredentials(node);
assertTrue(transformedNetconfNode.contains("credentials=***"));
assertFalse(transformedNetconfNode.contains(userName));
assertFalse(transformedNetconfNode.contains(password));
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev201015.credentials.Credentials in project netconf by opendaylight.
the class CallHomeAuthProviderImpl method provideAuth.
@Override
public CallHomeAuthorization provideAuth(final SocketAddress remoteAddress, final PublicKey serverKey) {
Device deviceSpecific = deviceConfig.get(serverKey);
String sessionName;
Credentials deviceCred;
if (deviceSpecific != null) {
sessionName = deviceSpecific.getUniqueId();
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()) {
sessionName = syntheticId;
deviceCred = null;
statusReporter.asForceListedDevice(syntheticId, serverKey);
} else {
Device opDevice = deviceOp.get(serverKey);
if (opDevice == null) {
statusReporter.asUnlistedDevice(syntheticId, serverKey);
} else {
LOG.info("Repeating rejection of unlisted device with id of {}", opDevice.getUniqueId());
}
return CallHomeAuthorization.rejected();
}
}
final Credentials credentials = deviceCred != null ? deviceCred : globalConfig.getCredentials();
if (credentials == null) {
LOG.info("No credentials found for {}, rejecting.", remoteAddress);
return CallHomeAuthorization.rejected();
}
Builder authBuilder = CallHomeAuthorization.serverAccepted(sessionName, credentials.getUsername());
for (String password : credentials.getPasswords()) {
authBuilder.addPassword(password);
}
return authBuilder.build();
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev201015.credentials.Credentials in project netconf by opendaylight.
the class CallhomeStatusReporter method newDevice.
private static Device newDevice(final String id, final PublicKey serverKey, final Device1.DeviceStatus status) {
// used only for netconf devices that are connected via SSH transport and global credentials
String sshEncodedKey = serverKey.toString();
try {
sshEncodedKey = AuthorizedKeysDecoder.encodePublicKey(serverKey);
} catch (IOException e) {
LOG.warn("Unable to encode public key to ssh format.", e);
}
final SshClientParams sshParams = new SshClientParamsBuilder().setHostKey(sshEncodedKey).build();
final Transport transport = new SshBuilder().setSshClientParams(sshParams).build();
return new DeviceBuilder().setUniqueId(id).withKey(new DeviceKey(id)).setTransport(transport).addAugmentation(new Device1Builder().setDeviceStatus(status).build()).build();
}
Aggregations