Advertisement
Guest User

Untitled

a guest
Oct 16th, 2017
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.55 KB | None | 0 0
  1.  
  2. ------------MainActivity.java-------------
  3.  
  4. package com.example.demyon.opengatefinal;
  5.  
  6. import android.os.Bundle;
  7. import android.support.v7.app.AppCompatActivity;
  8. import android.util.Log;
  9. import android.view.View;
  10. import android.widget.Button;
  11.  
  12. import static junit.framework.Assert.assertEquals;
  13. import static junit.framework.Assert.fail;
  14.  
  15. public class MainActivity extends AppCompatActivity {
  16.  
  17. static final String command ="./gate.sh";
  18. static final String userName= "pi";
  19. static final String password= "1234";
  20. static final String connectionIP= "192.168.1.4";
  21. @Override
  22. protected void onCreate(Bundle savedInstanceState) {
  23. super.onCreate(savedInstanceState);
  24. setContentView(R.layout.activity_main);
  25.  
  26.  
  27.  
  28. Button openBtn = (Button) findViewById(R.id.openBtn);
  29.  
  30.  
  31.  
  32. openBtn.setOnClickListener(new View.OnClickListener() {
  33. @Override
  34. public void onClick(View v) {
  35.  
  36. Log.v("Tag","Erro numero 1");
  37. Log.v("Tag",userName+" "+password+" "+connectionIP);
  38. SSHManager instance = new SSHManager(userName, password, connectionIP, "");
  39. Log.v("Tag","Erro numero 2");
  40. String errorMessage = instance.connect();
  41. Log.v("Tag","Erro numero 3");
  42. if(errorMessage != null)
  43. {
  44. Log.v("Tag","Erro dentro do IF");
  45. System.out.println(errorMessage);
  46. fail();
  47. }
  48. Log.v("Tag","Erro numero 4");
  49. String expResult = "";
  50. // call sendCommand for each command and the output
  51. //(without prompts) is returned
  52. String result = instance.sendCommand(command);
  53. // close only after all commands are sent
  54. instance.close();
  55. assertEquals(expResult, result);
  56. Log.v("Tag","Erro Final");
  57. }
  58. });
  59.  
  60. }
  61. }
  62.  
  63.  
  64.  
  65. --------------SSHManager.java-----------
  66.  
  67. package com.example.demyon.opengatefinal;
  68.  
  69. import com.jcraft.jsch.Channel;
  70. import com.jcraft.jsch.ChannelExec;
  71. import com.jcraft.jsch.JSch;
  72. import com.jcraft.jsch.JSchException;
  73. import com.jcraft.jsch.Session;
  74.  
  75. import java.io.IOException;
  76. import java.io.InputStream;
  77. import java.util.logging.Level;
  78. import java.util.logging.Logger;
  79.  
  80. /**
  81. * Created by Demyon on 10/15/2017.
  82. */
  83.  
  84. public class SSHManager {
  85. private static final Logger LOGGER =
  86. Logger.getLogger(SSHManager.class.getName());
  87. private JSch jschSSHChannel;
  88. private String strUserName;
  89. private String strConnectionIP;
  90. private int intConnectionPort;
  91. private String strPassword;
  92. private Session sesConnection;;
  93. private int intTimeOut;
  94.  
  95. private void doCommonConstructorActions(String userName,
  96. String password, String connectionIP, String knownHostsFileName)
  97. {
  98. jschSSHChannel = new JSch();
  99.  
  100. try
  101. {
  102. jschSSHChannel.setKnownHosts(knownHostsFileName);
  103. }
  104. catch(JSchException jschX)
  105. {
  106. logError(jschX.getMessage());
  107. }
  108.  
  109. strUserName = userName;
  110. strPassword = password;
  111. strConnectionIP = connectionIP;
  112. }
  113.  
  114. public SSHManager(String userName, String password,
  115. String connectionIP, String knownHostsFileName)
  116. {
  117. doCommonConstructorActions(userName, password,
  118. connectionIP, knownHostsFileName);
  119. intConnectionPort = 22;
  120. intTimeOut = 60000;
  121. }
  122.  
  123. public SSHManager(String userName, String password, String connectionIP,
  124. String knownHostsFileName, int connectionPort)
  125. {
  126. doCommonConstructorActions(userName, password, connectionIP,
  127. knownHostsFileName);
  128. intConnectionPort = connectionPort;
  129. intTimeOut = 60000;
  130. }
  131.  
  132. public SSHManager(String userName, String password, String connectionIP,
  133. String knownHostsFileName, int connectionPort, int timeOutMilliseconds)
  134. {
  135. doCommonConstructorActions(userName, password, connectionIP,
  136. knownHostsFileName);
  137. intConnectionPort = connectionPort;
  138. intTimeOut = timeOutMilliseconds;
  139. }
  140.  
  141. public String connect()
  142. {
  143. String errorMessage = null;
  144.  
  145. try
  146. {
  147. sesConnection = jschSSHChannel.getSession(strUserName,
  148. strConnectionIP, intConnectionPort);
  149. sesConnection.setPassword(strPassword);
  150. // UNCOMMENT THIS FOR TESTING PURPOSES, BUT DO NOT USE IN PRODUCTION
  151. // sesConnection.setConfig("StrictHostKeyChecking", "no");
  152. sesConnection.connect(intTimeOut);
  153. }
  154. catch(JSchException jschX)
  155. {
  156. errorMessage = jschX.getMessage();
  157. }
  158.  
  159. return errorMessage;
  160. }
  161.  
  162. private String logError(String errorMessage)
  163. {
  164. if(errorMessage != null)
  165. {
  166. LOGGER.log(Level.SEVERE, "{0}:{1} - {2}",
  167. new Object[]{strConnectionIP, intConnectionPort, errorMessage});
  168. }
  169.  
  170. return errorMessage;
  171. }
  172.  
  173. private String logWarning(String warnMessage)
  174. {
  175. if(warnMessage != null)
  176. {
  177. LOGGER.log(Level.WARNING, "{0}:{1} - {2}",
  178. new Object[]{strConnectionIP, intConnectionPort, warnMessage});
  179. }
  180.  
  181. return warnMessage;
  182. }
  183.  
  184. public String sendCommand(String command)
  185. {
  186. StringBuilder outputBuffer = new StringBuilder();
  187.  
  188. try
  189. {
  190. Channel channel = sesConnection.openChannel("exec");
  191. ((ChannelExec)channel).setCommand(command);
  192. InputStream commandOutput = channel.getInputStream();
  193. channel.connect();
  194. int readByte = commandOutput.read();
  195.  
  196. while(readByte != 0xffffffff)
  197. {
  198. outputBuffer.append((char)readByte);
  199. readByte = commandOutput.read();
  200. }
  201.  
  202. channel.disconnect();
  203. }
  204. catch(IOException ioX)
  205. {
  206. logWarning(ioX.getMessage());
  207. return null;
  208. }
  209. catch(JSchException jschX)
  210. {
  211. logWarning(jschX.getMessage());
  212. return null;
  213. }
  214.  
  215. return outputBuffer.toString();
  216. }
  217.  
  218. public void close()
  219. {
  220. sesConnection.disconnect();
  221. }
  222.  
  223. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement