This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/master by this push:
new 04df56ff79 Upgrading CXF, Elasticsearch and OpenSearch
04df56ff79 is described below
commit 04df56ff79c5292bbfeb0241c1f015fa4467ece4
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Thu Aug 6 09:03:11 2026 +0200
Upgrading CXF, Elasticsearch and OpenSearch
---
.../syncope/client/ui/commons/MIMETypesLoader.java | 3 +--
.../html/form/preview/BinaryTextPreviewer.java | 6 +++--
.../console/panels/ImplementationModalPanel.java | 6 ++---
.../console/rest/NotificationRestClient.java | 4 ++--
.../client/console/rest/RoleRestClient.java | 4 ++--
.../syncope/client/lib/batch/BatchResponse.java | 5 +---
.../common/keymaster/client/api/model/Domain.java | 4 ++--
.../rest/cxf/service/AnyObjectServiceTest.java | 3 +--
.../core/persistence/jpa/StartupDomainLoader.java | 10 ++++----
.../jpa/content/XMLContentExporter.java | 5 ++--
.../persistence/neo4j/StartupDomainLoader.java | 10 ++++----
.../spring/implementation/GroovySandboxTest.java | 11 +++++----
.../console/panels/BpmnProcessDirectoryPanel.java | 7 +++---
.../console/resources/BpmnProcessPUTResource.java | 4 ++--
.../client/console/rest/BpmnProcessRestClient.java | 3 +--
.../client/enduser/rest/BpmnProcessRestClient.java | 27 ----------------------
.../syncope/core/logic/saml2/SAML2ClientCache.java | 3 +--
.../syncope/fit/core/MailTemplateITCase.java | 6 ++---
.../apache/syncope/fit/core/PlainSchemaITCase.java | 9 ++++----
.../apache/syncope/fit/core/UserIssuesITCase.java | 3 +--
.../apache/syncope/fit/core/UserRequestITCase.java | 22 ++++++++++--------
pom.xml | 6 ++---
.../pac4j/saml/WASAML2ClientKeystoreGenerator.java | 3 +--
.../pac4j/saml/WASAML2ClientMetadataGenerator.java | 4 ++--
24 files changed, 69 insertions(+), 99 deletions(-)
diff --git
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/MIMETypesLoader.java
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/MIMETypesLoader.java
index 28130d9e3a..59f591c79d 100644
---
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/MIMETypesLoader.java
+++
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/MIMETypesLoader.java
@@ -25,7 +25,6 @@ import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.wicket.util.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import tools.jackson.databind.JsonNode;
@@ -46,7 +45,7 @@ public class MIMETypesLoader implements Serializable {
public void load() {
mimeTypesMap = new HashMap<>();
try {
- JsonNode jsonNode =
MAPPER.readTree(IOUtils.toString(getClass().getResourceAsStream("/MIMETypes.json")));
+ JsonNode jsonNode =
MAPPER.readTree(getClass().getResourceAsStream("/MIMETypes.json").readAllBytes());
for (JsonNode node : jsonNode) {
JsonNode type = node.path("name");
JsonNode ext = node.path("extension");
diff --git
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/preview/BinaryTextPreviewer.java
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/preview/BinaryTextPreviewer.java
index 7e104d325f..26c8d18b65 100644
---
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/preview/BinaryTextPreviewer.java
+++
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/preview/BinaryTextPreviewer.java
@@ -22,6 +22,7 @@ import jakarta.ws.rs.core.MediaType;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
import org.apache.syncope.client.ui.commons.annotations.BinaryPreview;
import org.apache.wicket.Component;
import org.apache.wicket.markup.head.IHeaderResponse;
@@ -30,7 +31,6 @@ import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.form.TextArea;
import org.apache.wicket.markup.html.panel.Fragment;
import org.apache.wicket.model.Model;
-import org.apache.wicket.util.io.IOUtils;
@BinaryPreview(mimeTypes = { MediaType.APPLICATION_JSON,
MediaType.APPLICATION_XML,
"application/yaml", "application/x-yaml", "text/x-yaml", "text/yaml" })
@@ -51,7 +51,9 @@ public class BinaryTextPreviewer extends BinaryPreviewer {
try {
fragment = new Fragment("preview", "previewFragment", this);
InputStream stream = new ByteArrayInputStream(uploadedBytes);
- TextArea<String> previewer = new TextArea<>("previewer",
Model.of(IOUtils.toString(stream)));
+ TextArea<String> previewer = new TextArea<>(
+ "previewer",
+ Model.of(new String(stream.readAllBytes(),
StandardCharsets.UTF_8)));
previewer.setOutputMarkupPlaceholderTag(true);
previewerId = previewer.getMarkupId();
fragment.add(previewer);
diff --git
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ImplementationModalPanel.java
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ImplementationModalPanel.java
index f95571bbb0..1d4e7495c5 100644
---
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ImplementationModalPanel.java
+++
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ImplementationModalPanel.java
@@ -19,6 +19,7 @@
package org.apache.syncope.client.console.panels;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.SyncopeConsoleSession;
@@ -43,7 +44,6 @@ import org.apache.wicket.markup.html.form.TextArea;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.spring.injection.annot.SpringBean;
-import org.apache.wicket.util.io.IOUtils;
import tools.jackson.core.JacksonException;
import tools.jackson.databind.JsonNode;
import tools.jackson.databind.json.JsonMapper;
@@ -124,9 +124,9 @@ public class ImplementationModalPanel extends
AbstractModalPanel<ImplementationT
if (templateClassName != null) {
try {
implementation.setBody(StringUtils.substringAfter(
-
IOUtils.toString(ImplementationModalPanel.class.getResourceAsStream(
+ new
String(ImplementationModalPanel.class.getResourceAsStream(
"/org/apache/syncope/client/console/implementations/" + templateClassName
- + ".groovy")),
+ + ".groovy").readAllBytes(),
StandardCharsets.UTF_8),
"*/\n"));
} catch (IOException e) {
LOG.error("Could not load the expected Groovy template {}
for {}",
diff --git
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/NotificationRestClient.java
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/NotificationRestClient.java
index ebc1cb2b7b..6d1c43109f 100644
---
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/NotificationRestClient.java
+++
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/NotificationRestClient.java
@@ -18,10 +18,10 @@
*/
package org.apache.syncope.client.console.rest;
+import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.List;
-import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.to.JobTO;
import org.apache.syncope.common.lib.to.MailTemplateTO;
@@ -92,6 +92,6 @@ public class NotificationRestClient extends BaseRestClient {
public void updateTemplateFormat(final String key, final String content,
final MailTemplateFormat format) {
getService(MailTemplateService.class).setFormat(
- key, format, IOUtils.toInputStream(content,
StandardCharsets.UTF_8));
+ key, format, new
ByteArrayInputStream(content.getBytes(StandardCharsets.UTF_8)));
}
}
diff --git
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/RoleRestClient.java
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/RoleRestClient.java
index cb7ed3880b..11c15f2573 100644
---
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/RoleRestClient.java
+++
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/RoleRestClient.java
@@ -18,10 +18,10 @@
*/
package org.apache.syncope.client.console.rest;
+import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.List;
-import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.common.lib.SyncopeClientException;
@@ -75,7 +75,7 @@ public class RoleRestClient extends BaseRestClient {
public void setAnyLayout(final String roleKey, final String content) {
getService(RoleService.class).setAnyLayout(
- roleKey, IOUtils.toInputStream(content,
StandardCharsets.UTF_8));
+ roleKey, new
ByteArrayInputStream(content.getBytes(StandardCharsets.UTF_8)));
}
public void removeAnyLayout(final String roleKey) {
diff --git
a/client/idrepo/lib/src/main/java/org/apache/syncope/client/lib/batch/BatchResponse.java
b/client/idrepo/lib/src/main/java/org/apache/syncope/client/lib/batch/BatchResponse.java
index 30b7b99013..03bb0ce9c4 100644
---
a/client/idrepo/lib/src/main/java/org/apache/syncope/client/lib/batch/BatchResponse.java
+++
b/client/idrepo/lib/src/main/java/org/apache/syncope/client/lib/batch/BatchResponse.java
@@ -22,12 +22,9 @@ import jakarta.ws.rs.core.HttpHeaders;
import jakarta.ws.rs.core.Response;
import java.io.ByteArrayInputStream;
import java.io.IOException;
-import java.io.InputStream;
import java.net.URI;
-import java.nio.charset.StandardCharsets;
import java.util.List;
import org.apache.cxf.configuration.jsse.TLSClientParameters;
-import org.apache.cxf.helpers.IOUtils;
import org.apache.cxf.jaxrs.client.ClientConfiguration;
import org.apache.cxf.jaxrs.client.WebClient;
import org.apache.cxf.transport.http.HTTPConduit;
@@ -80,7 +77,7 @@ public class BatchResponse {
* @throws IOException if there are issues when reading the response body
*/
public static List<BatchResponseItem> getItems(final Response response)
throws IOException {
- String body = IOUtils.toString((InputStream) response.getEntity(),
StandardCharsets.UTF_8.name());
+ String body = response.readEntity(String.class);
LOG.debug("Batch response body:\n{}", body);
return BatchPayloadParser.parse(
diff --git
a/common/keymaster/client-api/src/main/java/org/apache/syncope/common/keymaster/client/api/model/Domain.java
b/common/keymaster/client-api/src/main/java/org/apache/syncope/common/keymaster/client/api/model/Domain.java
index 36f4b54a4b..fad802dd07 100644
---
a/common/keymaster/client-api/src/main/java/org/apache/syncope/common/keymaster/client/api/model/Domain.java
+++
b/common/keymaster/client-api/src/main/java/org/apache/syncope/common/keymaster/client/api/model/Domain.java
@@ -23,10 +23,10 @@ import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import java.io.IOException;
import java.io.Serializable;
+import java.nio.charset.StandardCharsets;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.cxf.helpers.IOUtils;
import org.apache.syncope.common.lib.types.CipherAlgorithm;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -80,7 +80,7 @@ public abstract class Domain implements Serializable {
protected static String read(final String filename) {
String read = null;
try {
- read = IOUtils.toString(Domain.class.getResourceAsStream('/' +
filename));
+ read = new String(Domain.class.getResourceAsStream('/' +
filename).readAllBytes(), StandardCharsets.UTF_8);
} catch (IOException e) {
LOG.error("Could not read {}", filename, e);
}
diff --git
a/core/idrepo/rest-cxf/src/test/java/org/apache/syncope/core/rest/cxf/service/AnyObjectServiceTest.java
b/core/idrepo/rest-cxf/src/test/java/org/apache/syncope/core/rest/cxf/service/AnyObjectServiceTest.java
index 8b89168904..a3790a2b03 100644
---
a/core/idrepo/rest-cxf/src/test/java/org/apache/syncope/core/rest/cxf/service/AnyObjectServiceTest.java
+++
b/core/idrepo/rest-cxf/src/test/java/org/apache/syncope/core/rest/cxf/service/AnyObjectServiceTest.java
@@ -38,7 +38,6 @@ import java.util.Date;
import java.util.List;
import java.util.UUID;
import org.apache.cxf.endpoint.Server;
-import org.apache.cxf.helpers.IOUtils;
import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
import org.apache.cxf.jaxrs.client.WebClient;
import org.apache.cxf.jaxrs.ext.MessageContext;
@@ -223,7 +222,7 @@ public class AnyObjectServiceTest {
InputStream in = (InputStream) response.getEntity();
PagedResult<AnyObjectTO> list = new SyncopeJsonMapper().
- readValue(IOUtils.toString(in), new TypeReference<>() {
+ readValue(in.readAllBytes(), new TypeReference<>() {
});
checkList(list);
}
diff --git
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/StartupDomainLoader.java
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/StartupDomainLoader.java
index 7385fdd0d7..7dac6547f7 100644
---
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/StartupDomainLoader.java
+++
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/StartupDomainLoader.java
@@ -19,9 +19,9 @@
package org.apache.syncope.core.persistence.jpa;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.util.Map;
import java.util.stream.Collectors;
-import org.apache.cxf.helpers.IOUtils;
import org.apache.syncope.common.keymaster.client.api.DomainOps;
import org.apache.syncope.common.keymaster.client.api.model.Domain;
import org.apache.syncope.common.keymaster.client.api.model.JPADomain;
@@ -97,15 +97,15 @@ public class StartupDomainLoader implements
SyncopeCoreLoader {
poolMinIdle(domainProps.getPoolMinIdle());
try {
- builder.content(IOUtils.toString(
-
resourceLoader.getResource(domainProps.getContent()).getInputStream()));
+ builder.content(new
String(resourceLoader.getResource(domainProps.getContent()).
+ getInputStream().readAllBytes(),
StandardCharsets.UTF_8));
} catch (IOException e) {
LOG.error("While loading {}", domainProps.getContent(), e);
}
try {
- builder.keymasterConfParams(IOUtils.toString(
-
resourceLoader.getResource(domainProps.getKeymasterConfParams()).getInputStream()));
+ builder.keymasterConfParams(new
String(resourceLoader.getResource(domainProps.
+
getKeymasterConfParams()).getInputStream().readAllBytes(),
StandardCharsets.UTF_8));
} catch (IOException e) {
LOG.error("While loading {}",
domainProps.getKeymasterConfParams(), e);
}
diff --git
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
index e08db492b6..dbb7b5d69a 100644
---
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
+++
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
@@ -65,7 +65,6 @@ import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.Strings;
import org.apache.commons.lang3.tuple.Pair;
-import org.apache.cxf.helpers.IOUtils;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.core.persistence.api.DomainHolder;
import org.apache.syncope.core.persistence.api.dao.RealmSearchDAO;
@@ -115,14 +114,14 @@ public class XMLContentExporter extends
AbstractXMLContentExporter {
case Types.LONGVARBINARY:
InputStream is = rs.getBinaryStream(columnName);
if (is != null) {
- value =
DatatypeConverter.printHexBinary(IOUtils.toString(is).getBytes());
+ value =
DatatypeConverter.printHexBinary(is.readAllBytes());
}
break;
case Types.BLOB:
Blob blob = rs.getBlob(columnName);
if (blob != null) {
- value =
DatatypeConverter.printHexBinary(IOUtils.toString(blob.getBinaryStream()).getBytes());
+ value =
DatatypeConverter.printHexBinary(blob.getBinaryStream().readAllBytes());
}
break;
diff --git
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/StartupDomainLoader.java
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/StartupDomainLoader.java
index 1e7807cfb0..c87ac8216d 100644
---
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/StartupDomainLoader.java
+++
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/StartupDomainLoader.java
@@ -19,9 +19,9 @@
package org.apache.syncope.core.persistence.neo4j;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.util.Map;
import java.util.stream.Collectors;
-import org.apache.cxf.helpers.IOUtils;
import org.apache.syncope.common.keymaster.client.api.DomainOps;
import org.apache.syncope.common.keymaster.client.api.model.Domain;
import org.apache.syncope.common.keymaster.client.api.model.Neo4jDomain;
@@ -92,15 +92,15 @@ public class StartupDomainLoader implements
SyncopeCoreLoader {
maxConnectionPoolSize(domainProps.getMaxConnectionPoolSize());
try {
- builder.content(IOUtils.toString(
-
resourceLoader.getResource(domainProps.getContent()).getInputStream()));
+ builder.content(new
String(resourceLoader.getResource(domainProps.getContent()).
+ getInputStream().readAllBytes(),
StandardCharsets.UTF_8));
} catch (IOException e) {
LOG.error("While loading {}", domainProps.getContent(), e);
}
try {
- builder.keymasterConfParams(IOUtils.toString(
-
resourceLoader.getResource(domainProps.getKeymasterConfParams()).getInputStream()));
+ builder.keymasterConfParams(new
String(resourceLoader.getResource(domainProps.
+
getKeymasterConfParams()).getInputStream().readAllBytes(),
StandardCharsets.UTF_8));
} catch (IOException e) {
LOG.error("While loading {}",
domainProps.getKeymasterConfParams(), e);
}
diff --git
a/core/spring/src/test/java/org/apache/syncope/core/spring/implementation/GroovySandboxTest.java
b/core/spring/src/test/java/org/apache/syncope/core/spring/implementation/GroovySandboxTest.java
index 79865ab9e0..81a3393217 100644
---
a/core/spring/src/test/java/org/apache/syncope/core/spring/implementation/GroovySandboxTest.java
+++
b/core/spring/src/test/java/org/apache/syncope/core/spring/implementation/GroovySandboxTest.java
@@ -24,6 +24,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.HashMap;
@@ -31,7 +32,6 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import org.apache.commons.lang3.exception.ExceptionUtils;
-import org.apache.cxf.helpers.IOUtils;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.types.ImplementationEngine;
import org.apache.syncope.core.persistence.api.entity.Implementation;
@@ -80,12 +80,13 @@ class GroovySandboxTest {
assertTrue(e.getMessage().contains("Insecure call to 'new
java.lang.ProcessBuilder java.lang.String[]'"));
}
- private MacroActions actions(final String key, final String resource)
throws Exception {
- final Implementation impl = mock(Implementation.class);
+ private static MacroActions actions(final String key, final String
resource) throws Exception {
+ Implementation impl = mock(Implementation.class);
when(impl.getKey()).thenReturn(key);
when(impl.getEngine()).thenReturn(ImplementationEngine.GROOVY);
- when(impl.getBody()).thenReturn(IOUtils.toString(
-
Objects.requireNonNull(getClass().getResourceAsStream(resource))));
+ when(impl.getBody()).thenReturn(new String(
+
Objects.requireNonNull(GroovySandboxTest.class.getResourceAsStream(resource)).readAllBytes(),
+ StandardCharsets.UTF_8));
return ImplementationManager.build(SyncopeConstants.MASTER_DOMAIN,
impl);
}
diff --git
a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/BpmnProcessDirectoryPanel.java
b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/BpmnProcessDirectoryPanel.java
index 4fe0faa79a..bcbd9fa076 100644
---
a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/BpmnProcessDirectoryPanel.java
+++
b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/BpmnProcessDirectoryPanel.java
@@ -22,6 +22,7 @@ import
de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
import jakarta.ws.rs.core.MediaType;
import java.io.IOException;
import java.io.Serializable;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
@@ -66,7 +67,6 @@ import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.util.io.IOUtils;
public class BpmnProcessDirectoryPanel extends DirectoryPanel<
BpmnProcess, BpmnProcess, BpmProcessDataProvider,
BpmnProcessRestClient> {
@@ -173,8 +173,9 @@ public class BpmnProcessDirectoryPanel extends
DirectoryPanel<
public void onClick(final AjaxRequestTarget target, final
BpmnProcess ignore) {
final IModel<String> wfDefinition = new Model<>();
try {
-
wfDefinition.setObject(IOUtils.toString(restClient.getDefinition(
- MediaType.APPLICATION_XML_TYPE,
model.getObject().getKey())));
+ wfDefinition.setObject(new String(restClient.getDefinition(
+ MediaType.APPLICATION_XML_TYPE,
model.getObject().getKey()).readAllBytes(),
+ StandardCharsets.UTF_8));
} catch (IOException e) {
LOG.error("Could not get workflow definition", e);
}
diff --git
a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/resources/BpmnProcessPUTResource.java
b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/resources/BpmnProcessPUTResource.java
index 70f901e553..e3d917294c 100644
---
a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/resources/BpmnProcessPUTResource.java
+++
b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/resources/BpmnProcessPUTResource.java
@@ -22,11 +22,11 @@ import jakarta.servlet.http.HttpServletRequest;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import org.apache.cxf.common.util.UrlUtils;
import org.apache.syncope.client.console.rest.BpmnProcessRestClient;
import org.apache.syncope.client.ui.commons.annotations.Resource;
import org.apache.syncope.common.lib.to.BpmnProcess;
-import org.apache.wicket.util.io.IOUtils;
/**
* Mirror REST resource for setting BPMN process in JSON (used by Flowable
Modeler).
@@ -45,7 +45,7 @@ public class BpmnProcessPUTResource extends
AbstractBpmnProcessResource {
String definition = null;
try {
HttpServletRequest request = (HttpServletRequest)
attributes.getRequest().getContainerRequest();
- String requestBody = IOUtils.toString(request.getInputStream());
+ String requestBody = new
String(request.getInputStream().readAllBytes(), StandardCharsets.UTF_8);
String[] split = requestBody.split("&");
for (int i = 0; i < split.length && definition == null; i++) {
String keyValue = split[i];
diff --git
a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/rest/BpmnProcessRestClient.java
b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/rest/BpmnProcessRestClient.java
index 7d60b25fe5..4c32454c2b 100644
---
a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/rest/BpmnProcessRestClient.java
+++
b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/rest/BpmnProcessRestClient.java
@@ -23,7 +23,6 @@ import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import java.io.InputStream;
import java.util.List;
-import org.apache.cxf.helpers.IOUtils;
import org.apache.cxf.jaxrs.client.WebClient;
import org.apache.cxf.jaxrs.impl.MetadataMap;
import org.apache.syncope.common.lib.to.BpmnProcess;
@@ -68,7 +67,7 @@ public class BpmnProcessRestClient extends BaseRestClient {
byte[] diagram;
try {
- diagram = IOUtils.readBytesFromStream((InputStream)
response.getEntity());
+ diagram = response.readEntity(String.class).getBytes();
} catch (Exception e) {
LOG.error("Could not get workflow diagram", e);
diagram = new byte[0];
diff --git
a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/rest/BpmnProcessRestClient.java
b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/rest/BpmnProcessRestClient.java
index b8001e80be..82c886955d 100644
---
a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/rest/BpmnProcessRestClient.java
+++
b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/rest/BpmnProcessRestClient.java
@@ -19,15 +19,10 @@
package org.apache.syncope.client.enduser.rest;
import jakarta.ws.rs.core.MediaType;
-import jakarta.ws.rs.core.Response;
-import java.io.InputStream;
import java.util.List;
-import org.apache.cxf.helpers.IOUtils;
import org.apache.cxf.jaxrs.client.Client;
import org.apache.cxf.jaxrs.client.WebClient;
-import org.apache.syncope.client.enduser.SyncopeEnduserSession;
import org.apache.syncope.common.lib.to.BpmnProcess;
-import org.apache.syncope.common.rest.api.RESTHeaders;
import org.apache.syncope.common.rest.api.service.BpmnProcessService;
public class BpmnProcessRestClient extends BaseRestClient {
@@ -44,26 +39,4 @@ public class BpmnProcessRestClient extends BaseRestClient {
public List<BpmnProcess> getDefinitions() {
return getService(BpmnProcessService.class).list();
}
-
- public InputStream getDefinition(final MediaType mediaType, final String
key) {
- Response response = getService(mediaType).get(key);
- SyncopeEnduserSession.get().resetClient(BpmnProcessService.class);
-
- return (InputStream) response.getEntity();
- }
-
- public byte[] getDiagram(final String key) {
- BpmnProcessService service = getService(BpmnProcessService.class);
- WebClient.client(service).accept(RESTHeaders.MEDIATYPE_IMAGE_PNG);
- Response response = service.exportDiagram(key);
-
- byte[] diagram;
- try {
- diagram = IOUtils.readBytesFromStream((InputStream)
response.getEntity());
- } catch (Exception e) {
- LOG.error("Could not get workflow diagram", e);
- diagram = new byte[0];
- }
- return diagram;
- }
}
diff --git
a/ext/saml2sp4ui/logic/src/main/java/org/apache/syncope/core/logic/saml2/SAML2ClientCache.java
b/ext/saml2sp4ui/logic/src/main/java/org/apache/syncope/core/logic/saml2/SAML2ClientCache.java
index dc3289da0b..52ced1243f 100644
---
a/ext/saml2sp4ui/logic/src/main/java/org/apache/syncope/core/logic/saml2/SAML2ClientCache.java
+++
b/ext/saml2sp4ui/logic/src/main/java/org/apache/syncope/core/logic/saml2/SAML2ClientCache.java
@@ -29,7 +29,6 @@ import java.util.List;
import java.util.Optional;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.Strings;
-import org.apache.cxf.helpers.IOUtils;
import org.apache.syncope.common.lib.to.Item;
import org.apache.syncope.common.lib.to.SAML2SP4UIIdPTO;
import org.apache.syncope.common.lib.types.SAML2BindingType;
@@ -71,7 +70,7 @@ public class SAML2ClientCache {
public static SAML2SP4UIIdPTO importMetadata(
final InputStream metadata, final SAML2Configuration cfg) throws
IOException {
- cfg.setIdentityProviderMetadataResource(new
ByteArrayResource(IOUtils.readBytesFromStream(metadata)));
+ cfg.setIdentityProviderMetadataResource(new
ByteArrayResource(metadata.readAllBytes()));
SAML2IdentityProviderMetadataResolver metadataResolver = new
SAML2IdentityProviderMetadataResolver(cfg);
metadataResolver.init();
cfg.setIdentityProviderMetadataResolver(metadataResolver);
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MailTemplateITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MailTemplateITCase.java
index 14a42482d5..e94d5bab2b 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MailTemplateITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MailTemplateITCase.java
@@ -26,10 +26,10 @@ import static org.junit.jupiter.api.Assertions.fail;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
+import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.List;
-import org.apache.commons.io.IOUtils;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.to.MailTemplateTO;
import org.apache.syncope.common.lib.types.ClientExceptionType;
@@ -83,7 +83,7 @@ public class MailTemplateITCase extends AbstractITCase {
// 3. set TEXT
String textTemplate = "Hi there, I am ${username}.";
MAIL_TEMPLATE_SERVICE.setFormat(
- key, MailTemplateFormat.TEXT,
IOUtils.toInputStream(textTemplate, StandardCharsets.UTF_8));
+ key, MailTemplateFormat.TEXT, new
ByteArrayInputStream(textTemplate.getBytes(StandardCharsets.UTF_8)));
response = MAIL_TEMPLATE_SERVICE.getFormat(key,
MailTemplateFormat.TEXT);
assertEquals(200, response.getStatus());
@@ -93,7 +93,7 @@ public class MailTemplateITCase extends AbstractITCase {
// 3. set HTML
String htmlTemplate = "<html><body>Hi there, I am
${username}.</body></html>";
MAIL_TEMPLATE_SERVICE.setFormat(
- key, MailTemplateFormat.HTML,
IOUtils.toInputStream(htmlTemplate, StandardCharsets.UTF_8));
+ key, MailTemplateFormat.HTML, new
ByteArrayInputStream(htmlTemplate.getBytes(StandardCharsets.UTF_8)));
response = MAIL_TEMPLATE_SERVICE.getFormat(key,
MailTemplateFormat.HTML);
assertEquals(200, response.getStatus());
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PlainSchemaITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PlainSchemaITCase.java
index 2af22f3c26..1bac452fdc 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PlainSchemaITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PlainSchemaITCase.java
@@ -30,7 +30,6 @@ import java.io.IOException;
import java.util.Base64;
import java.util.List;
import java.util.Locale;
-import org.apache.cxf.helpers.IOUtils;
import org.apache.syncope.common.keymaster.client.api.StandardConfParams;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.request.AttrPatch;
@@ -188,7 +187,7 @@ public class PlainSchemaITCase extends AbstractITCase {
// validation OK - application/pdf -> application/pdf
userUR.getPlainAttrs().add(new AttrPatch.Builder(attr("BinaryPDF",
Base64.getEncoder().encodeToString(
-
IOUtils.readBytesFromStream(getClass().getResourceAsStream("/test.pdf"))))).
+
getClass().getResourceAsStream("/test.pdf").readAllBytes()))).
operation(PatchOperation.ADD_REPLACE).
build());
@@ -201,7 +200,7 @@ public class PlainSchemaITCase extends AbstractITCase {
try {
userUR.getPlainAttrs().add(new
AttrPatch.Builder(attr("BinaryPDF",
Base64.getEncoder().encodeToString(
-
IOUtils.readBytesFromStream(getClass().getResourceAsStream("/test.html"))))).
+
getClass().getResourceAsStream("/test.html").readAllBytes()))).
operation(PatchOperation.ADD_REPLACE).
build());
@@ -216,7 +215,7 @@ public class PlainSchemaITCase extends AbstractITCase {
// validation ok - application/json -> application/json
userUR.getPlainAttrs().add(new AttrPatch.Builder(attr("BinaryJSON",
Base64.getEncoder().encodeToString(
-
IOUtils.readBytesFromStream(getClass().getResourceAsStream("/test.json"))))).
+
getClass().getResourceAsStream("/test.json").readAllBytes()))).
operation(PatchOperation.ADD_REPLACE).
build());
@@ -228,7 +227,7 @@ public class PlainSchemaITCase extends AbstractITCase {
// no validation - application/xml -> application/json
userUR.getPlainAttrs().add(new
AttrPatch.Builder(attr("BinaryJSON2",
Base64.getEncoder().encodeToString(
-
IOUtils.readBytesFromStream(getClass().getResourceAsStream("/test.xml"))))).
+
getClass().getResourceAsStream("/test.xml").readAllBytes()))).
operation(PatchOperation.ADD_REPLACE).
build());
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
index a6136b9d68..fdd564b66b 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
@@ -41,7 +41,6 @@ import java.util.List;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
-import org.apache.cxf.helpers.IOUtils;
import org.apache.cxf.jaxrs.client.WebClient;
import org.apache.syncope.client.lib.SyncopeClient;
import org.apache.syncope.common.keymaster.client.api.StandardConfParams;
@@ -679,7 +678,7 @@ public class UserIssuesITCase extends AbstractITCase {
UserCR userCR =
UserITCase.getUniqueSample("[email protected]");
userCR.getPlainAttrs().add(attr("obscure", "valueToBeObscured"));
userCR.getPlainAttrs().add(attr("photo",
Base64.getEncoder().encodeToString(
-
IOUtils.readBytesFromStream(getClass().getResourceAsStream("/favicon.jpg")))));
+
getClass().getResourceAsStream("/favicon.jpg").readAllBytes())));
userCR.getMemberships().add(new
MembershipTO.Builder(groupTO.getKey()).build());
UserTO userTO = createUser(userCR).getEntity();
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserRequestITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserRequestITCase.java
index f3a863c789..8bcedc973c 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserRequestITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserRequestITCase.java
@@ -28,8 +28,8 @@ import static org.junit.jupiter.api.Assumptions.assumeTrue;
import jakarta.ws.rs.core.GenericType;
import jakarta.ws.rs.core.MediaType;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.util.List;
-import org.apache.cxf.helpers.IOUtils;
import org.apache.cxf.jaxrs.client.WebClient;
import org.apache.syncope.client.lib.SyncopeClient;
import org.apache.syncope.common.lib.SyncopeClientException;
@@ -55,12 +55,15 @@ public class UserRequestITCase extends AbstractITCase {
assumeTrue(IS_FLOWABLE_ENABLED);
WebClient.client(BPMN_PROCESS_SERVICE).type(MediaType.APPLICATION_XML_TYPE);
- BPMN_PROCESS_SERVICE.set("directorGroupRequest",
-
IOUtils.toString(UserRequestITCase.class.getResourceAsStream("/directorGroupRequest.bpmn20.xml")));
- BPMN_PROCESS_SERVICE.set("assignPrinterRequest",
-
IOUtils.toString(UserRequestITCase.class.getResourceAsStream("/assignPrinterRequest.bpmn20.xml")));
- BPMN_PROCESS_SERVICE.set("verifyAddedVariables",
-
IOUtils.toString(UserRequestITCase.class.getResourceAsStream("/verifyAddedVariables.bpmn20.xml")));
+ BPMN_PROCESS_SERVICE.set("directorGroupRequest", new String(
+
UserRequestITCase.class.getResourceAsStream("/directorGroupRequest.bpmn20.xml").readAllBytes(),
+ StandardCharsets.UTF_8));
+ BPMN_PROCESS_SERVICE.set("assignPrinterRequest", new String(
+
UserRequestITCase.class.getResourceAsStream("/assignPrinterRequest.bpmn20.xml").readAllBytes(),
+ StandardCharsets.UTF_8));
+ BPMN_PROCESS_SERVICE.set("verifyAddedVariables", new String(
+
UserRequestITCase.class.getResourceAsStream("/verifyAddedVariables.bpmn20.xml").readAllBytes(),
+ StandardCharsets.UTF_8));
}
@BeforeEach
@@ -300,8 +303,9 @@ public class UserRequestITCase extends AbstractITCase {
public void invalid() throws IOException {
WebClient.client(BPMN_PROCESS_SERVICE).type(MediaType.APPLICATION_XML_TYPE);
try {
- BPMN_PROCESS_SERVICE.set("invalid",
-
IOUtils.toString(UserRequestITCase.class.getResourceAsStream("/invalidRequest.bpmn20.xml")));
+ BPMN_PROCESS_SERVICE.set("invalid", new String(
+
UserRequestITCase.class.getResourceAsStream("/invalidRequest.bpmn20.xml").readAllBytes(),
+ StandardCharsets.UTF_8));
fail();
} catch (SyncopeClientException e) {
assertEquals(ClientExceptionType.Workflow, e.getType());
diff --git a/pom.xml b/pom.xml
index ddd74daeb0..84efe7779c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -431,7 +431,7 @@ under the License.
<connid.kafka.version>1.0.0</connid.kafka.version>
<connid.ldup.version>0.1.0</connid.ldup.version>
- <cxf.version>4.2.2</cxf.version>
+ <cxf.version>4.2.3</cxf.version>
<bouncycastle.version>1.85</bouncycastle.version>
<nimbus-jose-jwt.version>10.9.1</nimbus-jose-jwt.version>
@@ -451,8 +451,8 @@ under the License.
<disruptor.version>4.0.0</disruptor.version>
- <elasticsearch.version>9.4.4</elasticsearch.version>
- <opensearch.version>3.7.0</opensearch.version>
+ <elasticsearch.version>9.5.0</elasticsearch.version>
+ <opensearch.version>3.8.0</opensearch.version>
<opensearch-java.version>3.9.0</opensearch-java.version>
<openfga.version>v1</openfga.version>
diff --git
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/pac4j/saml/WASAML2ClientKeystoreGenerator.java
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/pac4j/saml/WASAML2ClientKeystoreGenerator.java
index 32217fc526..13a5fe2f7d 100644
---
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/pac4j/saml/WASAML2ClientKeystoreGenerator.java
+++
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/pac4j/saml/WASAML2ClientKeystoreGenerator.java
@@ -27,7 +27,6 @@ import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.cert.X509Certificate;
import java.util.Base64;
-import org.apache.commons.io.IOUtils;
import org.apache.syncope.common.rest.api.service.wa.WASAML2SPService;
import org.apache.syncope.wa.bootstrap.WARestClient;
import org.pac4j.core.keystore.generation.BaseKeystoreGenerator;
@@ -79,7 +78,7 @@ public class WASAML2ClientKeystoreGenerator extends
BaseKeystoreGenerator {
}
waRestClient.getService(WASAML2SPService.class).setSAML2SPKeystore(
- saml2Client, IOUtils.toInputStream(encodedKeystore,
StandardCharsets.UTF_8));
+ saml2Client, new
ByteArrayInputStream(encodedKeystore.getBytes(StandardCharsets.UTF_8)));
}
@Override
diff --git
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/pac4j/saml/WASAML2ClientMetadataGenerator.java
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/pac4j/saml/WASAML2ClientMetadataGenerator.java
index 15066f43e9..2e69f3ae45 100644
---
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/pac4j/saml/WASAML2ClientMetadataGenerator.java
+++
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/pac4j/saml/WASAML2ClientMetadataGenerator.java
@@ -18,10 +18,10 @@
*/
package org.apache.syncope.wa.starter.pac4j.saml;
+import java.io.ByteArrayInputStream;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import java.util.Optional;
-import org.apache.commons.io.IOUtils;
import org.apache.syncope.common.rest.api.service.wa.WASAML2SPService;
import org.apache.syncope.wa.bootstrap.WARestClient;
import org.opensaml.saml.metadata.resolver.MetadataResolver;
@@ -110,7 +110,7 @@ public class WASAML2ClientMetadataGenerator extends
BaseSAML2MetadataGenerator {
try {
waRestClient.getService(WASAML2SPService.class).setSAML2SPMetadata(
- saml2Client, IOUtils.toInputStream(encodedMetadata,
StandardCharsets.UTF_8));
+ saml2Client, new
ByteArrayInputStream(encodedMetadata.getBytes(StandardCharsets.UTF_8)));
} catch (Exception e) {
LOG.error("While storing SP {} metadata", saml2Client, e);
}