diff --git a/README.md b/README.md
index 9ec4cee594bd..4f07a334ec28 100644
--- a/README.md
+++ b/README.md
@@ -88,13 +88,30 @@ Distributed Data Framework (DDF) is an open source, modular integration framewor
* Make sure that your JAVA\_HOME environment variable is set to the newly installed JDK location, and that your PATH includes %JAVA\_HOME%\bin (Windows) or $JAVA\_HOME$/bin (\*NIX).
* [Install Maven 3.9.0 \(or later\)](http://maven.apache.org/download.html). Make sure that your PATH includes the MVN\_HOME/bin directory.
* Set the MAVEN_OPTS variable with the appropriate memory settings
-### Optional
+#### Optional
* If you do not wish to run formatting from the commandline (see below) you may use an IDE to format the code for you with the google-java-format plugins.
- https://github.com/google/google-java-format
* IntelliJ: https://plugins.jetbrains.com/plugin/8527
* Eclipse: https://github.com/google/google-java-format/releases/download/google-java-format-1.3/google-java-format-eclipse-plugin-1.3.0.jar
-
+### Configure Maven ###
+This repository depends on Codice and Connexta artifacts available in their GitHub repository packages.
+To pull these artifacts, you will need create a [Personal Access Token (PAT) in GitHub](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic)
+with `packages:read` permissions, and configure maven's ~/.m2/settings.xml:
+```
+
+
+ codice
+ $USERNAME
+ $TOKEN
+
+
+ connexta
+ $USERNAME
+ $TOKEN
+
+
+```
### How to build ###
In order to run through a full build, be sure to have a clone for the ddf repository and optionally the ddf-support repository (NOTE: daily snapshots are deployed so downloading and building each repo may not be necessary since those artifacts will be retrieved.):
diff --git a/catalog/pom.xml b/catalog/pom.xml
index f7e0a3916cd1..9322ed6d60db 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -375,23 +375,6 @@
-
-
- org.ops4j.pax.web
- pax-web-spi
- ${pax.web.version}
-
-
- org.osgi
- osgi.core
- ${osgi.enterprise.version}
-
-
- org.osgi
- osgi.cmpn
- ${osgi.compendium.version}
-
-
measure
common
diff --git a/catalog/solr/catalog-solr-solrclient/pom.xml b/catalog/solr/catalog-solr-solrclient/pom.xml
index 4f7b7aafaea2..8bf827b18f36 100644
--- a/catalog/solr/catalog-solr-solrclient/pom.xml
+++ b/catalog/solr/catalog-solr-solrclient/pom.xml
@@ -102,7 +102,7 @@
BRANCH
COVEREDRATIO
- 0.50
+ 0.46
COMPLEXITY
diff --git a/catalog/solr/catalog-solr-solrclient/src/main/java/ddf/catalog/source/solr/rest/SolrRest.java b/catalog/solr/catalog-solr-solrclient/src/main/java/ddf/catalog/source/solr/rest/SolrRest.java
index 375aab58546d..61d8158c32b8 100644
--- a/catalog/solr/catalog-solr-solrclient/src/main/java/ddf/catalog/source/solr/rest/SolrRest.java
+++ b/catalog/solr/catalog-solr-solrclient/src/main/java/ddf/catalog/source/solr/rest/SolrRest.java
@@ -23,6 +23,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import javax.ws.rs.NotFoundException;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang.StringUtils;
@@ -204,6 +205,7 @@ public void refresh(Map properties) {
}
private void setSimilarities() {
+ boolean updateMetacardCache = true;
if (CollectionUtils.isNotEmpty(fieldTypes)) {
LinkedTreeMap replaceField = new LinkedTreeMap<>();
for (Object fieldType : fieldTypes) {
@@ -229,11 +231,21 @@ private void setSimilarities() {
solrCatalogSchemaClientFactory.getClient().replaceField(gson.toJson(replaceField));
LOGGER.trace("Catalog Configuration update response: {}", response);
- response =
- solrMetacardCacheSchemaClientFactory
- .getClient()
- .replaceField(gson.toJson(replaceField));
- LOGGER.trace("Metacard Cache Configuration update response: {}", response);
+ if (updateMetacardCache) {
+ try {
+ response =
+ solrMetacardCacheSchemaClientFactory
+ .getClient()
+ .replaceField(gson.toJson(replaceField));
+ LOGGER.trace("Metacard Cache Configuration update response: {}", response);
+ } catch (NotFoundException e) {
+ updateMetacardCache = false;
+ LOGGER.debug(
+ "Skipping metacard cache schema updates because {} failed.",
+ getSolrMetacardCacheSchemaUrl(),
+ e);
+ }
+ }
}
}
}
diff --git a/catalog/spatial/csw/spatial-csw-source-common/src/test/java/org/codice/ddf/spatial/ogc/csw/catalog/common/source/CswCqlFilterTest.java b/catalog/spatial/csw/spatial-csw-source-common/src/test/java/org/codice/ddf/spatial/ogc/csw/catalog/common/source/CswCqlFilterTest.java
index 999fef782064..7ecd495b7999 100644
--- a/catalog/spatial/csw/spatial-csw-source-common/src/test/java/org/codice/ddf/spatial/ogc/csw/catalog/common/source/CswCqlFilterTest.java
+++ b/catalog/spatial/csw/spatial-csw-source-common/src/test/java/org/codice/ddf/spatial/ogc/csw/catalog/common/source/CswCqlFilterTest.java
@@ -21,8 +21,8 @@
import ddf.catalog.data.Metacard;
import ddf.catalog.data.types.Core;
import ddf.catalog.source.UnsupportedQueryException;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -129,7 +129,7 @@ public class CswCqlFilterTest {
initDefaultCswFilterDelegate(
initCswSourceConfiguration(CswAxisOrder.LON_LAT, CswConstants.CSW_TYPE));
- private final Date date = getDate();
+ private Date date;
private final String propertyName = DEFAULT_PROPERTY_NAME;
@@ -231,7 +231,7 @@ public class CswCqlFilterTest {
private final String propertyIsEqualToContentType = "type" + SPACE + EQUALS + SPACE + "'myType'";
- private final String propertyIsEqualToWithDate = getPropertyIsEqualToWithDate(getDate());
+ private String propertyIsEqualToWithDate;
private final String propertyIsEqualToWithBoolean =
DEFAULT_PROPERTY_NAME + SPACE + EQUALS + SPACE + TRUE;
@@ -616,6 +616,8 @@ private static Operation getOperation() {
@Before
public void setup() {
+ date = getDate();
+ propertyIsEqualToWithDate = getPropertyIsEqualToWithDate(date);
Hints.putSystemDefault(
Hints.CRS_AUTHORITY_FACTORY,
"org.geotools.referencing.factory.epsg.hsql.ThreadedHsqlEpsgFactory");
@@ -1499,15 +1501,23 @@ public void testDisjointPropertyOwsBoundingBoxPolygon() throws UnsupportedQueryE
}
private Date getDate() {
- String dateString = "Jun 11 2002";
- SimpleDateFormat formatter = new SimpleDateFormat("MMM d yyyy");
- Date aDate = null;
+ final String dateString = "Jun 11 2002";
+
+ // Define the formatter for the input pattern
+ java.time.format.DateTimeFormatter formatter =
+ java.time.format.DateTimeFormatter.ofPattern("MMM dd yyyy", java.util.Locale.ENGLISH);
+
+ Date date = null;
+ // Parse the input date-time with MST, then convert to America/Denver to ensure that
+ // region-specific rules are applied correctly when parsing
+ LocalDate localDate;
try {
- aDate = formatter.parse(dateString);
- } catch (ParseException e) {
+ localDate = LocalDate.parse(dateString, formatter);
+ date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
+ } catch (Exception e) {
LOGGER.error(e.getMessage(), e);
}
- return aDate;
+ return date;
}
private String getPropertyIsEqualToWithDate(Date aDate) {
diff --git a/catalog/spatial/csw/spatial-csw-source-common/src/test/java/org/codice/ddf/spatial/ogc/csw/catalog/common/source/CswFilterDelegateTest.java b/catalog/spatial/csw/spatial-csw-source-common/src/test/java/org/codice/ddf/spatial/ogc/csw/catalog/common/source/CswFilterDelegateTest.java
index 195766bcfe0e..5073f296564f 100644
--- a/catalog/spatial/csw/spatial-csw-source-common/src/test/java/org/codice/ddf/spatial/ogc/csw/catalog/common/source/CswFilterDelegateTest.java
+++ b/catalog/spatial/csw/spatial-csw-source-common/src/test/java/org/codice/ddf/spatial/ogc/csw/catalog/common/source/CswFilterDelegateTest.java
@@ -46,12 +46,14 @@
import java.io.IOException;
import java.io.StringWriter;
import java.text.ParseException;
-import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
@@ -140,7 +142,7 @@ public class CswFilterDelegateTest {
private static final String DISTANCE_GEO_FILTER_PROP_MAP_KEY = "distance";
- private static final Date SAMPLE_NON_ISO_8601_DATE;
+ private static Date sampleNonIso8601Date;
// NOTE: The contents of these maps ARE mutable
private static final Map POS_LIST_GEO_FILTER_PROP_MAP = new HashMap<>();
@@ -167,15 +169,6 @@ public class CswFilterDelegateTest {
private static Marshaller marshaller = null;
- static {
- try {
- SAMPLE_NON_ISO_8601_DATE = new SimpleDateFormat("MMM d yyyy").parse("Jun 11 2003");
- } catch (ParseException pe) {
- LOGGER.error("Unable to instantiate SAMPLE_NON_ISO_8601_DATE", pe);
- throw new RuntimeException();
- }
- }
-
private final CswFilterDelegate cswFilterDelegateLatLon =
createCswFilterDelegate(
initCswSourceConfiguration(CswAxisOrder.LAT_LON, false, CswConstants.CSW_TYPE));
@@ -309,7 +302,7 @@ public class CswFilterDelegateTest {
createComparisonFilterString(
ComparisonOperator.PROPERTY_IS_EQUAL_TO,
DEFAULT_PROPERTY_NAME,
- convertDateToIso8601Format(SAMPLE_NON_ISO_8601_DATE).toString());
+ convertDateToIso8601Format(sampleNonIso8601Date).toString());
private final String propertyIsEqualToXmlWithBoolean =
createComparisonFilterString(
@@ -778,6 +771,27 @@ public static void setupTestClass() throws JAXBException, ParseException {
map.put("ogc", "http://www.opengis.net/ogc");
NamespaceContext ctx = new SimpleNamespaceContext(map);
XMLUnit.setXpathNamespaceContext(ctx);
+
+ sampleNonIso8601Date = getNonIso8601Date();
+ }
+
+ private static Date getNonIso8601Date() {
+ final String dateString = "Jun 11 2003";
+
+ java.time.format.DateTimeFormatter formatter =
+ java.time.format.DateTimeFormatter.ofPattern("MMM dd yyyy", Locale.ENGLISH);
+
+ Date date = null;
+ // Parse the input date-time with MST, then convert to America/Denver to ensure that
+ // region-specific rules are applied correctly when parsing
+ LocalDate localDate;
+ try {
+ localDate = LocalDate.parse(dateString, formatter);
+ date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
+ } catch (Exception e) {
+ LOGGER.error(e.getMessage(), e);
+ }
+ return date;
}
private static FilterCapabilities getMockFilterCapabilities() {
@@ -1518,11 +1532,10 @@ public void testConfigurableMetacardMappingApiso()
public void testPropertyIsEqualToDateLiteral()
throws JAXBException, ParseException, SAXException, IOException {
- LOGGER.debug("Input date: {}", SAMPLE_NON_ISO_8601_DATE);
- LOGGER.debug(
- "ISO 8601 formatted date: {}", convertDateToIso8601Format(SAMPLE_NON_ISO_8601_DATE));
+ LOGGER.debug("Input date: {}", sampleNonIso8601Date);
+ LOGGER.debug("ISO 8601 formatted date: {}", convertDateToIso8601Format(sampleNonIso8601Date));
FilterType filterType =
- cswFilterDelegateLatLon.propertyIsEqualTo(propertyName, SAMPLE_NON_ISO_8601_DATE);
+ cswFilterDelegateLatLon.propertyIsEqualTo(propertyName, sampleNonIso8601Date);
assertXMLEqual(propertyIsEqualToXmlWithNonIso8601Date, getXmlFromMarshaller(filterType));
}
diff --git a/catalog/spatial/kml/spatial-kml-networklinkendpoint/pom.xml b/catalog/spatial/kml/spatial-kml-networklinkendpoint/pom.xml
index 1abbffd3e3cf..a171d61bd02b 100644
--- a/catalog/spatial/kml/spatial-kml-networklinkendpoint/pom.xml
+++ b/catalog/spatial/kml/spatial-kml-networklinkendpoint/pom.xml
@@ -33,7 +33,8 @@
de.micromata.jak
- JavaAPIforKml
+ javaapiforkml
+ ${JavaAPIforKml.version}
ddf.platform
@@ -79,7 +80,7 @@
${project.artifactId}
- JavaAPIforKml,
+ javaapiforkml,
catalog-core-api-impl,
handlebars,
antlr4-runtime,
diff --git a/catalog/spatial/kml/spatial-kml-transformer/pom.xml b/catalog/spatial/kml/spatial-kml-transformer/pom.xml
index 9aa8bf40de5e..6768079768d9 100644
--- a/catalog/spatial/kml/spatial-kml-transformer/pom.xml
+++ b/catalog/spatial/kml/spatial-kml-transformer/pom.xml
@@ -35,7 +35,7 @@
de.micromata.jak
- JavaAPIforKml
+ javaapiforkml
${JavaAPIforKml.version}
@@ -128,7 +128,7 @@
commons-lang3,
antlr4-runtime,
catalog-core-api-impl,
- JavaAPIforKml,
+ javaapiforkml,
catalog-core-actions,
spatial-kml-util
diff --git a/catalog/spatial/kml/spatial-kml-util/pom.xml b/catalog/spatial/kml/spatial-kml-util/pom.xml
index 9ebee63bcff8..a771cc9080bc 100644
--- a/catalog/spatial/kml/spatial-kml-util/pom.xml
+++ b/catalog/spatial/kml/spatial-kml-util/pom.xml
@@ -28,7 +28,7 @@
de.micromata.jak
- JavaAPIforKml
+ javaapiforkml
${JavaAPIforKml.version}
diff --git a/catalog/spatial/wfs/1.1.0/spatial-wfs-v1_1_0-source/src/test/java/org/codice/ddf/spatial/ogc/wfs/v110/catalog/source/WfsFilterDelegateTest.java b/catalog/spatial/wfs/1.1.0/spatial-wfs-v1_1_0-source/src/test/java/org/codice/ddf/spatial/ogc/wfs/v110/catalog/source/WfsFilterDelegateTest.java
index 853a4c2522d3..8f4971a18191 100644
--- a/catalog/spatial/wfs/1.1.0/spatial-wfs-v1_1_0-source/src/test/java/org/codice/ddf/spatial/ogc/wfs/v110/catalog/source/WfsFilterDelegateTest.java
+++ b/catalog/spatial/wfs/1.1.0/spatial-wfs-v1_1_0-source/src/test/java/org/codice/ddf/spatial/ogc/wfs/v110/catalog/source/WfsFilterDelegateTest.java
@@ -38,11 +38,11 @@
import java.io.IOException;
import java.io.StringWriter;
import java.io.Writer;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
+import java.time.LocalDate;
import java.time.OffsetDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.Date;
import java.util.List;
import javax.xml.bind.JAXBContext;
@@ -62,6 +62,7 @@
import net.opengis.gml.v_3_1_1.MultiPolygonType;
import net.opengis.gml.v_3_1_1.PointType;
import net.opengis.gml.v_3_1_1.PolygonType;
+import org.checkerframework.checker.nullness.qual.Nullable;
import org.codice.ddf.spatial.ogc.wfs.catalog.common.FeatureMetacardType;
import org.codice.ddf.spatial.ogc.wfs.catalog.common.WfsConstants;
import org.codice.ddf.spatial.ogc.wfs.catalog.mapper.MetacardMapper;
@@ -70,6 +71,7 @@
import org.custommonkey.xmlunit.XMLUnit;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
+import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.slf4j.Logger;
@@ -78,6 +80,7 @@
@SuppressWarnings("FieldCanBeLocal")
public class WfsFilterDelegateTest {
+ private static final Logger LOGGER = LoggerFactory.getLogger(WfsFilterDelegateTest.class);
private static final JAXBContext JAXB_CONTEXT = initJaxbContext();
@@ -110,11 +113,9 @@ public class WfsFilterDelegateTest {
private static final String NO_OP = "NoOp";
- private final Date date = getDate();
-
- private final Date endDate = getEndDate();
+ private Date date;
- private static final Logger LOGGER = LoggerFactory.getLogger(WfsFilterDelegateTest.class);
+ private Date endDate;
private static final String FILTER_QNAME_LOCAL_PART = "Filter";
@@ -179,7 +180,7 @@ public class WfsFilterDelegateTest {
+ ""
+ "";
- private String propertyIsEqualToXmlDate = getPropertyEqualToXmlDate();
+ private String propertyIsEqualToXmlDate;
private final String propertyNotEqualToXml =
""
@@ -197,7 +198,7 @@ public class WfsFilterDelegateTest {
+ ""
+ "";
- private final String propertyNotEqualToXmlDate = getPropertyNotEqualToXmlDate();
+ private String propertyNotEqualToXmlDate;
private final String propertyNotEqualToXmlBoolean =
""
@@ -233,7 +234,7 @@ public class WfsFilterDelegateTest {
+ ""
+ "";
- private final String propertyGreaterThanXmlDate = getPropertyGreaterThanXmlDate();
+ private String propertyGreaterThanXmlDate;
private final String propertyGreaterThanOrEqualToXmlLiteral =
""
@@ -260,8 +261,7 @@ public class WfsFilterDelegateTest {
+ ""
+ "";
- private final String propertyGreaterThanOrEqualToXmlDate =
- getPropertyGreaterThanOrEqualToXmlDate();
+ private String propertyGreaterThanOrEqualToXmlDate;
private final String propertyLessThanXmlLiteral =
""
@@ -288,7 +288,7 @@ public class WfsFilterDelegateTest {
+ ""
+ "";
- private final String propertyLessThanXmlDate = getPropertyLessThanXmlDate();
+ private String propertyLessThanXmlDate;
private final String propertyLessThanOrEqualToXmlLiteral =
""
@@ -315,7 +315,7 @@ public class WfsFilterDelegateTest {
+ ""
+ "";
- private final String propertyLessThanOrEqualToXmlDate = getPropertyLessThanOrEqualToXmlDate();
+ private String propertyLessThanOrEqualToXmlDate;
private final String propertyIsLikeXmlLiteral =
""
@@ -404,12 +404,26 @@ public class WfsFilterDelegateTest {
+ ""
+ "";
- private final String propertyBetweenXmlDate = getPropertyBetweenXmlDate();
+ private String propertyBetweenXmlDate;
private FeatureMetacardType featureMetacardType = mock(FeatureMetacardType.class);
private MetacardMapper metacardMapper = mock(MetacardMapper.class);
+ @Before
+ public void setup() {
+ // init date
+ date = getDate();
+ endDate = getEndDate();
+ propertyIsEqualToXmlDate = getPropertyEqualToXmlDate();
+ propertyNotEqualToXmlDate = getPropertyNotEqualToXmlDate();
+ propertyGreaterThanXmlDate = getPropertyGreaterThanXmlDate();
+ propertyGreaterThanOrEqualToXmlDate = getPropertyGreaterThanOrEqualToXmlDate();
+ propertyLessThanXmlDate = getPropertyLessThanXmlDate();
+ propertyLessThanOrEqualToXmlDate = getPropertyLessThanOrEqualToXmlDate();
+ propertyBetweenXmlDate = getPropertyBetweenXmlDate();
+ }
+
@Test(expected = IllegalArgumentException.class)
public void testWfsFilterDelegateNullFeatureMetacardType() {
new WfsFilterDelegate(
@@ -661,9 +675,7 @@ public void testPropertyIsNotEqualToStringMatchCase()
@Test
public void testPropertyIsNotEqualToDate() throws JAXBException, SAXException, IOException {
WfsFilterDelegate delegate = createSinglePropertyDelegate();
-
FilterType filter = delegate.propertyIsNotEqualTo(MOCK_PROPERTY, date);
-
assertXMLEqual(propertyNotEqualToXmlDate, marshal(filter));
}
@@ -1580,7 +1592,7 @@ public void testIntersectsMultipleProperties() {
public void testAllGmlPropertiesBlacklisted() {
whenGeom(MOCK_GEOM, MOCK_GEOM2, false, false);
- List supportedGeo = Collections.singletonList(SPATIAL_OPERATORS.INTERSECTS.getValue());
+ List supportedGeo = singletonList(SPATIAL_OPERATORS.INTERSECTS.getValue());
WfsFilterDelegate delegate =
new WfsFilterDelegate(
featureMetacardType,
@@ -2036,32 +2048,38 @@ private static JAXBContext initJaxbContext() {
return jaxbContext;
}
- private Date getDate() {
- String dateString = "Jun 11 2002";
- SimpleDateFormat formatter = new SimpleDateFormat("MMM d yyyy");
- Date date = null;
- try {
- date = formatter.parse(dateString);
- } catch (ParseException e) {
- LOGGER.error(e.getMessage(), e);
- }
- return date;
+ private static Date getEndDate() {
+ final String JUN_11_2002 = "Jun 11 2002";
+
+ return getDate(JUN_11_2002);
}
- private Date getEndDate() {
- String dateString = "Jul 11 2002";
- SimpleDateFormat formatter = new SimpleDateFormat("MMM d yyyy");
+ private static Date getDate() {
+ final String JUN_11_2002 = "Jun 11 2002";
+
+ return getDate(JUN_11_2002);
+ }
+
+ private static @Nullable Date getDate(String dateString) {
+ // Define the formatter for the input pattern
+ DateTimeFormatter formatter =
+ DateTimeFormatter.ofPattern("MMM dd yyyy", java.util.Locale.ENGLISH);
+
Date date = null;
+ // Parse the input date-time with MST, then convert to America/Denver to ensure that
+ // region-specific rules are applied correctly when parsing
+ LocalDate localDate;
try {
- date = formatter.parse(dateString);
- } catch (ParseException e) {
+ localDate = LocalDate.parse(dateString, formatter);
+ date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
+ } catch (Exception e) {
LOGGER.error(e.getMessage(), e);
}
return date;
}
- private DateTime convertDateToIso8601Format(Date inputDate) {
- return new DateTime(inputDate, DateTimeZone.UTC);
+ private String convertDateToIso8601Format(Date inputDate) {
+ return new DateTime(inputDate, DateTimeZone.UTC).toString();
}
private String getPropertyEqualToXmlDate() {
@@ -2212,7 +2230,7 @@ private WfsFilterDelegate setupFilterDelegate(
when(featureMetacardType.getGmlProperties()).thenReturn(gmlProps);
when(featureMetacardType.isQueryable(MOCK_GEOM)).thenReturn(true);
- List supportedGeo = Collections.singletonList(spatialOpType);
+ List supportedGeo = singletonList(spatialOpType);
return new WfsFilterDelegate(
featureMetacardType,
metacardMapper,
diff --git a/catalog/transformer/catalog-transformer-xlsx/pom.xml b/catalog/transformer/catalog-transformer-xlsx/pom.xml
index 6256cc3138d3..24814d34d885 100644
--- a/catalog/transformer/catalog-transformer-xlsx/pom.xml
+++ b/catalog/transformer/catalog-transformer-xlsx/pom.xml
@@ -27,17 +27,17 @@
org.apache.poi
poi
- ${xlsx.transformer.poi.version}
+ ${poi.version}
org.apache.poi
poi-ooxml
- ${xlsx.transformer.poi.version}
+ ${poi.version}
org.apache.poi
poi-ooxml-full
- ${xlsx.transformer.poi.version}
+ ${poi.version}
org.apache.xmlbeans
@@ -47,7 +47,7 @@
org.apache.poi
poi-scratchpad
- ${xlsx.transformer.poi.version}
+ ${poi.version}
ddf.catalog.core
diff --git a/catalog/transformer/catalog-transformer-xml/src/test/java/ddf/catalog/transform/xml/XmlInputTransformerTest.java b/catalog/transformer/catalog-transformer-xml/src/test/java/ddf/catalog/transform/xml/XmlInputTransformerTest.java
index 6c5fbe40eee3..b8a55da5d4e3 100644
--- a/catalog/transformer/catalog-transformer-xml/src/test/java/ddf/catalog/transform/xml/XmlInputTransformerTest.java
+++ b/catalog/transformer/catalog-transformer-xml/src/test/java/ddf/catalog/transform/xml/XmlInputTransformerTest.java
@@ -31,10 +31,14 @@
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
+import java.io.Serializable;
import java.text.ParseException;
-import java.text.SimpleDateFormat;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Base64;
+import java.util.Date;
import java.util.List;
import org.codice.ddf.parser.xml.XmlParser;
import org.junit.Before;
@@ -135,9 +139,18 @@ public void testSimpleMetadata() throws IOException, CatalogTransformerException
metacard.getAttribute(Metacard.METADATA).getValue().toString(),
startsWith(""));
- assertEquals(
- (new SimpleDateFormat("MMM d, yyyy HH:mm:ss.SSS z")).parse("Dec 27, 2012 16:31:01.641 MST"),
- metacard.getAttribute(Metacard.EXPIRATION).getValue());
+ Date actualDate = (Date) metacard.getAttribute(Metacard.EXPIRATION).getValue();
+
+ // Define the formatter for the input pattern
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMM dd, yyyy HH:mm:ss.SSS z");
+
+ // Parse the input date-time with MST, then convert to America/Denver to ensure that
+ // region-specific rules are applied correctly when parsing
+ ZonedDateTime mstDateTime = ZonedDateTime.parse("Dec 27, 2012 16:31:01.641 MST", formatter);
+ ZonedDateTime denverDateTime = mstDateTime.withZoneSameInstant(ZoneId.of("America/Denver"));
+ Date expectedDate = Date.from(denverDateTime.toInstant());
+
+ assertEquals(expectedDate, actualDate);
assertEquals(DESCRIPTION, metacard.getAttribute("description").getValue());
assertEquals(POINT_OF_CONTACT, metacard.getAttribute("point-of-contact").getValue());
@@ -183,9 +196,17 @@ public void testFallbackToBasicMetacardForUnknowMetacardType()
metacard.getAttribute(Metacard.METADATA).getValue().toString(),
startsWith(""));
- assertThat(
- (new SimpleDateFormat("MMM d, yyyy HH:mm:ss.SSS z")).parse("Dec 27, 2012 16:31:01.641 MST"),
- is(metacard.getAttribute(Metacard.EXPIRATION).getValue()));
+ // Define the formatter for the input pattern
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMM dd, yyyy HH:mm:ss.SSS z");
+
+ // Parse the input date-time with MST, then convert to America/Denver to ensure that
+ // region-specific rules are applied correctly when parsing
+ ZonedDateTime mstDateTime = ZonedDateTime.parse("Dec 27, 2012 16:31:01.641 MST", formatter);
+ ZonedDateTime denverDateTime = mstDateTime.withZoneSameInstant(ZoneId.of("America/Denver"));
+ Date expectedDate = Date.from(denverDateTime.toInstant());
+
+ Serializable actualDate = metacard.getAttribute(Metacard.EXPIRATION).getValue();
+ assertEquals(expectedDate, actualDate);
assertEquals(DESCRIPTION, metacard.getAttribute("description").getValue());
assertEquals(POINT_OF_CONTACT, metacard.getAttribute("point-of-contact").getValue());
diff --git a/distribution/ddf-catalog/pom.xml b/distribution/ddf-catalog/pom.xml
index ec4e08c4c145..ec766c321116 100644
--- a/distribution/ddf-catalog/pom.xml
+++ b/distribution/ddf-catalog/pom.xml
@@ -183,7 +183,7 @@
- 384000000
+ 416000000
240000000
${project.build.directory}/${distribution.file.name}.zip
diff --git a/distribution/ddf-catalog/src/main/filtered-resources/component.xml b/distribution/ddf-catalog/src/main/filtered-resources/component.xml
index 94fbcdb0250a..42c30ea4fe2b 100644
--- a/distribution/ddf-catalog/src/main/filtered-resources/component.xml
+++ b/distribution/ddf-catalog/src/main/filtered-resources/component.xml
@@ -19,9 +19,6 @@
./
etc/org.apache.karaf.features.cfg
-
- **/jetty/**/${karaf.jetty.version}/*
- **/jetty/**/${karaf.jetty.version}
diff --git a/distribution/ddf-common/src/main/resources-filtered/etc/org.apache.karaf.features.xml b/distribution/ddf-common/src/main/resources-filtered/etc/org.apache.karaf.features.xml
index c6da6e695180..38e76da76fa9 100644
--- a/distribution/ddf-common/src/main/resources-filtered/etc/org.apache.karaf.features.xml
+++ b/distribution/ddf-common/src/main/resources-filtered/etc/org.apache.karaf.features.xml
@@ -39,77 +39,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/distribution/ddf-common/src/main/resources/common-bin.xml b/distribution/ddf-common/src/main/resources/common-bin.xml
index 043948f08a23..ed46e2d06306 100644
--- a/distribution/ddf-common/src/main/resources/common-bin.xml
+++ b/distribution/ddf-common/src/main/resources/common-bin.xml
@@ -45,9 +45,6 @@
system/**/*kibana*
**/jetty/**/9.4.6.v20170531/*
**/jetty/**/8.1.14.v20131031/*
-
- **/jetty/**/${karaf.jetty.version}/*
- **/jetty/**/${karaf.jetty.version}
**/pax/web/**/7.0.0/*
+
+ 0
+ 1
+
+
+
start-solr
pre-integration-test
@@ -212,8 +234,11 @@
-p
${solr.port}
- true
- true
+
+
+ 0
+ 1
+
diff --git a/distribution/test/itests/test-itests-ddf/pom.xml b/distribution/test/itests/test-itests-ddf/pom.xml
index 652a7008df3b..3a1e93c9a318 100644
--- a/distribution/test/itests/test-itests-ddf/pom.xml
+++ b/distribution/test/itests/test-itests-ddf/pom.xml
@@ -280,13 +280,6 @@
${pax.exam.version}
xml
-
-
-
- ddf.test.itests
- test-itests-ddf-core
- ${project.version}
-
@@ -389,6 +382,26 @@
false
+
+ stop-stale-solr
+ pre-integration-test
+
+ exec
+
+
+ ${solr.script.dir}${solr.script.file}
+
+ stop
+ -p
+ ${solr.port}
+
+
+
+ 0
+ 1
+
+
+
start-solr
pre-integration-test
@@ -425,8 +438,11 @@
-p
${solr.port}
- true
- true
+
+
+ 0
+ 1
+
diff --git a/distribution/test/itests/test-itests-ddf/src/test/java/ddf/test/itests/catalog/TestSpatial.java b/distribution/test/itests/test-itests-ddf/src/test/java/ddf/test/itests/catalog/TestSpatial.java
index 6df9558ed0be..11b667f92920 100644
--- a/distribution/test/itests/test-itests-ddf/src/test/java/ddf/test/itests/catalog/TestSpatial.java
+++ b/distribution/test/itests/test-itests-ddf/src/test/java/ddf/test/itests/catalog/TestSpatial.java
@@ -24,6 +24,7 @@
import static org.codice.ddf.itests.common.catalog.CatalogTestCommons.ingest;
import static org.codice.ddf.itests.common.catalog.CatalogTestCommons.ingestCswRecord;
import static org.codice.ddf.itests.common.catalog.CatalogTestCommons.ingestGeoJson;
+import static org.hamcrest.CoreMatchers.anyOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
@@ -676,7 +677,8 @@ public void testWfs11Boolean() {
/**
* A downstream project encountered a situation where a WFS server would return an exception
* report for the hit count, but still return valid results. The SourceResponse contract allows
- * the hit count to be -1 if it is unknown. {@link #setupWfs11QueryHitsExceptionHitCount} {@link
+ * the hit count to be -1 if it is unknown, but newer implementations may infer the count from the
+ * returned results. {@link #setupWfs11QueryHitsExceptionHitCount} {@link
* #setupWfs11QueryHitsExceptionResults}
*/
@Test
@@ -720,7 +722,12 @@ public void testWfsHitsException() {
+ " \n"
+ "\n");
- assertThat(response, containsString("numberOfRecordsMatched=\"-1\""));
+ assertThat(
+ response,
+ anyOf(
+ containsString("numberOfRecordsMatched=\"-1\""),
+ containsString("numberOfRecordsMatched=\"1\"")));
+
assertThat(response, containsString("numberOfRecordsReturned=\"1\""));
}
diff --git a/distribution/test/itests/test-itests-ddf/src/test/java/ddf/test/itests/platform/TestOidc.java b/distribution/test/itests/test-itests-ddf/src/test/java/ddf/test/itests/platform/TestOidc.java
index 83c78f3a88db..3660825e2106 100644
--- a/distribution/test/itests/test-itests-ddf/src/test/java/ddf/test/itests/platform/TestOidc.java
+++ b/distribution/test/itests/test-itests-ddf/src/test/java/ddf/test/itests/platform/TestOidc.java
@@ -45,7 +45,6 @@
import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTCreator;
import com.auth0.jwt.algorithms.Algorithm;
-import com.auth0.jwt.impl.PublicClaims;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.gson.Gson;
@@ -54,6 +53,7 @@
import com.nimbusds.jose.jwk.KeyUse;
import com.nimbusds.jose.jwk.RSAKey;
import com.nimbusds.jose.util.Base64URL;
+import com.nimbusds.jwt.JWTClaimNames;
import com.xebialabs.restito.semantics.Call;
import com.xebialabs.restito.server.StubServer;
import io.restassured.response.Response;
@@ -1108,7 +1108,7 @@ private JWTCreator.Builder getBaseIdTokenBuilder() {
.withIssuer(URL_START.toString() + "/auth/realms/master")
.withAudience(DDF_CLIENT_ID)
.withSubject(SUBJECT)
- .withClaim(PublicClaims.TYPE, "ID")
+ .withClaim("typ", "ID")
.withClaim(AUTH_TIME, new Date())
.withArrayClaim(ROLES, roles)
.withClaim(EMAIL_VERIFIED, false)
@@ -1130,7 +1130,7 @@ private String createUserInfoJson(boolean valid, boolean signed) {
ImmutableMap.of(
ROLES,
roles,
- PublicClaims.SUBJECT,
+ JWTClaimNames.SUBJECT,
SUBJECT,
EMAIL_VERIFIED,
false,
@@ -1143,7 +1143,7 @@ private String createUserInfoJson(boolean valid, boolean signed) {
JWTCreator.Builder builder =
JWT.create()
.withArrayClaim(ROLES, roles)
- .withClaim(PublicClaims.SUBJECT, SUBJECT)
+ .withClaim(JWTClaimNames.SUBJECT, SUBJECT)
.withClaim(EMAIL_VERIFIED, false)
.withClaim(PREFERRED_USERNAME, ADMIN);
diff --git a/features/utilities/src/main/feature/feature.xml b/features/utilities/src/main/feature/feature.xml
index c9476917b61e..be077a2a3079 100644
--- a/features/utilities/src/main/feature/feature.xml
+++ b/features/utilities/src/main/feature/feature.xml
@@ -203,7 +203,7 @@
mvn:com.fasterxml.jackson.core/jackson-core/${jackson.version}
- mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson.version}
+ mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson.annotations.version}
mvn:com.fasterxml.jackson.core/jackson-databind/${jackson.version}
mvn:com.fasterxml.jackson.datatype/jackson-datatype-jsr310/${jackson.version}
@@ -213,7 +213,6 @@
tika
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/1.2_5
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.saxon/9.9.1-6_1
- mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlbeans/${xmlbeans.version}_1
mvn:commons-io/commons-io/${commons-io.version}
mvn:org.apache.commons/commons-math3/${commons-math3.version}
mvn:org.apache.commons/commons-compress/${commons-compress.version}
@@ -221,6 +220,7 @@
wrap:mvn:xml-apis/xml-apis-ext/1.3.04
mvn:org.apache.santuario/xmlsec/${xmlsec.version}
wrap:mvn:org.apache.xmlgraphics/xmlgraphics-commons/2.7
+ wrap:mvn:org.apache.xmlbeans/xmlbeans/${xmlbeans.version}
mvn:org.apache.pdfbox/pdfbox/${pdfbox.version}
mvn:org.apache.pdfbox/fontbox/${pdfbox.version}
mvn:org.apache.pdfbox/pdfbox-io/${pdfbox.version}
@@ -228,6 +228,7 @@
wrap:mvn:de.rototor.pdfbox/graphics2d/0.38
wrap:mvn:org.apache.poi/poi/${poi.version}
wrap:mvn:org.apache.poi/poi-ooxml/${poi.version}
+ wrap:mvn:org.apache.poi/poi-ooxml-full/${poi.version}
wrap:mvn:org.apache.poi/poi-scratchpad/${poi.version}
diff --git a/libs/test-common/src/main/java/org/codice/ddf/test/common/configurators/KarafOptions.java b/libs/test-common/src/main/java/org/codice/ddf/test/common/configurators/KarafOptions.java
index 4497fa6ae6fd..5e4d22bbc5e9 100644
--- a/libs/test-common/src/main/java/org/codice/ddf/test/common/configurators/KarafOptions.java
+++ b/libs/test-common/src/main/java/org/codice/ddf/test/common/configurators/KarafOptions.java
@@ -133,7 +133,8 @@ private Option getMavenRepositoryOptions() {
+ "http://svn.apache.org/repos/asf/servicemix/m2-repo@id=servicemix,"
+ "http://repository.springsource.com/maven/bundles/release@id=springsource,"
+ "http://repository.springsource.com/maven/bundles/external@id=springsourceext,"
- + "http://oss.sonatype.org/content/repositories/releases/@id=sonatype"),
+ + "http://oss.sonatype.org/content/repositories/releases/@id=sonatype,"
+ + "https://repo.osgeo.org/repository/release/@id=osgeo"),
when(System.getProperty("maven.repo.local") != null)
.useOptions(
editConfigurationFilePut(
diff --git a/libs/test-common/src/main/java/org/codice/ddf/test/common/options/PortOptions.java b/libs/test-common/src/main/java/org/codice/ddf/test/common/options/PortOptions.java
index 92d6d7be6091..62dce1cadf59 100644
--- a/libs/test-common/src/main/java/org/codice/ddf/test/common/options/PortOptions.java
+++ b/libs/test-common/src/main/java/org/codice/ddf/test/common/options/PortOptions.java
@@ -86,7 +86,7 @@ public static Option sshPort() {
}
public static Option solrPort() {
- String port = getPortFinder().getPortAsString(SSH_PORT_KEY);
+ String port = getPortFinder().getPortAsString(SOLR_PORT_KEY);
recordConfiguration(SOLR_PORT_KEY, port);
return editConfigurationFilePut(SYSTEM_PROPERTIES_FILE_PATH, "solr.http.port", port);
}
diff --git a/platform/admin/modules/admin-modules-docs/pom.xml b/platform/admin/modules/admin-modules-docs/pom.xml
index 160ea3776fe8..30045281df87 100644
--- a/platform/admin/modules/admin-modules-docs/pom.xml
+++ b/platform/admin/modules/admin-modules-docs/pom.xml
@@ -55,6 +55,12 @@
org.ops4j.pax.web
pax-web-api
${pax.web.version}
+
+
+ commons-io
+ commons-io
+
+
org.ops4j.pax.web
diff --git a/platform/landing-page/pom.xml b/platform/landing-page/pom.xml
index 5d7125db1f4b..5299df03cc9f 100644
--- a/platform/landing-page/pom.xml
+++ b/platform/landing-page/pom.xml
@@ -93,6 +93,17 @@
org.osgi
osgi.core
+
+ org.ops4j.pax.web
+ pax-web-spi
+ ${pax.web.version}
+
+
+ commons-io
+ commons-io
+
+
+
diff --git a/platform/persistence/platform-persistence-commands/src/main/java/org/codice/ddf/persistence/commands/StoreImportCommand.java b/platform/persistence/platform-persistence-commands/src/main/java/org/codice/ddf/persistence/commands/StoreImportCommand.java
index b10ed64203ed..caac84aa622d 100644
--- a/platform/persistence/platform-persistence-commands/src/main/java/org/codice/ddf/persistence/commands/StoreImportCommand.java
+++ b/platform/persistence/platform-persistence-commands/src/main/java/org/codice/ddf/persistence/commands/StoreImportCommand.java
@@ -117,7 +117,7 @@ private Map processFile(File file) {
} catch (FileNotFoundException e) {
console.println("File not found for import " + file.getName() + "\n");
return null;
- } catch (JsonSyntaxException | JsonIOException e) {
+ } catch (ClassCastException | JsonSyntaxException | JsonIOException e) {
console.println("Unable to parse json file. Skipping " + file.getName());
return null;
} catch (IOException e) {
diff --git a/platform/platform-paxweb-jettyconfig/pom.xml b/platform/platform-paxweb-jettyconfig/pom.xml
index be5a01e9f88b..035c530b3126 100644
--- a/platform/platform-paxweb-jettyconfig/pom.xml
+++ b/platform/platform-paxweb-jettyconfig/pom.xml
@@ -78,6 +78,12 @@
org.ops4j.pax.web
pax-web-api
+
+
+ commons-io
+ commons-io
+
+
org.eclipse.jetty
diff --git a/platform/platform-scheduler/pom.xml b/platform/platform-scheduler/pom.xml
index 01c9e815dc11..3d5e5d195a3a 100644
--- a/platform/platform-scheduler/pom.xml
+++ b/platform/platform-scheduler/pom.xml
@@ -34,6 +34,12 @@
org.quartz-scheduler
quartz
${quartz.version}
+
+
+ com.mchange
+ c3p0
+
+
ddf.security.core
@@ -157,6 +163,7 @@
com.typesafe.config;resolution:=optional,
org.apache.logging.log4j.core;resolution:=optional,
org.apache.logging.log4j.core.config;resolution:=optional,
+ org.apache.logging.log4j.core.appender;resolution:=optional,
*
diff --git a/platform/security/filter/security-filter-web-sso/pom.xml b/platform/security/filter/security-filter-web-sso/pom.xml
index 62bff676da6d..6c7a40229f8d 100644
--- a/platform/security/filter/security-filter-web-sso/pom.xml
+++ b/platform/security/filter/security-filter-web-sso/pom.xml
@@ -63,6 +63,12 @@
org.ops4j.pax.web
pax-web-api
+
+
+ commons-io
+ commons-io
+
+
org.ops4j.pax.web
diff --git a/platform/security/handler/security-handler-oidc/src/main/java/org/codice/ddf/security/handler/oidc/OidcHandlerConfigurationImpl.java b/platform/security/handler/security-handler-oidc/src/main/java/org/codice/ddf/security/handler/oidc/OidcHandlerConfigurationImpl.java
index 9a6ffe51c3eb..ca827d6f12b9 100644
--- a/platform/security/handler/security-handler-oidc/src/main/java/org/codice/ddf/security/handler/oidc/OidcHandlerConfigurationImpl.java
+++ b/platform/security/handler/security-handler-oidc/src/main/java/org/codice/ddf/security/handler/oidc/OidcHandlerConfigurationImpl.java
@@ -121,6 +121,7 @@ public void setProperties(Map properties) {
oidcConfiguration.setConnectTimeout(connectTimeout);
oidcConfiguration.setReadTimeout(readTimeout);
oidcConfiguration.setClientAuthenticationMethodAsString(clientAuthMethod);
+ oidcConfiguration.setCallUserInfoEndpoint(true);
try {
testConnection();
diff --git a/platform/security/realm/security-realm-oidc/src/test/java/org/codice/ddf/security/oidc/realm/OidcRealmTest.java b/platform/security/realm/security-realm-oidc/src/test/java/org/codice/ddf/security/oidc/realm/OidcRealmTest.java
index 15c7219d6c54..8d1f4e02899e 100644
--- a/platform/security/realm/security-realm-oidc/src/test/java/org/codice/ddf/security/oidc/realm/OidcRealmTest.java
+++ b/platform/security/realm/security-realm-oidc/src/test/java/org/codice/ddf/security/oidc/realm/OidcRealmTest.java
@@ -30,7 +30,6 @@
import com.auth0.jwt.JWTCreator;
import com.auth0.jwt.algorithms.Algorithm;
-import com.auth0.jwt.impl.PublicClaims;
import com.google.common.collect.ImmutableList;
import com.nimbusds.jose.JWSAlgorithm;
import com.nimbusds.jose.jwk.JWK;
@@ -136,6 +135,7 @@ public void setup() throws Exception {
when(configuration.getResponseType()).thenReturn("code");
when(configuration.findResourceRetriever()).thenReturn(resourceRetriever);
when(configuration.getOpMetadataResolver()).thenReturn(metadataResolver);
+ when(configuration.isCallUserInfoEndpoint()).thenReturn(true);
OidcHandlerConfiguration handlerConfiguration = mock(OidcHandlerConfiguration.class);
when(handlerConfiguration.getOidcConfiguration()).thenReturn(configuration);
@@ -231,7 +231,7 @@ private JWTCreator.Builder getIdTokenBuilder() {
.withIssuer("http://localhost:8080/auth/realms/master")
.withAudience("ddf-client")
.withSubject("subject")
- .withClaim(PublicClaims.TYPE, "ID")
+ .withClaim("typ", "ID")
.withClaim(AUTH_TIME, new Date())
.withArrayClaim("roles", roles)
.withClaim(EMAIL_VERIFIED, false)
@@ -289,7 +289,7 @@ private JWT getIncompleteJwt() throws ParseException {
.withIssuer("http://localhost:8080/auth/realms/master")
.withAudience("ddf-client")
.withSubject("subject")
- .withClaim(PublicClaims.TYPE, "ID")
+ .withClaim("typ", "ID")
.withClaim(AUTH_TIME, new Date())
.withClaim("nonce", "myNonce")
.withArrayClaim("roles", roles)
diff --git a/platform/security/security-oidc-bundle/pom.xml b/platform/security/security-oidc-bundle/pom.xml
index 2d0dc3b7574c..94f22d82035f 100644
--- a/platform/security/security-oidc-bundle/pom.xml
+++ b/platform/security/security-oidc-bundle/pom.xml
@@ -110,7 +110,7 @@
- 3.6_MB
+ 3.7_MB
diff --git a/platform/security/security-oidc-bundle/src/main/java/org/codice/ddf/security/oidc/validator/OidcTokenValidator.java b/platform/security/security-oidc-bundle/src/main/java/org/codice/ddf/security/oidc/validator/OidcTokenValidator.java
index 63d935c7ddeb..1841e8f62367 100644
--- a/platform/security/security-oidc-bundle/src/main/java/org/codice/ddf/security/oidc/validator/OidcTokenValidator.java
+++ b/platform/security/security-oidc-bundle/src/main/java/org/codice/ddf/security/oidc/validator/OidcTokenValidator.java
@@ -103,7 +103,7 @@ public static IDTokenClaimsSet validateIdTokens(
OIDCProviderMetadata providerMetadata = configuration.getOpMetadataResolver().load();
TokenValidator tokenValidator = new TokenValidator(configuration, providerMetadata);
- return tokenValidator.validate(idToken, nonce);
+ return tokenValidator.validateIdToken(idToken, nonce);
} catch (Exception e) {
LOGGER.error(ID_VALIDATION_ERR_MSG, e);
throw new OidcValidationException(ID_VALIDATION_ERR_MSG, e);
diff --git a/platform/security/security-oidc-bundle/src/test/java/org/codice/ddf/security/oidc/validator/OidcTokenValidatorTest.java b/platform/security/security-oidc-bundle/src/test/java/org/codice/ddf/security/oidc/validator/OidcTokenValidatorTest.java
index ace8238f2aac..c1036d8a1fb9 100644
--- a/platform/security/security-oidc-bundle/src/test/java/org/codice/ddf/security/oidc/validator/OidcTokenValidatorTest.java
+++ b/platform/security/security-oidc-bundle/src/test/java/org/codice/ddf/security/oidc/validator/OidcTokenValidatorTest.java
@@ -25,7 +25,6 @@
import com.auth0.jwt.JWTCreator;
import com.auth0.jwt.algorithms.Algorithm;
-import com.auth0.jwt.impl.PublicClaims;
import com.google.common.collect.ImmutableList;
import com.nimbusds.jose.JWSAlgorithm;
import com.nimbusds.jose.jwk.JWK;
@@ -174,7 +173,7 @@ public void testValidateIdTokensUnsignedJwt() throws Exception {
.issuer("http://localhost:8080/auth/realms/master")
.audience("ddf-client")
.subject("subject")
- .claim(PublicClaims.TYPE, "ID")
+ .claim("typ", "ID")
.claim(AUTH_TIME, new Date())
.claim("roles", roles)
.claim(EMAIL_VERIFIED, false)
@@ -287,7 +286,7 @@ private JWTCreator.Builder getIdTokenBuilder() {
.withIssuer("http://localhost:8080/auth/realms/master")
.withAudience("ddf-client")
.withSubject("subject")
- .withClaim(PublicClaims.TYPE, "ID")
+ .withClaim("typ", "ID")
.withClaim(AUTH_TIME, new Date())
.withArrayClaim("roles", roles)
.withClaim(EMAIL_VERIFIED, false)
diff --git a/platform/security/servlet/security-servlet-logout-endpoint/pom.xml b/platform/security/servlet/security-servlet-logout-endpoint/pom.xml
index e7760396d063..59b0030e1c6f 100644
--- a/platform/security/servlet/security-servlet-logout-endpoint/pom.xml
+++ b/platform/security/servlet/security-servlet-logout-endpoint/pom.xml
@@ -51,6 +51,12 @@
org.ops4j.pax.web
pax-web-api
${pax.web.version}
+
+
+ commons-io
+ commons-io
+
+
org.ops4j.pax.web
diff --git a/platform/security/servlet/security-servlet-logout/pom.xml b/platform/security/servlet/security-servlet-logout/pom.xml
index 579e06d07fdd..b3b160451fa8 100644
--- a/platform/security/servlet/security-servlet-logout/pom.xml
+++ b/platform/security/servlet/security-servlet-logout/pom.xml
@@ -105,6 +105,12 @@
org.ops4j.pax.web
pax-web-api
${pax.web.version}
+
+
+ commons-io
+ commons-io
+
+
org.ops4j.pax.web
diff --git a/pom.xml b/pom.xml
index 580c13875fc2..2107eacc0541 100644
--- a/pom.xml
+++ b/pom.xml
@@ -123,15 +123,15 @@
2.3-groovy-4.0
3.6.28
4.14.0
- 2.3.0
- 2.6.17
- 8.0.33
+ 2.3.2
+ 2.7.0
+ 8.0.34
1.1.2
5.5.0
4.0.23
1.4
2.8.2
- 3.8.1
+ 4.5.1
4.0.1
6.4.1
@@ -151,10 +151,10 @@
1.1.3
4.3
1.13.0
- 9.8
+ 9.9
3.1.6
- 1.81
- 0.9.5.5
+ 1.83
+ 0.12.0
0.8.1
${cal10n.version}_1
3.22.4
@@ -166,23 +166,23 @@
3.2.2
4.1
1.10
- 2.8.0
+ 2.10.1
1.4
1.8.1
1.3
- 2.20.0
+ 2.21.0
2.6
- 3.18.0
+ 3.20.0
1.3.5
3.6.1
3.5
1.6
- 1.13.0
+ 1.15.0
1.6
4.7.0
- 0.2.3
- 1.5.2
- 3.6.7
+ 0.2.4
+ 1.6.1
+ 3.6.10
2.9.0
4.1.25
3.17.200
@@ -195,7 +195,7 @@
org.apache.geronimo.specs
1.22.0
1.1.0
- 2.11.0
+ 2.13.2
33.4.0-jre
1.11
4.5.13
@@ -203,7 +203,8 @@
${httpclient.version}
1.4.0
2.2.1_CODICE_1
- 2.18.4
+ 2.21
+ 2.21.1
2.3.2
1.2.2
1.6.7
@@ -213,7 +214,7 @@
1.1.1
1.1.1_1
1
- 3.1.0
+ 4.0.1
6.1.0
2.1.6
3.0.0
@@ -225,8 +226,6 @@
1.1_4
2.0.6.1_1
9.4.58.v20250814
-
- 9.4.57.v20241219
3.6.13.Final
1.7
3.2.4
@@ -242,7 +241,7 @@
1.17.1
2.6.1
1.3.3
- 4.4.8
+ 4.4.10
2.4.2
1.2.0
1.2.0
@@ -262,9 +261,9 @@
1.3.3
3.4.6
3.4.5_2
- 11.24
+ 11.33
2.3
- 10.3
+ 10.8
1.7
33.1
2.7.2
@@ -279,17 +278,16 @@
1.1.0
1.1.0_5
1.0.13
- 6.1.2
+ 6.3.3
3.0.5
5.4.1
- 5.2.2
- 4.28.2
- 2.3.2
+ 5.3.0
+ 4.33.0
+ 2.5.2
0.1.10
5.7
5.3.5
9.6.0-4
- ${poi.version}_1
${jaxb.version}_3
1.4.0
2.9.0
@@ -302,7 +300,7 @@
4.4.16
4.5.14
10.0.26
- 3.8.4
+ 3.8.6
0.8
3.1.0
2.1.1
@@ -312,7 +310,7 @@
6.1.21_1
1.2.1
3.2.2
- 0.4
+ 0.5
1.1.0.Final
6.5.1
4.2.1
@@ -323,7 +321,6 @@
2.12.2
2.12.2_1
1.4.01
- 5.0.3
2.3.1
1.1.4c_6
1.4.20_1
@@ -341,7 +338,7 @@
${jacoco.argline}
0.45.1
- 1.16.0
+ 1.20.0
20240303
@@ -945,7 +942,7 @@
org.codehaus.mojo
exec-maven-plugin
- 3.5.1
+ 3.6.3
org.codehaus.mojo