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

Format d'échange (XML, JSON...) Java Discussion :

[Débutante] SignatureProperties ou propriétés d'une signature xml


Sujet :

Format d'échange (XML, JSON...) Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2009
    Messages : 176
    Par défaut [Débutante] SignatureProperties ou propriétés d'une signature xml
    Bonjour,
    Je suis grande débutante en Java et mon projet est en ce moment de réaliser une signature xml d'un document.
    J'ai réussi à le faire en partie grace à votre aide d'ailleurs (merci ) mais me voilà avec un autre soucis : je voudrais pouvoir ajouter des informations diverses et variées à ma signature. J'ai vu que l'on pouvait le faire grace à l'élément SignatureProperties (si je ne me trompe pas) mais je ne vois pas trop comment m'y prendre.
    Si quelqu'un pouvait me donner plus d'infos/un exemple ça serait sympa !
    Et aussi me dire si je suis sur la bonne voie !
    Voici le début de mon code :
    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
    	private static XMLSignature test_create_signature_enveloping2
    	(DigestMethod dm, SignatureMethod sm, KeyInfo ki, Key signingKey,
    			KeySelector ks, boolean b64,String mandate) throws Exception {
     
     
    		// create reference
    		Reference ref;
    		if (b64) {
    			ref = fac.newReference("#object", dm, Collections.singletonList
    					(fac.newTransform(Transform.BASE64,
    							(TransformParameterSpec) null)), null, null);
    		} else {
    			ref = fac.newReference("#object", dm);
    		}
     
    		// create SignedInfo
    		SignedInfo si = fac.newSignedInfo(withoutComments, sm,
    				Collections.singletonList(ref));
     
    		Document doc = db.parse(new ByteArrayInputStream(mandate.getBytes()));
     
    		XMLObject obj = fac.newXMLObject(Collections.singletonList
    				(new DOMStructure(racine)), // createTextNode(text))),
    				"object", null, null);
     
    		SignatureProperties properties = fac.newSignatureProperties(); 
    //...forcément ça ne marche pas je n'ai pas mis d'argument...Je ne savais pas trop quoi mettre
     
    		// create XMLSignature
    		XMLSignature sig = fac.newXMLSignature
    		(si, ki, Collections.singletonList(obj), null, null);
     
     
    		DOMSignContext dsc = new DOMSignContext(signingKey, doc);
     
    //...

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2009
    Messages : 176
    Par défaut
    Pour vous faire part de mon avancement en attendant une réponse..
    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
    		XMLObject obj = fac.newXMLObject(Collections.singletonList
    				(new DOMStructure(racine)), // createTextNode(text))),
    				"object", null, null);
     
    		String pan="012223215D";
    		List<String> list = new ArrayList<String>();
    		list.add(pan);
    		SignatureProperties properties = fac.newSignatureProperties(list,"test");
     
    		// create XMLSignature
    		XMLSignature sig = fac.newXMLSignature
    		(si, ki, Collections.singletonList(obj), null, null);
     
     
    		DOMSignContext dsc = new DOMSignContext(signingKey, doc);
    Pas d'erreur à la compilation mais une erreur quand je lance l'exécution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    * Generating signature-enveloping-hmac-sha1-40.xml Test 2
    Exception in thread "main" java.lang.ClassCastException: properties[0] is not a valid type
    	at org.jcp.xml.dsig.internal.dom.DOMSignatureProperties.<init>(DOMSignatureProperties.java:52)
    	at org.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory.newSignatureProperties(DOMXMLSignatureFactory.java:118)
    	at com.atosworldline.rd.payment.sdd.signature.TestMAC.test_create_signature_enveloping2(TestMAC.java:265)
    	at com.atosworldline.rd.payment.sdd.signature.TestMAC.test_create_signature_enveloping_hmac_sha1_40(TestMAC.java:203)
    	at com.atosworldline.rd.payment.sdd.signature.TestMAC.main(TestMAC.java:188)
    Pour info la ligne 265 est celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SignatureProperties properties = fac.newSignatureProperties(list,"test");

  3. #3
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Tu devrais peut être lire cette doc en profondeur. Ya forcément ta réponse.

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2009
    Messages : 176
    Par défaut
    Bonjour
    Merci de m'avoir répondu mais sauf erreur de ma part, ils ne parlent pas de propriétés autres que l'on pourrait attacher à la signature, ni de la classe SignatureProperties.
    A moins que j'ai mal regardé..

  5. #5
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    De ce que je comprends (mais j'ai jamais utilisé cette API), ton problème vient du fait que ta List est une liste de String, alors qu'il te faudrait une liste de SignatureProperty.

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2009
    Messages : 176
    Par défaut
    Super ! Je vais regarder ça merci
    (Mais comment tu as su ? J'ai seulement vu qu'il fallait une liste..)

    Edit : ok. Donc SignatureProperty pour une propriété et SignatureProperties pour une liste de proprités...
    Mais dans SignatureProperty il y a cet exemple de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     *   XMLSignatureFactory factory = XMLSignatureFactory.getInstance("DOM");
     *   SignatureProperty property = factory.newSignatureProperty
     *	(Collections.singletonList(content), "#Signature-1", "TimeStamp");
    qui ressemble fortement à celui de SignatureProperties , mais idem, le premier argument est censé être une liste (?). Quand je remplace content par pan, ça ne marche pas.. quel objet est content ?

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

Discussions similaires

  1. [Débutant] Echo d'une chaine XML
    Par weabow dans le forum Eclipse PHP
    Réponses: 2
    Dernier message: 25/12/2013, 08h46
  2. [Débutante] Changer la propriété d'une colonne
    Par @yoyo dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 04/04/2009, 15h06
  3. [Débutant] Initialiser les propriétés de tous les objets d'une ArrayList
    Par Tententai dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 23/05/2006, 20h24
  4. [Débutant] Problème de déconnexion d'une page JSP
    Par amal9 dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 22/01/2004, 13h40
  5. problème xsl : inclure une donnée xml dans une balise html
    Par djodjo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2003, 09h24

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