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

Java Discussion :

Automatiser des signatures numériques


Sujet :

Java

  1. #21
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 98
    Par défaut
    J'ai trouvé la méthode qui correspond à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INFO  Lancement de PDF Signer
    Et voici la méthode :

    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
    /**
             * Handles pressing of "Sign It" button. Creates and runs SignerLogic
             * instance in a new thread.
             * 
             * @param evt
             *            event
             */
    	private void btnSignItActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_btnSignItActionPerformed
    		//ticket#3288393 (.pdf suffix)
    		String tmpOut = tfOutPdfFile.getText();
    		if (StringUtils.isNotEmpty(tmpOut)) {
    			File tmpOutFile = new File(tmpOut);
    			if (!tmpOut.toLowerCase().endsWith(".pdf") && !tmpOutFile.isFile()) {
    				tfOutPdfFile.setText(tmpOut + ".pdf");
    			}
    		}
    		storeToOptions();
    		if (checkFileExists(tfInPdfFile, "gui.inPdfFile.label") && checkInOutDiffers() && checkCertEncryption()) {
    			infoTextArea.setText(null);
    			btnInfoClose.setEnabled(false);
    			infoDialog.setVisible(true);
    			setVisible(false);
    			infoDialog.setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
     
    			LOGGER.info(RES.get("console.starting"));
    			// Let's do it
    			final Thread tmpST = new Thread(signerLogic);
    			tmpST.start();
    		}
    	}// GEN-LAST:event_btnSignItActionPerformed
    Je pensais appeler cette méthode juste avant de lancer ma signature auto dans le main()

  2. #22
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 98
    Par défaut
    La méthode précédente (dans la classe SignPdfForm) est celle qui va faire appelle à la méthode signFile() dans la classe SignerLogic

    Donc dans mon main() au lieu d’appeler la méthode signFile() lorsqu'un nouveau fichier pdf arrive dans le répertoire ciblé, je vais devoir appeler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private void btnSignItActionPerformed(java.awt.event.ActionEvent evt)
    Mais comme c'est une méthode private je sais pas si c'est possible, à votre avis ?

  3. #23
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 98
    Par défaut
    Je vous tiens au courant de l'avancement du projet

    La méthode précédente j'arrive à l'appeler, j'y est modifier du code dessus, en rouge :

    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
    	void btnSignItActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_btnSignItActionPerformed
    		//ticket#3288393 (.pdf suffix)
    	//*************************************************			
    		Signer sg = new Signer();
    		
    		int atq=sg.auto;
    		
    	if(atq==1){
    			
    			String tmpOut = sg.FileOut.toString();
    		}
    	else{
    		String tmpOut = tfOutPdfFile.getText();
    		}
    	String tmpOut=null;
    	//*******************************************************************
    		
    		if (StringUtils.isNotEmpty(tmpOut)) {
    			File tmpOutFile = new File(tmpOut);
    			if (!tmpOut.toLowerCase().endsWith(".pdf") && !tmpOutFile.isFile()) {
    				tfOutPdfFile.setText(tmpOut + ".pdf");
    			}
    		}
    		storeToOptions();
    		if (checkFileExists(tfInPdfFile, "gui.inPdfFile.label") && checkInOutDiffers() && checkCertEncryption()) {
    			infoTextArea.setText(null);
    			btnInfoClose.setEnabled(false);
    			infoDialog.setVisible(true);
    			setVisible(false);
    			infoDialog.setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
    
    			LOGGER.info(RES.get("console.starting"));
    			// Let's do it
    			final Thread tmpST = new Thread(signerLogic);
    			tmpST.start();
    		}
    	}
    La détection de fichier fonctionne et passe une variable à 1 lorsque c'est le cas (dans le main() )
    Lorsqu'un fichier est détecter la méthode si dessus est appelé par le main()
    Le fichier signé est le bon fichier grâce au code que j'ai ajouté (en rouge)
    Sauf que le nom du fichier sortie + le chemin est incorrect, il garde en mémoire celui dans le champ texte

    Je m'approche donc du fonctionnement "brut" de l'application mais j'ai quelques soucis : à chaque fichier détecter une nouvelle console s'ouvre, et quand je ferme celle-ci je me retrouve avec plusieurs menu JSignPdf

    Voilà ça avance lentement mais surement, si vous voulez m'aidez/me conseillez ne vous priver pas

  4. #24
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 98
    Par défaut
    Je viens de m'apercevoir d'une énorme bourde dans le code que j'ai ajouter, c'est à la ligne 15 :

    Ce que je fait avant ne sert à rien si je met tmpOut=null juste après ..

    Le problème c'est que si j'enlève cette ligne, j'ai ces erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tmpOut cannot be resolved to a variable
    sur ce code-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (StringUtils.isNotEmpty(tmpOut)) {
    			File tmpOutFile = new File(tmpOut);
    			if (!tmpOut.toLowerCase().endsWith(".pdf") && !tmpOutFile.isFile()) {
    				tfOutPdfFile.setText(tmpOut + ".pdf");
    			}
    		}
    Et je vois pas pourquoi j'ai ces erreurs, tmpOut a bien une valeur d'attribuer que atq==1 ou non

  5. #25
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 98
    Par défaut
    Voici le code, dans mon main(), qui appelle la méthode btnSignItActionPerformed :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    			        BasicSignerOptions options = new BasicSignerOptions();
    			        options.setInFile(FileIn.toString());   // On Initialise les fichiers
    			        options.setOutFile(FileOut.toString());   // d'entrée et de sortie
     
     
    			        int auto=1;  // Notre variable pour la méthode ci-dessus
     
    			        SignPdfForm spf = new SignPdfForm(0); //On appelle la classe
    			        spf.btnSignItActionPerformed(null);  //On appelle la méthode
    Avec le débugger je m'aperçois que FileIn, FileOut et auto ont les valeurs null une fois que le process arrive dans la méthode btnSignItActionPerformed

    C'est surement une erreur bête ou de débutant pourtant je vois pas ce que j'ai manqué/fait qui ne va pas

  6. #26
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 98
    Par défaut
    Ce que je ne comprend pas surtout c'est pourquoi FileIn, Fileout et auto sont null lorsque l'on arrive dans la méthode btnSignItActionPerformed alors que ces même variables ont des valeurs dans la méthode main() qui va appeler btnSignItActionPerformed ..

    Du monde pour m'aider ? :/

  7. #27
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 98
    Par défaut
    J'ai remarqué que pendant le processus de signature, getInfile() getoutFile() setInfile() et setOutfile() se font une multitude de fois, au moins 4 fois je pense donc faire un setinfile ou setoutfile (=donner les chemins d'entrée et sortie du fichier détecter aux variable infile et outfile) avant d'appeler le code de signature ne servirait à rien ..
    Je pense faire mon if dans les getin(out)file et setin(out)file directement ça devrait contourner le problème

    Enfin ce ne sera pas possible si mes variables restent à une valeur null ou zéro ..
    FileIn FileOut et auto sont peut être null parce que je passe comme argument null dans void net.sf.jsignpdf.SignPdfForm.btnSignItActionPerformed(ActionEvent evt) ?

    Si c'est ça ok, mais je remplace par quoi ? Sachant qu'il me demande un ActionEvent je sais pas quoi mettre pour avoir mes variables moi ..

    Il y a vraiment plus personne ici ? :/

  8. #28
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 98
    Par défaut
    J'ai déclarer mes 3 variables que je veut utiliser en public static mais ça change rien : elles semblent toujours se réinitialiser lorsque j'appelle mon code pour signer

Discussions similaires

  1. Technique des signatures numériques de fichiers système
    Par bruce-willis dans le forum Windows
    Réponses: 2
    Dernier message: 22/07/2008, 17h32
  2. Signature numérique des macros
    Par marc56 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/12/2007, 02h24
  3. Signature Numérique sur des Documents
    Par Myogtha dans le forum Sécurité
    Réponses: 1
    Dernier message: 03/10/2007, 18h05
  4. Signature numérique des messages sortants
    Par scenic29 dans le forum VBA Outlook
    Réponses: 3
    Dernier message: 03/10/2007, 17h38

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