Bonjour,

Je travail sur le portail SAP netweaver 2004s. J'ai une application JAVA J3EE qui reçoit des informations relatives au nom et à l'emplacement d'un fichier sur un serveur distant. Elle récupère ensuite le fichier pour l'afficher dans une nouvelle fenêtre d'un navigateur. Mon problème est que si l'utilisateur change le numéro de fichier (paramètre numDoc), il peut visualiser des fichiers qu'il n'est pas censé voir.

Mon code est le suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
BufferedReader br = null;
FileInputStream fileInputStream = null;
FileInputStream fileInputStream2 = null;
byte[] fileByteContent = null;
HttpServletResponse servletResponse = request.getServletResponse(true);
boolean fileExist = true;
 
String numDoc = request.getParameter("D");
String typeDoc = request.getParameter("T");
if (typeDoc.equalsIgnoreCase("1"))
	typeDoc = "D:\\Echanges\\Facture";
else	{ 
	if (typeDoc.equalsIgnoreCase("2"))
		typeDoc = "D:\\Echanges\\Certificats";
	else
		typeDoc="D:\\Echanges\\R3Documents";
}
 
int count = 0;
typeDoc = typeDoc + "\\" + numDoc + ".pdf";
 
//fileInputStream = new FileInputStream(typeDoc);  // Obtains input bytes from a file.
 
java.io.File myFile = new File(typeDoc);
if (myFile.exists() == false)	{
	//fileInputStream2 = new FileInputStream("D:\\Echanges\\undefined_certif.pdf");
	fileInputStream2 = new FileInputStream("D:\\Echanges\\errorDocAccess.htm");
	fileByteContent = new byte[fileInputStream2.available()]; // Assign size to byte array.
	while (fileInputStream2.available() > 0)	{
		// Correcting file content bytes, and put them into the byte array.
		fileByteContent[count] = (byte) fileInputStream2.read();
		count++;
	}
	servletResponse.setContentType("text/html");
	servletResponse.getOutputStream().write(fileByteContent);
}
else	{
	fileInputStream = new FileInputStream(typeDoc);
	fileByteContent = new byte[fileInputStream.available()]; // Assign size to byte array.
	while (fileInputStream.available() > 0)	{
		// Correcting file content bytes, and put them into the byte array.
		fileByteContent[count] = (byte) fileInputStream.read();
		count++;
	}
	servletResponse.setContentType("application/pdf");
	//servletResponse.getOutputStream().write(fileByteContent);
	servletResponse.getOutputStream().write(fileByteContent);
}
L'application fonctionne très bien. Ce que je souhaiterai faire, c'est:

- Soit paramétrer la fenêtre de sortie pour qu'elle masque la barre d'addresse mais je ne vois pas comment faire à partir d'ici.
- Soit faire en sorte que mon URL soit modifiée lors de l'affichage ou bien masquée. Mais je ne sais pas faire non plus.

Est-ce que quelqu'un aurait une idée pour m'aider à résoudre ce problème ?

Merci et bonne journée.

Thibault