demande de l'aide - Java - Programmation
Marsh Posté le 06-04-2014 à 09:30:06
safouane271289 a écrit : salut tous Monde |
ca n'existe pas ... je pense que tu as mal posé la question ...
Je pense que tu veux passer une variable texte d'un formulaire html vers une applet et réciproque
Une maniére moderne en callback
http://www.dillonbuchanan.com/prog [...] avascript/
Autres possibilités plus rustiques et qui fonctionnent sur d'anciennes versions
http://web-design.lovetoknow.com/J [...] munication
Si tu veux faire du html vers servlet et vice versa, c'est autre chose ...
Marsh Posté le 06-04-2014 à 14:14:38
je vous explique .j'ai crée une interface web avec html et une class java qui permet de lancer le serveur Nessus et son page web (Nessus outil de Scan les vulnérabilités) .quand je doit appuyer sur le bouton html de la page accueil ,le code java doit être exécuter et affiche le résultat
Marsh Posté le 06-04-2014 à 22:30:15
Je ne comprend pas vraiment ce que tu veux faire et je pense que ce n'est pas clair pour toi non plus. Mais tu utilises un outil propriétaire à 1500 dollars mini, je pense que tu as de la documentation pour ce prix,
va voir la documentation de Nessus au sujet des possibilités d'intégration.
Marsh Posté le 07-04-2014 à 18:04:30
index.html
<html>
<head>
<script type="text/javascript">
function verif()
{
if((f.log.value)!==(f.pass.value))
{
alert("mot de pass et login invaldes" )
}
else if((f.log.value=="" ) && (f.pass.value=="" ))
{
alert("le login et mot de pass sont vide" );
}
else if ((f.log.value="admin" ) && (f.pass.value="admin" ))
{
if (f.liste[0].selected)
alert("Nesus" )
else
window.open('nmap.html')
}
obj=new packages.com.outil.scan.Nessus();
}
</script>
</head>
<body background="kali-linux.jpg">
<div><h1><center><font Color="#FFFF00"><marquee >Bienvenue dans Ma Plateforme</font></h1></center></marquee></div>
<center>
<form name="f">
<table>
<TR><TD align='right'><font Color="#FFFF00">Votre Login</font></TD><TD><INPUT size=12 name='log'></TD></TR>
<TR><TD align='right'><font Color="#FFFF00">Votre mot de passe</font></TD><TD><INPUT type=password size=12 name='pass'></TD></TR>
<tr><td><font Color="#FFFF00">Choisir une outil</font></td>
<td>
<select name="liste">
<option value="Nessus">Nessus</option>
<option value="Nmap">Nmap</option>
</select>
</td>
</tr>
<tr><td></td><td>
<p> <input type="submit" value="ok" onclick=verif()>
<input type="reset" value="Annuler" ></p>
</td></tr>
</table>
</form>
</center>
</body>
</html>
Nessus.java
package com.outil.scan;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Nessus {
public static void main(String[] args) {
Nessus obj = new Nessus();
//in mac oxs
String command = "/etc/init.d/nessusd start";
String command1= "iceweasel www.google.fr" ;
//in windows
//String command = "ping -n 3 " + domainName;
String output = obj.executeCommand(command);
System.out.println(output);
}
private String executeCommand(String command1) {
StringBuffer output = new StringBuffer();
Process p;
Runtime r = Runtime.getRuntime();
try {
r.exec(" iceweasel https://kali:8834/html5.html#/scans" );
p = Runtime.getRuntime().exec(command1);
p.waitFor();
BufferedReader reader =
new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine())!= null) {
output.append(line + "\n" );
}
} catch (Exception e) {
e.printStackTrace();
}
return output.toString();
}
}
1-je veux que mon code Nessus.java est exécuté lorssque j'appuis sur le boutton html ok .Je souhaiterais que tu teste ce deux code et tu va comprendre mieux
code nmap.html
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body background="kali-linux.jpg">
<div><h1><center><font Color="#FFFF00">Nmap</font></h1></center></div>
<center><textarea cols="60" rows="20"></textarea></center><p></p>
<center><input type="submit" value="Valider"></center>
</body>
</html>
code nmap.java
package com.outil.scan;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Nmap {
public static void main(String[] args) {
Nmap obj = new Nmap();
//in mac oxs
String command = "nmap 192.168.1.2 ";
//in windows
//String command = "ping -n 3 " + domainName;
String output = obj.executeCommand(command);
System.out.println(output);
}
private String executeCommand(String command) {
StringBuffer output = new StringBuffer();
Process p;
try {
p = Runtime.getRuntime().exec(command);
p.waitFor();
BufferedReader reader =
new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine())!= null) {
output.append(line + "\n" );
}
} catch (Exception e) {
e.printStackTrace();
}
return output.toString();
}
}
2- comme pour mon premier demande (éxècute le code java dans boutton html) mais je souhaiterais que le résultat de nmap.java est affiche dans le textarea
et merci pour votre collaboration
Marsh Posté le 07-04-2014 à 18:27:48
Le bouton ok est un bouton submit d'un formulaire.
La théorie des formulaires : la page sera redirigée vers l'action du formulaire (et ton formulaire n'a pas d'action ... ca tombe mal).
Mais toi tu veux exécuter une application java en appuyant sur le bouton ok d'une page html ... pas possible.
Cette appli java exécute, si je comprends bien le code, un navigateur iceweasel qui va charger la page "https://kali:8834/html5.html#/scans" avec des résultats de supervision ou scans (je pense) que tu veux récupérer par une autre appli java (je devine) pour le mettre dans le textarea d'une autre page html.
Laisses tomber. ce que tu veux faire est impossible. Une page html dans un navigateur communique avec un serveur, pas une appli en local. et une appli java en local n'a pas de possibilités de communiquer avec un navigateur en local.
Il va falloir revoir l'architecture de ton application.
Marsh Posté le 07-04-2014 à 19:06:52
pour Nessus je doit lancer le navigateur et pour Nmap je doit lancer le scan et afficher le résultat dans le textarea
Marsh Posté le 07-04-2014 à 19:44:49
1ère solution avec servlet + serveur d'application
Page index.html :
le clic sur le bouton OK appelle une servlet qu'on va appeler RecupererScansServlet
Tu vas installer un serveur (exemple Tomcat) et tu codes la RecupererScansServlet
La servlet sera déployée sur le serveur d'application.
La servlet va faire croire qu'elle est un navigateur à Nexus :
* appelles le serveur nexus avec l'url qui va bien (utilises une HttpRequest Apache par exemple)
* lis le html renvoyé, et déparse les résultats de scans
* renvoie à ton navigateur la page nmap.html avec les résultats de scans dans le textarea
2ème solution
Tu fais ton application java comme exprimé ci dessus, mais comme l'application java ne peut pas "parler" avec un navigateur,
tu embarques un navigateur dans l'appli, exemple http://lobobrowser.org/java-browser.jsp
Marsh Posté le 08-04-2014 à 00:04:22
bonsoir
je prends votre premiére solution je souhaiterais que vous m'aidez à faire le premiére tranche c'est dire :
crée le servlet qui permet de lancer l'url de Nessus lorsque j'appuie sur le bouton ok
Marsh Posté le 08-04-2014 à 09:06:20
Non, c'est l'inverse, il faut poser des questions sur des points de blocage.
Si tu n'as jamais fait de servlet et utiliser de serveur d'application, il faut commencer par un tutorial ou un bon cours
http://fr.openclassrooms.com/infor [...] a-servlet.
Tu es informaticien? Tu travailles dans une entreprise?
Marsh Posté le 08-04-2014 à 13:34:03
voici le code de servlet qui permet de lancer Nessus mais ne marche pas est ce que tu peut le corrige et merci pour votre collaboration
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Nessus extends HttpServlet {
public String command="/etc/init.d/nessusd start";
public Nessus obj=new Nessus();
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8" );
PrintWriter out = response.getWriter();
try {
String output = obj.executeCommand(command);
} finally {
out.close();
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}
private String executeCommand(String command) {
StringBuffer output=new StringBuffer();
Process p;
Runtime r =Runtime.getRuntime();
try {
r.exec(" iceweasel https://kali:8834/html5.html#/scans" );
p = Runtime.getRuntime().exec(command);
p.waitFor();
BufferedReader reader =
new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine())!= null) {
output.append(line + "\n" );
}
} catch (Exception e) {
e.printStackTrace();
}
return output.toString();
}
}
Marsh Posté le 08-04-2014 à 13:43:42
et voici la page acceuil .jsp
<%--
Document : acceuil
Created on : 7 avr. 2014, 22:25:06
Author : root
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function verif()
{
if((f.log.value)!==(f.pass.value))
{
alert("mot de pass et login invaldes" )
}
else if((f.log.value=="" ) && (f.pass.value=="" ))
{
alert("le login et mot de pass sont vide" );
}
else if ((f.log.value="admin" ) && (f.pass.value="admin" ))
{
if (f.liste[0].selected)
}
else
{
window.open('nmap.html')
}
}
</script>
</head>
<body background="kali-linux.jpg">
<div><h1><center><font Color="#FFFF00"><marquee >Bienvenue dans Ma Plateforme</font></h1></center></marquee></div>
<center>
<form name="f" action="Nessus">
<table>
<TR><TD align='right'><font Color="#FFFF00">Votre Login</font></TD><TD><INPUT size=12 name='log'></TD></TR>
<TR><TD align='right'><font Color="#FFFF00">Votre mot de passe</font></TD><TD><INPUT type=password size=12 name='pass'></TD></TR>
<tr><td><font Color="#FFFF00">Choisir une outil</font></td>
<td>
<select name="liste">
<option value="Nessus">Nessus</option>
<option value="Nmap">Nmap</option>
</select>
</td>
</tr>
<tr><td></td><td>
<p> <input type="submit" value="ok" onclick=verif()>
<input type="reset" value="Annuler" ></p>
</td></tr>
</table>
</form>
</center>
</body>
</html>
Marsh Posté le 08-04-2014 à 14:16:10
heuuu ... merci de me dire. Tu as déja développé des servlets ?
Tu es informaticien? Tu travailles dans une entreprise?
Marsh Posté le 05-04-2014 à 23:48:08
salut tous Monde
j'ai un problème et je souhaiterai que vous me donnez la solution ainsi un exemple
bon mon problème c'est de s'avoir comment exécute un code java dans un code javascript ??
est ce que je peut récupérer la valeur saisie dans une zone de texte créer en html et l'utiliser dans le code java ???si oui comment et donne moi un exemple ?
est ce qu'il est possible d'exécuter le code java et affiche le résultat dans une textarea (zone crée en html )?? si oui comment et donne moi un exemple ?
et merci pour votre collaboration