/** {@inheritDoc} */ protected void processAttribute(XMLObject samlObject, Attr attribute) throws UnmarshallingException { LogoutRequest req = (LogoutRequest) samlObject; if (attribute.getLocalName().equals(LogoutRequest.REASON_ATTRIB_NAME)) { req.setReason(attribute.getValue()); } else if (attribute.getLocalName().equals(LogoutRequest.NOT_ON_OR_AFTER_ATTRIB_NAME) && !Strings.isNullOrEmpty(attribute.getValue())) { req.setNotOnOrAfter(new DateTime(attribute.getValue(), ISOChronology.getInstanceUTC())); } else { super.processAttribute(samlObject, attribute); } }
@SuppressWarnings("unchecked") public static LogoutRequest createLogoutRequest( SAMLVersion version, Issuer issuer, String destination, String consent, Date notOnOrAfter, String reason, NameID nameID ) { if (logoutRequestBuilder == null) { logoutRequestBuilder = (SAMLObjectBuilder<LogoutRequest>) builderFactory.getBuilder(LogoutRequest.DEFAULT_ELEMENT_NAME); } LogoutRequest logoutRequest = logoutRequestBuilder.buildObject(); logoutRequest.setID("_" + UUID.randomUUID()); logoutRequest.setVersion(version); logoutRequest.setIssueInstant(new DateTime()); logoutRequest.setDestination(destination); logoutRequest.setConsent(consent); logoutRequest.setIssuer(issuer); if (notOnOrAfter != null) { logoutRequest.setNotOnOrAfter(new DateTime(notOnOrAfter.getTime())); } logoutRequest.setReason(reason); logoutRequest.setNameID(nameID); return logoutRequest; }
logoutRequest.setNotOnOrAfter(new DateTime(issueInstant.getMillis() + (5 * 60 * 1000))); logoutRequest.setIssuer(issuer); logoutRequest.setNameID(nameId);
logoutRequest.setNotOnOrAfter(now.plusMinutes(5));
protected org.opensaml.saml.saml2.core.LogoutRequest internalToXml(LogoutRequest request) { org.opensaml.saml.saml2.core.LogoutRequest lr = buildSAMLObject(org.opensaml.saml.saml2.core.LogoutRequest.class); lr.setDestination(request.getDestination().getLocation()); lr.setID(request.getId()); lr.setVersion(SAMLVersion.VERSION_20); org.opensaml.saml.saml2.core.Issuer issuer = buildSAMLObject(org.opensaml.saml.saml2.core.Issuer.class); issuer.setValue(request.getIssuer().getValue()); issuer.setNameQualifier(request.getIssuer().getNameQualifier()); issuer.setSPNameQualifier(request.getIssuer().getSpNameQualifier()); lr.setIssuer(issuer); lr.setIssueInstant(request.getIssueInstant()); lr.setNotOnOrAfter(request.getNotOnOrAfter()); NameID nameID = buildSAMLObject(NameID.class); nameID.setFormat(request.getNameId().getFormat().toString()); nameID.setValue(request.getNameId().getValue()); nameID.setSPNameQualifier(request.getNameId().getSpNameQualifier()); nameID.setNameQualifier(request.getNameId().getNameQualifier()); lr.setNameID(nameID); if (request.getSigningKey() != null) { signObject(lr, request.getSigningKey(), request.getAlgorithm(), request.getDigest()); } return lr; }