Проверка утверждения SAML с использованием OpenSAML 3 - PullRequest
0 голосов
/ 02 декабря 2018

Я пытался проверить утверждения SAMLResponse, используя OpenSAML 3. Ссылка: http://shibboleth.net/pipermail/dev/2016-November/008920.html

Пока я пытался запустить приведенный ниже код, я получал исключение java.lang.ClassCastException: org.opensaml.ws.soap.soap11.impl.BodyBuilder не может быть приведен к org.opensaml.core.xml.XMLObjectBuilder

Это было сразу после выполнения «InitializationService.initialize ()».

   @PostConstruct
   public void init() {

    try {
      InitializationService.initialize();
      DocumentBuilderFactory documentBuilderFactory = 
      DocumentBuilderFactory.newInstance();
      documentBuilderFactory.setNamespaceAware(true);
      docBuilder = documentBuilderFactory.newDocumentBuilder();
      unmarshallerFactory = 
         XMLObjectProviderRegistrySupport.getUnmarshallerFactory();
      } catch (Exception e){
      logger.error("Error: ",e);
      }
   }

------------------------ Сведения об исключении ---------------------------------

java.lang.ClassCastException: org.opensaml.ws.soap.soap11.impl.BodyBuilder cannot be cast to org.opensaml.core.xml.XMLObjectBuilder
at org.opensaml.core.xml.config.XMLConfigurator.initializeObjectProviders(XMLConfigurator.java:238)
    at org.opensaml.core.xml.config.XMLConfigurator.load(XMLConfigurator.java:203)
    at org.opensaml.core.xml.config.XMLConfigurator.load(XMLConfigurator.java:188)
    at org.opensaml.core.xml.config.XMLConfigurator.load(XMLConfigurator.java:162)
    at org.opensaml.core.xml.config.AbstractXMLObjectProviderInitializer.init(AbstractXMLObjectProviderInitializer.java:52)
    at org.opensaml.core.config.InitializationService.initialize(InitializationService.java:56)

Ниже приведены зависимости, рассматриваемые в POM

<dependency>
    <groupId>org.opensaml</groupId>
    <artifactId>xmltooling</artifactId>
    <version>1.4.4</version>
</dependency>

<dependency>
    <groupId>org.opensaml</groupId>
    <artifactId>opensaml-core</artifactId>
    <version>3.1.0</version>
</dependency>

<dependency>
    <groupId>org.opensaml</groupId>
    <artifactId>opensaml-saml-impl</artifactId>
    <version>3.2.0</version>
</dependency>

<dependency>
   <groupId>org.opensaml</groupId>
   <artifactId>opensaml-soap-api</artifactId>
   <version>3.3.0</version>
</dependency>

<dependency>
    <groupId>org.opensaml</groupId>
    <artifactId>opensaml-saml-api</artifactId>
    <version>3.3.0</version>
</dependency>

<dependency>
    <groupId>org.apache.santuario</groupId>
    <artifactId>xmlsec</artifactId>
    <version>2.0.7</version>
</dependency>

 <dependency>
    <groupId>org.apache.ant</groupId>
    <artifactId>ant</artifactId>
    <version>1.8.2</version>
</dependency>

Цените любые указания на это.Спасибо

1 Ответ

0 голосов
/ 08 декабря 2018

Вы захотите удалить зависимость xmltooling из вашего POM.По сути, это библиотека OpenSAML 2.0, и она вызывает конфликты, подобные той, которую вы получаете.

Дополнительные сведения см. В статье OpenSAML , которая была подана на этот файл, и Pac4J (которая является библиотекой Java, использующей OpenSAML).

...