|
Ant example source code file (SSHBase.java)
The SSHBase.java source code/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package org.apache.tools.ant.taskdefs.optional.ssh; import com.jcraft.jsch.JSchException; import com.jcraft.jsch.Session; import com.jcraft.jsch.JSch; import org.apache.tools.ant.Task; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; /** * Base class for Ant tasks using jsch. * * @since Ant 1.6 */ public abstract class SSHBase extends Task implements LogListener { /** Default listen port for SSH daemon */ private static final int SSH_PORT = 22; private String host; private String knownHosts; private int port = SSH_PORT; private boolean failOnError = true; private boolean verbose; private SSHUserInfo userInfo; /** * Constructor for SSHBase. */ public SSHBase() { super(); userInfo = new SSHUserInfo(); } /** * Remote host, either DNS name or IP. * * @param host The new host value */ public void setHost(String host) { this.host = host; } /** * Get the host. * @return the host */ public String getHost() { return host; } /** * Set the failonerror flag. * Default is true * @param failure if true throw a build exception when a failure occuries, * otherwise just log the failure and continue */ public void setFailonerror(boolean failure) { failOnError = failure; } /** * Get the failonerror flag. * @return the failonerror flag */ public boolean getFailonerror() { return failOnError; } /** * Set the verbose flag. * @param verbose if true output more verbose logging * @since Ant 1.6.2 */ public void setVerbose(boolean verbose) { this.verbose = verbose; } /** * Get the verbose flag. * @return the verbose flag * @since Ant 1.6.2 */ public boolean getVerbose() { return verbose; } /** * Username known to remote host. * * @param username The new username value */ public void setUsername(String username) { userInfo.setName(username); } /** * Sets the password for the user. * * @param password The new password value */ public void setPassword(String password) { userInfo.setPassword(password); } /** * Sets the keyfile for the user. * * @param keyfile The new keyfile value */ public void setKeyfile(String keyfile) { userInfo.setKeyfile(keyfile); } /** * Sets the passphrase for the users key. * * @param passphrase The new passphrase value */ public void setPassphrase(String passphrase) { userInfo.setPassphrase(passphrase); } /** * Sets the path to the file that has the identities of * all known hosts. This is used by SSH protocol to validate * the identity of the host. The default is * <i>${user.home}/.ssh/known_hosts. * * @param knownHosts a path to the known hosts file. */ public void setKnownhosts(String knownHosts) { this.knownHosts = knownHosts; } /** * Setting this to true trusts hosts whose identity is unknown. * * @param yesOrNo if true trust the identity of unknown hosts. */ public void setTrust(boolean yesOrNo) { userInfo.setTrust(yesOrNo); } /** * Changes the port used to connect to the remote host. * * @param port port number of remote host. */ public void setPort(int port) { this.port = port; } /** * Get the port attribute. * @return the port */ public int getPort() { return port; } /** * Initialize the task. * This initializizs the known hosts and sets the default port. * @throws BuildException on error */ public void init() throws BuildException { super.init(); this.knownHosts = System.getProperty("user.home") + "/.ssh/known_hosts"; this.port = SSH_PORT; } /** * Open an ssh seession. * @return the opened session * @throws JSchException on error */ protected Session openSession() throws JSchException { JSch jsch = new JSch(); if (null != userInfo.getKeyfile()) { jsch.addIdentity(userInfo.getKeyfile()); } if (!userInfo.getTrust() && knownHosts != null) { log("Using known hosts: " + knownHosts, Project.MSG_DEBUG); jsch.setKnownHosts(knownHosts); } Session session = jsch.getSession(userInfo.getName(), host, port); session.setUserInfo(userInfo); log("Connecting to " + host + ":" + port); session.connect(); return session; } /** * Get the user information. * @return the user information */ protected SSHUserInfo getUserInfo() { return userInfo; } } Other Ant examples (source code examples)Here is a short list of links related to this Ant SSHBase.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.