IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

[servlet] et .htaccess


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 274
    Points : 192
    Points
    192
    Par défaut [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

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 27
    Points : 28
    Points
    28
    Par défaut
    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

  3. #3
    Membre éprouvé
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Points : 935
    Points
    935
    Par défaut
    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

  4. #4
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 274
    Points : 192
    Points
    192
    Par défaut
    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

  5. #5
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 274
    Points : 192
    Points
    192
    Par défaut
    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

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    public 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;
      }
    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
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    try
    		{
    			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()) ;	
    	   	}
    Encore merci pour vos réponses !

    Steve

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Servlets - JSP] Problème de session
    Par the java lover dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 28/11/2011, 09h54
  2. .htaccess et servlets
    Par rohstev dans le forum Apache
    Réponses: 3
    Dernier message: 06/05/2004, 18h06
  3. [JSP/Servlet] Outils pour developper?
    Par BenoitM dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 04/05/2004, 11h03
  4. [servlet] initialisation d'objets
    Par tiPouick dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 05/08/2003, 12h12
  5. Servlet dans Eclipse ?
    Par unflag dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 10/04/2003, 18h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo