Proxy http avec le journal pour chaque utilisateur

Soyez le premier à donner votre avis sur cette source.

Vue 11 695 fois - Téléchargée 47 046 fois

Description

Et voici le code source Proxy HTTP, le projet a été développé avec Netbeans 5.0 et basé sur le code Proxy de l'auteur "neodante". Mon application permet de créer le journal écrit dans le répertoire sous le nom C:\Journal_Gestion_Utilisateur\DateduJour\IpMachine.doc (Je veux récupérer le nom de la machine avec getHostName, mais ceci donne IP de la machine)pour chaque utilisateur de la façon manuelle ou automatique, de consulter le journal, et d'empêcher les utilisateurs d'accéder des sites interdits

Conclusion :


Cherchez le chemin de la machine virtuel JAVA,et regardez le fichier ReadMe.txt

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
5
Date d'inscription
vendredi 21 septembre 2007
Statut
Membre
Dernière intervention
28 février 2009

Bonjour,
je n'arrive pas a le faire fonctionner correctement,
je m'explique:

j'ai changé le chemin du raccourci,
j'ai corrigé comme prévu le .bat,
j'exécute, mon CPU s'affolle un peu
(sans doute à cause des threds...),
je clique sur demarrer,
j'ajoute une URL dans la blackListe,
j'ouvre mon naviguateur j'y insère l'url,
appuie sur entrée et là le site s'affiche
quand meme ...??

Il marche pour vous tous d'ares ce que je lis ....
Je loupe quelque chose c'est sur mais quoi???

besoin d'aide s'il vous plait.

-----------------Juste pour info----------------------
1)J'utilise une connexion bas débit avec modem
2)j'ai configuré mon navigateur I.E en y mettant
l'@ip du proxy (127.0.0.1).

est ce que le probleme est du au fait que je met
l'@ de la bcle locale comme @ proxy....????
Messages postés
2835
Date d'inscription
lundi 11 août 2003
Statut
Modérateur
Dernière intervention
16 décembre 2006
10
Cool un 'derivated work' de ma source ! lol

Bon courage ;-)
Messages postés
5351
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
17 août 2020
99
Salut,

Bah de rien, je pense que c'est pour partager ton savoir et essayer d'evoluer que tu a posté cette source donc il n'y a pas de raison que l'on ne t'aide pas dans ce sens.


petite correction concernant la methode listImage(...) enfaite c'est un copier collé d'un de mes projet perso que j'ai en cours donc pour toi il est plus logique de la renomer en listFiles
Messages postés
11
Date d'inscription
vendredi 19 août 2005
Statut
Membre
Dernière intervention
17 août 2006

Merci encore tes remarques!!!
Messages postés
5351
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
17 août 2020
99
Salut,

il est normale que tu est ce genre d'erreurs vu que quand tu fais cmd.exe /c start "+path+"\" si le path contient des espaces il vont etre consideré comme des arguments et non comme fesant parti du path cela dit une solution pour eviter ça serait de les mettrent entre quotes soit cmd.exe /c start ""+path+""\".

ence qui concerner Runtime.getRuntime().exec("cmd.exe /c start "+path+"\" fichier.doc); il n'y a pas de vraie solution portable si tu concerve cette façon de faire ce pendand tu peux aisément remplacer ce bout de code par (vu que ce n'est pas un vrai .doc reste en .txt):

private void consul_journalActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_consul_journalActionPerformed
new FileViewer(this).setVisible(true);
}//GEN-LAST:event_consul_journalActionPerformed

ensuite il te faut changer la ligne 95 de Automatique.java par String pathTmp = FileViewer.PATH + File.separator + formatter.format(dateDuJour);
la ligne ~389 du fichier Fenetre.java par new File(FileViewer.PATH).mkdir();
la ligne ~360 du fichier Fenetre.java par String pathTmp = FileViewer.PATH + File.separator +formatter.format(dateDuJour);

et utiliser cette classe (un peut long mais tu reste portable comme ça (colle le code dans une classe que tu appels FileViewer.java)

package proxyserver;

import java.awt.Frame;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;

import javax.swing.DefaultListModel;
import javax.swing.JDialog;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class FileViewer extends JDialog implements ListSelectionListener{

private static final long serialVersionUID = 3662231313575386271L;
public static final String PATH = System.getProperty("user.home")
+ File.separator
+ "Journal_Gestions_Utilisateurs";
private JSplitPane splitLeft = null;
private JSplitPane splitCenter = null;
private JList listFile = null;
private JList listDir = null;
private JTextArea textArea = null;

public FileViewer(){
super();
initialize();
}

public FileViewer(Frame owner){
super(owner, true);
initialize();
}

private void initialize(){
setSize(800, 600);
setLocationRelativeTo(null);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setContentPane(getSplitCenter());

File file = new File(PATH);
if(!file.exists()) file.mkdirs();
DefaultListModel modelDir = (DefaultListModel)getListDir().getModel();
DefaultListModel modelFile = (DefaultListModel)getListFile().getModel();

File root = new File(PATH);
MFile mroot = new MFile(root.getName(),
root.getAbsolutePath(), root.getParent());
MFile.changeDir(modelDir, mroot);
MFile.listImage(modelFile, mroot);
}

/**
* Recuperation et initialisation de la liste contenant les repertoires
* @return listDir
*/
private JList getListDir() {
if(listDir == null){
listDir = new JList();
listDir.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
listDir.addListSelectionListener(this);
listDir.setModel(new DefaultListModel());
}
return listDir;
}

/**
* Recuperation et initialisation de la liste contenant les fichiers
* @return listFile
*/
private JList getListFile() {
if(listFile == null){
listFile = new JList();
listFile.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
listFile.addListSelectionListener(this);
listFile.setModel(new DefaultListModel());
}
return listFile;
}

/**
* Recuperation et initialisation du split central
* Ce split contient le panel avec l'image et le slipt de choix du repertoire et de l'image
* @return splitCenter
*/
private JSplitPane getSplitCenter() {
if(splitCenter == null){
splitCenter = new JSplitPane();
splitCenter.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
//taille de la barre qui permet d'agrandire ou reduire la zone
splitCenter.setDividerSize(5);
//decoupe les sections a 70% de la taille pour avoir une meilleur repartition
splitCenter.setResizeWeight(0.3);
splitCenter.setRightComponent(new JScrollPane(getTextArea()));
splitCenter.setLeftComponent(getSplitLeft());
}
return splitCenter;
}

/**
* Recuperation et initialisation du split de gauche
* Ce split contient la liste des repertoires et la liste des images relatif au repertoire
* @return splitLeft
*/
private JSplitPane getSplitLeft() {
if(splitLeft == null){
splitLeft = new JSplitPane();
splitLeft.setOrientation(JSplitPane.VERTICAL_SPLIT);
//taille de la barre qui permet d'agrandire ou reduire la zone
splitLeft.setDividerSize(5);
//decoupe les sections a 50% de la taille pour avoir une meilleur repartition
splitLeft.setResizeWeight(0.5);
splitLeft.setLeftComponent(new JScrollPane(getListDir()));
splitLeft.setRightComponent(new JScrollPane(getListFile()));

}
return splitLeft;
}

/**
* Recuperation et initialisation de la liste contenant les fichiers
* @return textArea
*/
public JTextArea getTextArea() {
if(textArea == null){
textArea = new JTextArea();
textArea.setWrapStyleWord(true);
textArea.setLineWrap(true);
textArea.setEditable(false);
}
return textArea;
}

public void valueChanged(ListSelectionEvent e) {
if(e.getSource().equals(getListDir())){
Object obj = getListDir().getSelectedValue();
if(obj != null){//petit teste pour le fun
if(obj instanceof MFile){//petit teste pour le cast
MFile mfile = (MFile)obj;
DefaultListModel modelDir = (DefaultListModel)getListDir().getModel();
MFile.changeDir(modelDir, mfile);
//on rempli la liste contenant les fichers image si il y en a
DefaultListModel modelFile = (DefaultListModel)getListFile().getModel();
MFile.listImage(modelFile, mfile);
}
}
}else if(e.getSource().equals(getListFile())){//on affiche le text
Object obj = getListFile().getSelectedValue();
if(obj != null){//petit teste pour le fun
if(obj instanceof MFile){//petit teste pour le cast
MFile mfile = (MFile)obj;
String path = mfile.getAbsolutePath();
if(path != null && path.trim().compareTo("") != 0)//petit test pour eviter de faire le travail pour rien
MFile.readFile(getTextArea(), mfile.getAbsolutePath());
}
}
}

}

/**
* Cette classe permet une utilisation plus simple de la
* JListe contenant les repertoires elle permet egalement de remplire les listes
*
*/
public static class MFile {
public static final String RETURN_LABEL = "..";
private String name = "";
private String absolutePath = "";
private String parent = "";

public MFile(){
name = "";
absolutePath = "";
parent = "";
}

public MFile(String name, String absolutePath, String parent){
this.name = name;
this.absolutePath = absolutePath;
this.parent = parent;
}

/**
* @return Retourne le nom
*/
public String getName() {
return name;
}

/**
* Change le nom
* @param name le nouveau nom
*/
public void setName(String name) {
this.name = name;
}

/**
* @return Retourne le chemin absolue
*/
public String getAbsolutePath() {
return absolutePath;
}

/**
* Change le chemin absolue
* @param absolutePath le nouveau chemin
*/
public void setAbsolutePath(String absolutePath) {
this.absolutePath = absolutePath;
}

/**
* @return Retourne le parent ou null si l'on est deja dans un root dir
*/
public String getParent() {
return parent;
}

/**
* Change le parent
* @param parent le noveau parent
*/
public void setParent(String parent) {
this.parent = parent;
}

/**
* @return Retourne le nom
*/
public String toString(){
return getName();
}


/**
* Change le repertoire courrant
* @param model le model ou ajouter les entree
* @param mroot le root dir
*/
public static void changeDir(DefaultListModel model, MFile mroot){
model.clear();//on supprime toute les entre deja presente
if(mroot.getName().compareTo(RETURN_LABEL) == 0){//on demande un retour arriere
if(mroot.getParent() != null){//si il y a toujour un parent on reviens
File root = new File(mroot.getParent());
//ici on ajoute toujour le parent comme etant le parent du parent pour avoir un affichage logique
model.addElement(new MFile(RETURN_LABEL,
mroot.getAbsolutePath(), root.getParent()));
for(File f : root.listFiles())
if(f.isDirectory() && f.canRead()){
File parent = f.getParentFile();
//on ajoute le nouveau chemin
model.addElement(new MFile(f.getName(),
f.getAbsolutePath(), parent.getParent()));
}
}else{//si il n'y a plus de parents on liste les root dir
for(File f : File.listRoots())
//pour le root le nom doit etre le chemin
model.addElement(new MFile(f.getAbsolutePath(),
f.getAbsolutePath(), f.getParent()));
}
} else{//on continue notre chemin
File root = new File(mroot.getAbsolutePath());
model.addElement(new MFile(RETURN_LABEL,
mroot.getAbsolutePath(), mroot.getParent()));
for(File f : root.listFiles())
if(f.isDirectory() && f.canRead())
model.addElement(new MFile(f.getName(),
f.getAbsolutePath(), f.getParent()));
}
}

/**
* Ajoute les images a la liste image celon le root dir
* @param model le model ou ajouter les entree
* @param mroot le root dir
*/
public static void listImage(DefaultListModel model, MFile mroot){
model.clear();
File root = new File(mroot.getAbsolutePath());
for(File f : root.listFiles())//on teste tout les fichiers
//si c'est bien un fichier et que l'on peut lire l'image(question de droits)
if(f.isFile() && f.canRead() && f.getName().endsWith(".txt")){//le fichier est valide
File parent = f.getParentFile();
model.addElement(new MFile(f.getName(),
f.getAbsolutePath(), parent.getParent()));
}
}

public static void readFile(JTextArea area, String filename){
try {
BufferedReader buffInp = new BufferedReader(
new InputStreamReader(new FileInputStream(filename)));
String s = "";
String newLine = System.getProperty("line.separator");
while(true){
try {
s = buffInp.readLine();
if(s == null)//plus rien a lire
break;
area.append(s + newLine);
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}

}
Afficher les 15 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.