Bonjour,
j'aimerai accéder avec une servlet à un fichier se trouvant dans un répertoire protégé par un fichier .htaccess.
Cependant la servlet me renvoie constamment l'erreur 401 (accès refusé). Quelqu'un a-t-il une solution ?
Merci beaucoup
Steve
 [servlet] et .htaccess
 [servlet] et .htaccess
				
				
						
						
				Bonjour,
j'aimerai accéder avec une servlet à un fichier se trouvant dans un répertoire protégé par un fichier .htaccess.
Cependant la servlet me renvoie constamment l'erreur 401 (accès refusé). Quelqu'un a-t-il une solution ?
Merci beaucoup
Steve
 
 
				
				
						
						
				je n ai pas ta reponse desole
mais essaye de poster ton message sur le forum J2EE, tu auras plus de chance d avoir des reponses + interessantes
 
 
				
				
						
						
				le répertoire étant protégé par un fichier .htaccess, à l'appel de ta servlet, une boite de dialogue demandant l'identification doit apparaitre.
Sinon essaie quelque chose dans ce style :
http:\\user:password@www.monSite.fr\MaServlet où user et password sont ceux définis dans le fichier .htaccess
 
 
				
				
						
						
				Hé non malheureusement ça ne marche pas... Y'aurait-il un moyen de le faire en configurant le fichier .htaccess ?
Encore merci pour votre aide
Steve
 
 
				
				
						
						
				Euréka !!!
En fait ma servlet accédait à un fichier dans ce répertoire protégé et le lisait. Tout ça grâce à un objet URL. J'ai trouvé une méthode qui permet d'encoder dans mon url le nom d'utilisateur et le mot de passe.
La voici, pour les personnes qui une fois seraient dans le même cas que moi (même si j'ai bien eu l'impression de me retrouver seul au monde cette fois-ci
et voici le code de la manière dont j'appelle le fichier dans ma servlet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71public InputStream openURLForInput (URL url, String uname, String pword) throws IOException { conn = url.openConnection(); conn.setDoInput (true); conn.setRequestProperty ("Authorization", userNamePasswordBase64(uname,pword)); conn.connect (); return conn.getInputStream(); } public String userNamePasswordBase64(String username, String password) { return "Basic " + base64Encode (username + ":" + password); } private final static char base64Array [] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' }; private static String base64Encode (String string) { String encodedString = ""; byte bytes [] = string.getBytes (); int i = 0; int pad = 0; while (i < bytes.length) { byte b1 = bytes [i++]; byte b2; byte b3; if (i >= bytes.length) { b2 = 0; b3 = 0; pad = 2; } else { b2 = bytes [i++]; if (i >= bytes.length) { b3 = 0; pad = 1; } else b3 = bytes [i++]; } byte c1 = (byte)(b1 >> 2); byte c2 = (byte)(((b1 & 0x3) << 4) | (b2 >> 4)); byte c3 = (byte)(((b2 & 0xf) << 2) | (b3 >> 6)); byte c4 = (byte)(b3 & 0x3f); encodedString += base64Array [c1]; encodedString += base64Array [c2]; switch (pad) { case 0: encodedString += base64Array [c3]; encodedString += base64Array [c4]; break; case 1: encodedString += base64Array [c3]; encodedString += "="; break; case 2: encodedString += "=="; break; } } return encodedString; }
Encore merci pour vos réponses !
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12try { BufferedReader readerHttp = new BufferedReader(new InputStreamReader(openURLForInput(new URL("http://serveur/nomPage"), "nomUtilisateur", "MotPasse"))); String ligne ; while((ligne=readerHttp.readLine()) != null) writer.println(ligne) ; } catch(Exception e) { writer.println("Erreur d'appel de la page : " + e.getMessage()) ; }
Steve
Partager