私はしばらくこれに頭を悩ませてきました、そして進歩し始めています。しかし、SAML 2アサーションの文字列表現(XML)をアサーションオブジェクトに変換する際に問題が発生しました。
org.w3c.dom.Document
適切なデータで有効なデータを取得しているようSAMLObjectBuilder<Assertion>
で、ビルダーファクトリから有効なデータを取得しているようですが、それらをまとめようとすると、空白のアサーションしか取得できません。件名、発行者、発行時間などnull
は、XMLで明確に設定されているにもかかわらず、すべてです。
誰かが私が間違っていることを見て、解決策を提案できますか?
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();
nameIDの割り当てで、はをassertion.getSubject()
返しnull
、式の残りの部分は失敗します。
私が使用している例は、10ページのsstc-saml-tech-overview-2.0-draft-03の完全なXMLです。
上記の関数loadXMLFromString()
は主にJavaから借用していますが、XMLをファイルではなく文字列として解析するにはどうすればよいですか?