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 :

[sécurité ARAMIS] pb de lecture d'une carte


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 27
    Points : 12
    Points
    12
    Par défaut [sécurité ARAMIS] pb de lecture d'une carte
    bonjour, je travaille sur une application en Java déja existante, je dois corriger un problème : le system d'autentification par carte (les pc ont des lecteurs de cartes sécurisées) ne fonctionne pas, et la je sèche. j'aimerais avoir quelques pistes pour avancer, au moins savoir dans quelle direction chercher.

    voici la page jsp d'accueil pour l'acces sécurisé : (dpSecurise.jsp)

    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
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    <%@ page import="java.util.*" %>
    <%@ page import="java.io.*" %>
    <jsp:useBean id="controleAccesXmlBeanId" scope="session" class="controleacces.ControleAccesXmlBean" />
    <jsp:setProperty name="controleAccesXmlBeanId" property="*" />
     
     
    <%
    // ****************************************************************
    // ICI seul le nom de votre fichier de configuration est à modifier
    // ****************************************************************
     
    //on recupere le chemin d'acc?s du fichier xml sur config.properties
    java.util.ResourceBundle xmlFile = java.util.ResourceBundle.getBundle("config");
    String nomXml = (String) xmlFile.getObject("xml.controlacces");
     
    //String nomXml = "/WEB-INF/ControlAccesDP.xml";
    //String nomXml = "c:/tmp/ControlAccesDP.xml";
    String nomProps = "/statut.properties";
     
    //String nomXml = "/WEB-INF/ControlAccesDP.xml";
    //String nomProps = cheminAppli + "statut.properties";
     
    //System.out.println("dpSecurise.jsp - nomProps= " + nomProps);
     
    // ****************************************************************
    // ICI seul le nom de votre fichier de configuration est à modifier
    // ****************************************************************
     
    try {
        Properties defaultProps = new Properties();
        
        //FileInputStream in = new FileInputStream(nomProps);
        //defaultProps.load(in);
        
        // solution temporaire, mise en dur des valeurs se trouvant dans statut.properties
        defaultProps.setProperty("etat","0");
        String etat = defaultProps.getProperty("etat","-1");
        //in.close();
        
        if(!(etat.equals("0"))) {
        
          response.sendRedirect("./indisponible.jsp?etat="+etat);
        }
    }
    catch (Exception e) {
    System.out.println("erreur dans dpSecurise.jsp - " + e.getMessage());
    }
     
     
     
     
    // ***********************************************************
    // **************le reste ne doit pas etre modifié ***********
    // ***********************************************************
     
     
      // le principe est de transferer tout le contexte à une servlet
      RequestDispatcher rd;
      rd = null;
     
      ServletContext sc = this.getServletConfig().getServletContext();
     
      // Création d'un dispatcher
      try {
        HttpSession sessionaccueil = request.getSession(true);
        System.out.println("/servletcontroleacces?paramNomFichierXml=" + nomXml);
        rd = sc.getRequestDispatcher("/servletcontroleacces?paramNomFichierXml=" + nomXml);
        //rd = sc.getRequestDispatcher("/bouchon.do");
      }
      catch (Exception e) {
        System.out.println("Exception dans Jsp d'appel : " + e);
      }
     
     
      if (rd != null) {
              try {
                      
                  rd.forward(request, response);
                  // il fortement recommander (doc JSP de Hans Bergsten page278 )
                  // de ne mettre aucun code apres getRequestDispatcher et apres forward
              }
              catch (Exception e) {
                  System.out.println("Exception dans Jsp d'appel, apr?s dans forward " + e);
              }
      }
      else {
          System.out.println("rd = null dans la jsp d'appel");
      }
     
    %>


    et le fichier xml pour la sécurité (controlAccesDP.xml) :

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE ACCESSECURISE SYSTEM "./controleAcces/controleAcces.dtd">
    <ACCESSECURISE>
        <SSO_SYSTEM>SY_DP
    	    <TRACE>oui</TRACE>
    		<SERVICE>DP_CLE</SERVICE>
    		<LISTE_SERVICE>profil</LISTE_SERVICE>
    		<JSPACCUEIL>/accueil.do</JSPACCUEIL>
    		<JSPREJET>/JspRejet.jsp</JSPREJET>
    		<WEB_SERVER></WEB_SERVER>
    		<WEB_END></WEB_END>
    		<PATHAPPLET>./controleAcces/</PATHAPPLET>
    		<CLASSCONTROL></CLASSCONTROL>
    		<WEB_APPLICATION>/delaip</WEB_APPLICATION>
    		<ATTRIBUTARAMIS>B
    			<ATTRIBUTSESSION>codecaisse</ATTRIBUTSESSION>
    		</ATTRIBUTARAMIS>
    		<ATTRIBUTARAMIS>F
    			<ATTRIBUTSESSION>nom</ATTRIBUTSESSION>
    		</ATTRIBUTARAMIS>
    		<ATTRIBUTARAMIS>G
    			<ATTRIBUTSESSION>prenom</ATTRIBUTSESSION>
    		</ATTRIBUTARAMIS>
    		<ATTRIBUTARAMIS>H
    			<ATTRIBUTSESSION>numeroagent</ATTRIBUTSESSION>
    		</ATTRIBUTARAMIS>
        </SSO_SYSTEM>
    </ACCESSECURISE>


    j'essai de récupérer une information sur la carte (le nom par exemple) et l'afficher dans la console, mais je n'y arrive pas. comment faire ?
    merci.

    ps : j'oublie surement de préciser des informations, n'hésitez pas à me demander )

  2. #2
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,

    Effectivement, il manque des informations...

    Est ce que tu as des messages d'erreurs?


    Concrètement, peux tu décrire plus précisement le problème que tu rencontres?
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 27
    Points : 12
    Points
    12
    Par défaut
    quand on est à la page d'accueil, on a le choix entre 2 liens :
    - un vers une page jsp ou il faut entrer des données d'identification (champs texte, listes déroulantes) puis valider
    - un vers la jsp que j'ai donnée plus haut, qui lit automatiquement les données d'identification dans la carte à puce, l'utilisateur n'as donc rien a entrer.

    dans les 2 cas on arrive ensuite a l'application elle meme.


    donc la, si je vais sur la page en mode sécurisée (c a d avec la carte), je tombe sur une page blanche, l'appli ne se lance pas et dans la console ça affiche :


    06/08/02 15:29:06 /servletcontroleacces?paramNomFichierXml=C:/java/WEBDELAI0/webdelai/public_html/xml/ControlAccesDP.xml

    06/08/02 15:29:06 Oupss !! ControleAccesTrtException ...
    msg= unknown protocol: c

    06/08/02 15:29:06 Exception dans Jsp d'appel, après dans forward javax.servlet.ServletException: Error in servlet

  4. #4
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,

    C'est bizarre de voir du code dans un JSP.
    C'est un JSP livrée avec le module de carte?

    tu pourrais rajouter cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    try {
        HttpSession sessionaccueil = request.getSession(true);
        System.out.println("/servletcontroleacces?paramNomFichierXml=" + nomXml);
        rd = sc.getRequestDispatcher("/servletcontroleacces?paramNomFichierXml=" + nomXml);
        //rd = sc.getRequestDispatcher("/bouchon.do");
      }
      catch (Exception e) {
        e.printeStackTrace();
        System.out.println("Exception dans Jsp d'appel : " + e);
      }
    Cela te permettrai d'avoir la trace de ton exception et faire des recherches ensuite dans Google , par exemple afin de voir si cette erreur est connue ou pas...

    C'est une première piste..J'espère que cela t'aidera
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 27
    Points : 12
    Points
    12
    Par défaut
    t'as mis un e en trop entre print et Stack

    ce n'est pas livré avec la carte, et ce code était la avant que j'arrive, je peux pas te dire dans quel esprit ça a été programmé comme ça.

    en tout cas voila l'erreur que ça affiche :
    06/08/03 08:17:25 javax.servlet.ServletException: Error in servlet

    06/08/03 08:17:25 at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:876)

    06/08/03 08:17:25 at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:378)

    06/08/03 08:17:25 at com.evermind.server.http.ServletRequestDispatcher.unprivileged_forward(ServletRequestDispatcher.java:272)

    06/08/03 08:17:25 at com.evermind.server.http.ServletRequestDispatcher.access$100(ServletRequestDispatcher.java:36)

    06/08/03 08:17:25 at com.evermind.server.http.ServletRequestDispatcher$2.oc4jRun(ServletRequestDispatcher.java:207)

    06/08/03 08:17:25 at oracle.oc4j.security.OC4JAccessController.doPrivilegedWithException(OC4JAccessController.java:186)

    06/08/03 08:17:25 at oracle.oc4j.security.OC4JSecurity.doPrivileged(OC4JSecurity.java:85)

    06/08/03 08:17:25 at com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:211)

    06/08/03 08:17:25 at _dpSecurise_2e_jsp._jspService(dpSecurise.jsp:80)

    06/08/03 08:17:25 at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:60)

    06/08/03 08:17:25 at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:343)

    06/08/03 08:17:25 at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:543)

    06/08/03 08:17:25 at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:441)

    06/08/03 08:17:25 at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

    06/08/03 08:17:25 at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:61)

    06/08/03 08:17:25 at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)

    06/08/03 08:17:25 at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:672)

    06/08/03 08:17:25 at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:378)

    06/08/03 08:17:25 at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:869)

    06/08/03 08:17:25 at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:288)

    06/08/03 08:17:25 at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:120)

    06/08/03 08:17:25 at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:299)

    06/08/03 08:17:25 at java.lang.Thread.run(Thread.java:534)

    en tout cas merci de ton aide

  6. #6
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,


    Tu as déja un peux plus d'info...

    En relisant ton deuxième post, je me rend compte que la ligne que l'on a rajouté ne se trouve pas forcément au bon endroit. En regardant le message d'erreur que tu as indiqué dans ton 2ème post, il faudrait le positionner ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try {
     
    	      rd.forward(request, response);
    	      // il fortement recommander (doc JSP de Hans Bergsten page278 )
    	      // de ne mettre aucun code apres getRequestDispatcher et apres forward
    	  }
    	  catch (Exception e) {
    	      System.out.println("Exception dans Jsp d'appel, apr?s dans forward " + e);
    	  }
    Pour être vraiment exhaustif, il faudrait que tu rajoutes

    e.printStackTrace();
    dans tous les blocs catch, de cette manière tu pourras voir toutes les erreurs si il y en a...
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 27
    Points : 12
    Points
    12
    Par défaut
    j'ai essayé dans les 3 blocs try catch, ca ne me met une erreur que dans celui que tu viens de me donner, voir mon message précédent (oui je m'etait gourré de bloc au debut )

    et c'est quoi cette ControleAccesTrtException (voir mon 2nd message) ? ce mot n'existe meme pas d'apres google . ce n'est pas non plus un mot programmé dans mes classes, la recherche ne trouve rien.

Discussions similaires

  1. Lecture d'une carte à puce
    Par theclem35 dans le forum Débuter
    Réponses: 21
    Dernier message: 27/11/2012, 23h38
  2. lecture des coordonnées d'un point dans une carte
    Par encours dans le forum SIG : Système d'information Géographique
    Réponses: 2
    Dernier message: 22/02/2012, 17h24
  3. pb lecture des données d'une carte SD
    Par burby dans le forum Débuter
    Réponses: 1
    Dernier message: 14/10/2009, 19h18
  4. Lecture d'une carte son
    Par fatenov dans le forum Simulink
    Réponses: 0
    Dernier message: 21/05/2008, 21h56
  5. Lecture d'une carte mémoire SD
    Par mout551 dans le forum VHDL
    Réponses: 0
    Dernier message: 22/10/2007, 14h36

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