/** * 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); } }