Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ------------MainActivity.java-------------
- package com.example.demyon.opengatefinal;
- import android.os.Bundle;
- import android.support.v7.app.AppCompatActivity;
- import android.util.Log;
- import android.view.View;
- import android.widget.Button;
- import static junit.framework.Assert.assertEquals;
- import static junit.framework.Assert.fail;
- public class MainActivity extends AppCompatActivity {
- static final String command ="./gate.sh";
- static final String userName= "pi";
- static final String password= "1234";
- static final String connectionIP= "192.168.1.4";
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- Button openBtn = (Button) findViewById(R.id.openBtn);
- openBtn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Log.v("Tag","Erro numero 1");
- Log.v("Tag",userName+" "+password+" "+connectionIP);
- SSHManager instance = new SSHManager(userName, password, connectionIP, "");
- Log.v("Tag","Erro numero 2");
- String errorMessage = instance.connect();
- Log.v("Tag","Erro numero 3");
- if(errorMessage != null)
- {
- Log.v("Tag","Erro dentro do IF");
- System.out.println(errorMessage);
- fail();
- }
- Log.v("Tag","Erro numero 4");
- String expResult = "";
- // call sendCommand for each command and the output
- //(without prompts) is returned
- String result = instance.sendCommand(command);
- // close only after all commands are sent
- instance.close();
- assertEquals(expResult, result);
- Log.v("Tag","Erro Final");
- }
- });
- }
- }
- --------------SSHManager.java-----------
- package com.example.demyon.opengatefinal;
- import com.jcraft.jsch.Channel;
- import com.jcraft.jsch.ChannelExec;
- import com.jcraft.jsch.JSch;
- import com.jcraft.jsch.JSchException;
- import com.jcraft.jsch.Session;
- import java.io.IOException;
- import java.io.InputStream;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- /**
- * Created by Demyon on 10/15/2017.
- */
- public class SSHManager {
- private static final Logger LOGGER =
- Logger.getLogger(SSHManager.class.getName());
- private JSch jschSSHChannel;
- private String strUserName;
- private String strConnectionIP;
- private int intConnectionPort;
- private String strPassword;
- private Session sesConnection;;
- private int intTimeOut;
- private void doCommonConstructorActions(String userName,
- String password, String connectionIP, String knownHostsFileName)
- {
- jschSSHChannel = new JSch();
- try
- {
- jschSSHChannel.setKnownHosts(knownHostsFileName);
- }
- catch(JSchException jschX)
- {
- logError(jschX.getMessage());
- }
- strUserName = userName;
- strPassword = password;
- strConnectionIP = connectionIP;
- }
- public SSHManager(String userName, String password,
- String connectionIP, String knownHostsFileName)
- {
- doCommonConstructorActions(userName, password,
- connectionIP, knownHostsFileName);
- intConnectionPort = 22;
- intTimeOut = 60000;
- }
- public SSHManager(String userName, String password, String connectionIP,
- String knownHostsFileName, int connectionPort)
- {
- doCommonConstructorActions(userName, password, connectionIP,
- knownHostsFileName);
- intConnectionPort = connectionPort;
- intTimeOut = 60000;
- }
- public SSHManager(String userName, String password, String connectionIP,
- String knownHostsFileName, int connectionPort, int timeOutMilliseconds)
- {
- doCommonConstructorActions(userName, password, connectionIP,
- knownHostsFileName);
- intConnectionPort = connectionPort;
- intTimeOut = timeOutMilliseconds;
- }
- public String connect()
- {
- String errorMessage = null;
- try
- {
- sesConnection = jschSSHChannel.getSession(strUserName,
- strConnectionIP, intConnectionPort);
- sesConnection.setPassword(strPassword);
- // UNCOMMENT THIS FOR TESTING PURPOSES, BUT DO NOT USE IN PRODUCTION
- // sesConnection.setConfig("StrictHostKeyChecking", "no");
- sesConnection.connect(intTimeOut);
- }
- catch(JSchException jschX)
- {
- errorMessage = jschX.getMessage();
- }
- return errorMessage;
- }
- private String logError(String errorMessage)
- {
- if(errorMessage != null)
- {
- LOGGER.log(Level.SEVERE, "{0}:{1} - {2}",
- new Object[]{strConnectionIP, intConnectionPort, errorMessage});
- }
- return errorMessage;
- }
- private String logWarning(String warnMessage)
- {
- if(warnMessage != null)
- {
- LOGGER.log(Level.WARNING, "{0}:{1} - {2}",
- new Object[]{strConnectionIP, intConnectionPort, warnMessage});
- }
- return warnMessage;
- }
- public String sendCommand(String command)
- {
- StringBuilder outputBuffer = new StringBuilder();
- try
- {
- Channel channel = sesConnection.openChannel("exec");
- ((ChannelExec)channel).setCommand(command);
- InputStream commandOutput = channel.getInputStream();
- channel.connect();
- int readByte = commandOutput.read();
- while(readByte != 0xffffffff)
- {
- outputBuffer.append((char)readByte);
- readByte = commandOutput.read();
- }
- channel.disconnect();
- }
- catch(IOException ioX)
- {
- logWarning(ioX.getMessage());
- return null;
- }
- catch(JSchException jschX)
- {
- logWarning(jschX.getMessage());
- return null;
- }
- return outputBuffer.toString();
- }
- public void close()
- {
- sesConnection.disconnect();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement