Ho battuto la mia testa contro questo per un po ', e sto iniziando a fare progressi. Tuttavia, ho avuto qualche problema a convertire una rappresentazione di stringa di un'Asserzione SAML 2 (in XML) in un oggetto Assertion.Creazione di Asserzione OpenSAML da XML dato in Java
Sembra che io sono sempre una valida org.w3c.dom.Document
con i dati appropriati, e mi sembra di essere sempre una valida SAMLObjectBuilder<Assertion>
dalla fabbrica costruttore, ma quando provo a mettere insieme tutto quello che ottiene è un'asserzione vuota; soggetto, emittente, ora di rilascio e così via sono tutti null
, nonostante siano chiaramente impostati nell'XML.
Qualcuno vede cosa sto facendo male e può suggerire una soluzione?
Document doc = loadXMLFromString(saml);
XMLObjectBuilderFactory builderFactory = Configuration.getBuilderFactory();
SAMLObjectBuilder<Assertion> assertionBuilder =
(SAMLObjectBuilder<Assertion>)
builderFactory.getBuilder(Assertion.DEFAULT_ELEMENT_NAME);
Assertion assertion = assertionBuilder.buildObject(doc.getDocumentElement());
String nameID = assertion.getSubject().getNameID().getValue();
Al assegnazione NameID, assertion.getSubject()
ritorni null
, in mancanza il resto dell'espressione.
L'esempio che sto usando è la piena XML da CSST-SAML-tech-panoramica-2.0-draft-03, pagina 10.
sopra La funzione loadXMLFromString()
è in gran parte preso in prestito da In Java, how do I parse XML as a String instead of a file?
Non modificare il nome della domanda con '[SOLVED]' qui. Se hai la risposta, contrassegnala con il segno di spunta verde a sinistra - la tua domanda verrà quindi contrassegnata come "risolta". – marcog
@marcog L'ho provato all'inizio, ma non ho potuto contrassegnare la mia risposta come accettata prima della fine del periodo di grazia di 48 ore, e con tutte le ricerche che ho fatto per una soluzione, ho pensato che fosse abbastanza rilevante da lasciare la domanda intorno piuttosto che eliminarlo. –
È fantastico che tu abbia postato una risposta personale. Troppe persone si allontanano. +1 a entrambe le domande e risposte per farlo! – marcog