private LogoutRequest getLogoutRequest(String destination, String issuerId) { final LogoutRequest logoutRequest = build(LogoutRequest.DEFAULT_ELEMENT_NAME); logoutRequest.setID(requestIdManager.newId()); logoutRequest.setDestination(destination); final Issuer issuer = build(Issuer.DEFAULT_ELEMENT_NAME); issuer.setValue(issuerId); logoutRequest.setIssuer(issuer); logoutRequest.setIssueInstant(DateTime.now()); final NameID nameID = build(NameID.DEFAULT_ELEMENT_NAME); nameID.setFormat(SamlNameIdFormat.EMAIL.urn()); logoutRequest.setNameID(nameID); return logoutRequest; }
/** * Decrypt any {@link EncryptedID} found in a LogoutRequest and replace it with the result. * * @param profileRequestContext current profile request context * @param request request to operate on * * @throws DecryptionException if an error occurs */ private void processLogoutRequest(@Nonnull final ProfileRequestContext profileRequestContext, @Nonnull final LogoutRequest request) throws DecryptionException { if (request.getEncryptedID() != null) { log.debug("{} Decrypting EncryptedID in LogoutRequest", getLogPrefix()); final NameID decrypted = processEncryptedID(profileRequestContext, request.getEncryptedID()); if (decrypted != null) { request.setNameID(decrypted); request.setEncryptedID(null); } } }
/** {@inheritDoc} */ protected void processChildElement(XMLObject parentSAMLObject, XMLObject childSAMLObject) throws UnmarshallingException { LogoutRequest req = (LogoutRequest) parentSAMLObject; if (childSAMLObject instanceof BaseID) { req.setBaseID((BaseID) childSAMLObject); } else if (childSAMLObject instanceof NameID) { req.setNameID((NameID) childSAMLObject); } else if (childSAMLObject instanceof EncryptedID) { req.setEncryptedID((EncryptedID) childSAMLObject); } else if (childSAMLObject instanceof SessionIndex) { req.getSessionIndexes().add((SessionIndex) childSAMLObject); } else { super.processChildElement(parentSAMLObject, childSAMLObject); } } }
/** * Encrypt a {@link NameID} found in a LogoutRequest and replace it with the result. * * @param request request to operate on * * @throws EncryptionException if an error occurs */ private void processLogoutRequest(@Nonnull final LogoutRequest request) throws EncryptionException { if (shouldEncrypt(request.getNameID())) { log.debug("{} Encrypting NameID in LogoutRequest", getLogPrefix()); final EncryptedID encrypted = getEncrypter().encrypt(request.getNameID()); request.setEncryptedID(encrypted); request.setNameID(null); } }
public static LogoutRequest createLogoutRequest( Issuer issuer, NameID nameId, String id, List<String> sessionIndexes) { LogoutRequest logoutRequest = logoutRequestBuilder.buildObject(); logoutRequest.setID(id); logoutRequest.setIssuer(issuer); logoutRequest.setNameID(nameId); logoutRequest.setIssueInstant(DateTime.now()); logoutRequest.setVersion(SAMLVersion.VERSION_20); SessionIndexBuilder builder = new SessionIndexBuilder(); for (String index : sessionIndexes) { SessionIndex sessionIndexObject = builder.buildObject(); sessionIndexObject.setSessionIndex(index); logoutRequest.getSessionIndexes().add(sessionIndexObject); } return logoutRequest; }
@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; }
object.setNameID(nameId); } catch (final MarshallingException|UnmarshallingException e) { log.error("{} Error cloning NameID for use in LogoutRequest for {}", getLogPrefix(),
logoutRequest.setNameID(nameId); logoutRequest.getSessionIndexes().add(sessionIndexElement);
nameID.setFormat((String) consumer.getJwtClaims().getClaim(JWT_CLAIM_NAMEID_FORMAT)); nameID.setValue((String) consumer.getJwtClaims().getClaim(JWT_CLAIM_NAMEID_VALUE)); logoutRequest.setNameID(nameID);
nameId.setSPNameQualifier(profile.getSamlNameIdSpNameQualifier()); nameId.setSPProvidedID(profile.getSamlNameIdSpProviderId()); request.setNameID(nameId);
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; }