All Downloads are FREE. Search and download functionalities are using the official Maven repository.

core.apiCore.helpers.ConnectionHelper Maven / Gradle / Ivy

package core.apiCore.helpers;

import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;

import core.support.configReader.Config;
import core.support.logger.TestLog;

public class ConnectionHelper {

	private static final String SSH_USER = "ssh.user";
	private static final String SSH_PASSWORD = "ssh.password";
	private static final String SSH_HOST = "ssh.host";
	private static final String SSH_PORT = "ssh.port";
	private static final String SSH_LPORT = "ssh.lport";
	private static final String SSH_RHOST = "ssh.rHost";
	private static final String SSH_RPORT = "ssh.rport";

	/**
	 * ssh connection supports port forwarding as well if host is empty, Then return
	 * if rhost is empty, return for port forwarding
	 */
	public static void sshConnect() {
		String user = Config.getValue(SSH_USER);
		String password = Config.getValue(SSH_PASSWORD);
		String host = Config.getValue(SSH_HOST);
		int port = Config.getIntValue(SSH_PORT);

		if (host.isEmpty())
			return;

		Session session = null;
		try {
			JSch jsch = new JSch();
			if (port != -1)
				session = jsch.getSession(user, host, port);
			else
				session = jsch.getSession(user, host);

			session.setPassword(password);
			session.setConfig("StrictHostKeyChecking", "no");
			TestLog.ConsoleLog("Establishing Connection...");
			session.connect();
			setPortForwarding(session);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static void setPortForwarding(Session session) throws JSchException {
		int lport = Config.getIntValue(SSH_LPORT);
		String rhost = Config.getValue(SSH_RHOST);
		int rport = Config.getIntValue(SSH_RPORT);

		if (!rhost.isEmpty()) {
			int assinged_port = -1;
			assinged_port = session.setPortForwardingL(lport, rhost, rport);

			TestLog.ConsoleLog("Port forwarding: assigned port: " + assinged_port + " -> " + rhost + ":" + rport);
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy