2016-11-12 1 views
3

Existe-t-il un exemple complet d'utilisation de la bibliothèque Open SAML v3? Je ne trouve aucune documentation et selon https://wiki.shibboleth.net/confluence/display/OpenSAML/Home la v2 est EOL.Comment utiliser opensaml v3? Il y a peu ou pas de documentation et v2 est EOL

J'utilise le code suivant pour obtenir SAML assertion-

private UnmarshallerFactory unmarshallerFactory; 
    private DocumentBuilder docBuilder; 

    @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); 
    } 
    } 

    public Assertion getSamlAssertion(String samlResponse) 
     throws IOException, XMLParserException, UnmarshallingException, SAXException { 

    Document document = docBuilder.parse(new StringInputStream(samlResponse)); 

    Element element = document.getDocumentElement(); 
    Unmarshaller unmarshaller = unmarshallerFactory.getUnmarshaller(element); 
    XMLObject responseXmlObj = unmarshaller.unmarshall(element); 
    Response response = (Response) responseXmlObj; 
    return response.getAssertions().get(0); 

    } 

Mon Pommerening

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


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

Le problème est que je reçois null pour unmarshaller. J'ai vérifié que le samlResponse est valide

+0

à la downvoter- soin d'expliquer ce que je pourrais avoir mieux fait d'expliquer la question? – gauravphoenix

+0

Je suis d'accord, je n'arrive même pas à trouver un guide de "démarrage" sur cette bibliothèque. – Alic

Répondre

2

Vous devez inclure l'implémentation dans votre POM. Un des éléments de la version 3 est de diviser la bibliothèque en plusieurs modules différents.

Oui, la documentation pose problème. Mais si je comprends bien, l'équipe de développeurs est consciente de cela. En attendant, j'ai écrit un livre sur le sujet, A Guide to OpenSAML V3. Il passe en revue l'utilisation d'OpenSAML et les changements dans V3.