2016-11-09 1 views
0

Salut je suis actuellement PORTAGE une application pour opensaml3 et courir dans la question suivante:OpenSAML 3 unmarshaller est nul

InitializationService.initialize(); 
... 
Unmarshaller unmarshaller = Configuration.getUnmarshallerFactory().getUnmarshaller(qName); 

J'ai remplacé le DefaultBootstrap de opensaml2 et précédente par la fonction d'initialisation. Toujours l'usine me rend nulle comme marshaller. Une idée de ce qui ne va pas ici?

C'est la sortie du progrès initialize:

[main] INFO org.opensaml.core.config.InitializationService - Initializing OpenSAML using the Java Services API 
[main] INFO org.opensaml.xmlsec.algorithm.AlgorithmRegistry - Algorithm failed runtime support check, will not be usable: http://www.w3.org/2001/04/xmlenc#ripemd160 
[main] INFO org.opensaml.xmlsec.algorithm.AlgorithmRegistry - Algorithm failed runtime support check, will not be usable: http://www.w3.org/2001/04/xmldsig-more#hmac-ripemd160 
[main] INFO org.opensaml.xmlsec.algorithm.AlgorithmRegistry - Algorithm failed runtime support check, will not be usable: http://www.w3.org/2001/04/xmldsig-more#rsa-ripemd160 

Répondre

1

Cette erreur est due à un manque de soutien de l'algorithme dans votre implémentation JCE vous utilisez. Même si vous utilisez BouncyCastle, certains algorithmes ne sont pas supportés. Sauf si vous utilisez ces algorithmes, il n'y a pas besoin de s'inquiéter. L'installation des jars de politique de juridiction de force illimitée de JCE au jre résoudra ceci. Référence: Decrypting encrypted assertion using SAML 2.0 in java using OpenSAML

1

Je supose que vous utilisez OpenSAML v3 Vous devez donc créer l'objet UnmarshallerFactory avec la classe XMLObjectProviderRegistrySupport comme cela, il fonctionne parfaitement

UnmarshallerFactory umFactory=XMLObjectProviderRegistrySupport.getUnmarshallerFactory(); 
    Unmarshaller unmarshaller=umFactory.getUnmarshaller(element);