0
은 내가 초기화이SAML LogoutRequest XML 표현에
같은 LogoutRequest
을 형성 NameID
NameID nameId = buildSAMLObjectWithDefaultName(NameID.class);
nameId.setFormat("urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress");
nameId.setValue("xxxxxx");
String sessionIndex = "idxxxx";
LogoutRequest logoutRequest = genererateLogoutRequest(nameId, sessionIndex, metaData);
방법 generateLogoutRequest
private static LogoutRequest genererateLogoutRequest(final NameID nameId,
final String sessionIndex, final SAMLMetaData metaData)
throws Exception {
LogoutRequest logoutRequest = buildSAMLObjectWithDefaultName(LogoutRequest.class);
logoutRequest.setID("SOME RANDOM ID");
logoutRequest.setDestination("xxxxxxx/sso/saml");
logoutRequest.setIssueInstant(new DateTime());
Issuer issuer = buildSAMLObjectWithDefaultName(Issuer.class);
issuer.setValue("xxxxx");
logoutRequest.setIssuer(issuer);
SessionIndex sessionIndexElement = buildSAMLObjectWithDefaultName(SessionIndex.class);
sessionIndexElement.setSessionIndex(sessionIndex);
logoutRequest.getSessionIndexes().add(sessionIndexElement);
logoutRequest.setNameID(nameId);
return logoutRequest;
}
경우 buildSAMLObjectWithDefaultName
public static <T> T buildSAMLObjectWithDefaultName(final Class<T> clazz)
throws IllegalArgumentException, IllegalAccessException,
NoSuchFieldException, SecurityException {
XMLObjectBuilderFactory builderFactory = Configuration
.getBuilderFactory();
QName defaultElementName = (QName) clazz.getDeclaredField(
"DEFAULT_ELEMENT_NAME").get(null);
T object = (T) builderFactory.getBuilder(defaultElementName)
.buildObject(defaultElementName);
return object;
}
xml
표현을 콘솔에 LogoutRequest
으로 표시하는 방법은 무엇입니까? 나는이
System.out.println(logoutRequest.getDOM().toString());
처럼 수행 할 때 이 NullPointerException
가 발생합니다.