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