나는 잠시 동안 내 머리를 때리고 있었고, 진전을 보이기 시작했다. 그러나 SAML 2 어설 션 (XML)의 문자열 표현을 어설 션 개체로 변환하는 데 문제가 발생했습니다.주어진 XML에서 Java로 OpenSAML 어서션 생성하기
적절한 데이터가있는 유효한 org.w3c.dom.Document
이 생성 된 것처럼 보입니다. 유효한 SAMLObjectBuilder<Assertion>
을 빌더 팩토리에서 가져 오는 것처럼 보이지만 함께 가져 오려고하면 빈 어설 션이됩니다. 제목, 발급자, 발급 시간 등이 모두 null
입니다.
누구나 내가 뭘 잘못하고 있는지 알고 해결책을 제안 할 수 있습니까? 표현의 나머지 부분에 실패한 nameID 할당에서
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();
,
assertion.getSubject()
반환
null
.
내가 사용하고있는 예는 SSTC-SAML 기술 - 개요 - 2.0 초안-03, 10 페이지
위의 기능 loadXMLFromString()
대부분 경우 In Java, how do I parse XML as a String instead of a file?
여기서 질문 이름을'[SOLVED]'로 편집하지 않습니다. 답을 얻었 으면 왼쪽의 녹색 진드기로 표시하십시오. 그러면 문제는 "해결 됨"으로 표시됩니다. – marcog
@marcog 처음에는 시도했지만 48 시간의 유예 기간이 끝나기 전에 허용 된대로 내 자신의 답을 표시 할 수 없었고 해결책을 찾은 모든 검색에서 질문을 떠날만큼 적절하다고 생각했습니다. 삭제하지 말고 –
자진 답변을 올렸습니다. 너무 많은 사람들이 그냥 걸어 나갑니다. +1에 대해 질문과 답변 모두 그렇게! – marcog