OpenSAML 3 unmarshaller является нулевым

Привет я в настоящее время портирую приложение на opensaml3 и столкнулся со следующей проблемой:

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

Я заменил DefaultBootstrap из opensaml2 и предыдущий функцией инициализации. Тем не менее, фабрика возвращает меня в ноль как маршаллер. Есть идеи, что здесь происходит?

Это результат выполнения инициализации:

[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

2 ответа

Я полагаю, что вы используете opensaml v3, поэтому вы должны создать объект UnmarshallerFactory с классом XMLObjectProviderRegistrySupport, как это работает отлично

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

Эта ошибка связана с отсутствием поддержки алгоритма в используемой вами реализации JCE. Даже если вы используете BouncyCastle, некоторые алгоритмы, похоже, не поддерживаются. Если вы не используете эти алгоритмы, вам не о чем беспокоиться. Установка банок с неограниченной силой юрисдикции JCE в jre решит эту проблему.
См. Расшифровка зашифрованного утверждения с использованием SAML 2.0 в Java, а также с использованием OpenSAML.

Другие вопросы по тегам