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

Entrée/Sortie Java Discussion :

Problème lors d'un chrgt de certificat : java.lang.reflect.InvocationTargetException


Sujet :

Entrée/Sortie Java

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 2
    Par défaut Problème lors d'un chrgt de certificat : java.lang.reflect.InvocationTargetException
    Bonjour à tous,

    J'ai créé une appli qui permet de signé électroniquement des documents pdf à partir d'un certificat électronique. Lorsque je lance mon appli, celle-ci plante sur

    java.io.IOException: java.lang.reflect.InvocationTargetException
    at com.ibm.security.pkcs7.ContentInfo.createDynamicObject(Unknown Source
    )
    at com.ibm.security.pkcs7.ContentInfo.createContent(Unknown Source)
    at com.ibm.security.pkcs7.ContentInfo.decode(Unknown Source)
    at com.ibm.security.pkcsutil.PKCSDerObject.decode(Unknown Source)
    at com.ibm.security.pkcsutil.PKCSDerObject.<init>(Unknown Source)
    at com.ibm.security.pkcs7.ContentInfo.<init>(Unknown Source)
    at com.ibm.security.pkcs12.AuthenticatedSafe.decode(Unknown Source)
    at com.ibm.security.pkcsutil.PKCSDerObject.decode(Unknown Source)
    at com.ibm.security.pkcs12.AuthenticatedSafe.<init>(Unknown Source)
    at com.ibm.security.pkcs12.BasicPFX.verifyMac(Unknown Source)
    at com.ibm.security.pkcs12.PFX.verifyMac(Unknown Source)
    at com.ibm.crypto.provider.PKCS12KeyStore.engineLoad(Unknown Source)
    at java.security.KeyStore.load(KeyStore.java:1173)
    at fr.mipih.emagh2.editionpdf.edition.ClientSignatureElectronique.signPd
    f(ClientSignatureElectronique.java:113)
    at fr.mipih.emagh2.editionpdf.edition.ClientSignatureElectronique.main(C
    lientSignatureElectronique.java:73)


    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
     
    	public static final boolean signPdf(String fname, String fnameS, String MdPCertificat, String PathToCertificat) 
    			throws IOException, DocumentException, Exception 
    	{
     
    		String FileKeyUncrypted="";
    		try {
    			CryptageSignatureElectronique CSE = new CryptageSignatureElectronique("***********");
    			traceur.tracer(ERREUR, "fileKeyPassword : "+PathToCertificat);
    			FileKeyUncrypted = CSE.decode(MdPCertificat);
    			traceur.tracer(ERREUR, "fileKeyPassword decrypté: "+FileKeyUncrypted);
    		}
    	    catch(Exception e)
    	    { 
    	    	traceur.tracer(ERREUR, "Message: "+ e.getMessage());
    	    }
     
    	    traceur.tracer(ERREUR, "Fichier à signer: "+fname);
    	    traceur.tracer(ERREUR, "Fichier signe: "+fnameS);
    			// Creation d'un KeyStore
    			traceur.tracer(ERREUR, "1");
    			KeyStore ks = KeyStore.getInstance("pkcs12");
    			traceur.tracer(ERREUR, "2");
    			// Chargement du certificat p12 dans el magasin
    			ks.load(new FileInputStream(PathToCertificat), FileKeyUncrypted.toCharArray());
    			traceur.tracer(ERREUR, "3");
    			String alias = (String)ks.aliases().nextElement();
    			traceur.tracer(ERREUR, "4");
    			// Recupération de la clef privée
    			PrivateKey key = (PrivateKey)ks.getKey(alias, FileKeyUncrypted.toCharArray());
    			traceur.tracer(ERREUR, "5");
    			// et de la chaine de certificats
    			Certificate[] chain = ks.getCertificateChain(alias);
    			traceur.tracer(ERREUR, "6");
     
    			// Lecture du document source
    			traceur.tracer(ERREUR, "7");
    			PdfReader pdfReader = new PdfReader((new File(fname)).getAbsolutePath());
    			traceur.tracer(ERREUR, "8");
    			File outputFile = new File(fnameS);
    			traceur.tracer(ERREUR, "9");
    			// Creation du tampon de signature
    			PdfStamper pdfStamper;
    			traceur.tracer(ERREUR, "10");
    			pdfStamper = PdfStamper.createSignature(pdfReader, null, '\0', outputFile);
    			traceur.tracer(ERREUR, "11");
    			PdfSignatureAppearance sap = pdfStamper.getSignatureAppearance();
    			traceur.tracer(ERREUR, "12");
    			sap.setCrypto(key, chain, null, PdfSignatureAppearance.SELF_SIGNED);
    			traceur.tracer(ERREUR, "13");
    			sap.setReason("Authentification sécurisée du document");
    			traceur.tracer(ERREUR, "14");
    			sap.setLocation("");
    			traceur.tracer(ERREUR, "15");
    			// Position du tampon sur la page (ici en bas a gauche page 1)
    			sap.setVisibleSignature(new Rectangle(10, 10, 50, 35), 1, "sign_rbl");
    			traceur.tracer(ERREUR, "16");
     
    			pdfStamper.setFormFlattening(true);
    			traceur.tracer(ERREUR, "17");
    			pdfStamper.close();
    			traceur.tracer(ERREUR, "18");
     
    			return true;
    	}
    Le problème se situe lors de l'appel :
    ks.load(new FileInputStream(PathToCertificat),FileKeyUncrypted.toCharArray());

    Le fichier du certificat et le mot de passe son correct.
    Je ne comprend pas trop cette erreur et je n'ai rien trouvé sur le net.

    Pourriez-vous m'aider svp?

    Ne serait ce qu'arriver à obtenir un message un peu plus compréhensible sur l'erreur rencontrée?

    Le java utilisé est :

    java version "1.5.0"
    Java(TM) 2 Runtime Environment, Standard Edition (build pap32dev-20051104)
    IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 AIX ppc-32 j9vmap3223-20051103 (JIT enabled)
    J9VM - 20051027_03723_bHdSMR
    JIT - 20051027_1437_r8
    GC - 20051020_AA)
    JCL - 20051102

    Je suis un peu newbie dans cet environnement de développement.

    D'autre part, l'application est développée sous Eclipse avec la jre 1.5.0_06.

    Merci d'avance pour votre aide

  2. #2
    Candidat au Club
    Inscrit en
    Novembre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 2
    Par défaut
    Pb résolu!

    ^_^

    J'ai tout repris de A à Z et cela fonctionne.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/05/2009, 20h32
  2. erreur avec java.lang.reflect.InvocationTargetException
    Par PeterEMF dans le forum Services Web
    Réponses: 0
    Dernier message: 24/10/2008, 12h50
  3. Réponses: 9
    Dernier message: 30/08/2008, 16h42
  4. java.lang.reflect.InvocationTargetException avec Axis1.4 et Tomcat6
    Par KING_OF_GRACELAND dans le forum Services Web
    Réponses: 2
    Dernier message: 20/06/2008, 00h49
  5. message d'erreur :java.lang.reflect.InvocationTargetException
    Par fripette dans le forum Tomcat et TomEE
    Réponses: 18
    Dernier message: 17/03/2008, 21h44

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