From 78dfb32d6fd39d3c76e08f083b0f0298399f74ee Mon Sep 17 00:00:00 2001 From: jgomer2001 Date: Fri, 9 Feb 2024 14:55:04 -0500 Subject: [PATCH] chore: update wrt 4.5.2 and 4.5.3 changes Signed-off-by: jgomer2001 --- scim-client-jakarta/pom.xml | 2 +- .../client/singleresource/FullUserTest.java | 4 ++-- scim-client/src/test/resources/testng.xml | 2 +- .../scim2/extensions/ExtensionField.java | 12 ++++++++++-- .../service/scim2/ExtensionService.java | 19 +++---------------- .../service/scim2/Scim2UserService.java | 2 +- .../src/main/resources/gluu-scim-openapi.yaml | 2 +- .../src/main/resources/gluu-scim-swagger.yaml | 2 +- 8 files changed, 20 insertions(+), 25 deletions(-) diff --git a/scim-client-jakarta/pom.xml b/scim-client-jakarta/pom.xml index b6d62bc..16925e2 100644 --- a/scim-client-jakarta/pom.xml +++ b/scim-client-jakarta/pom.xml @@ -13,7 +13,7 @@ org.gluu scim - 4.5.3-SNAPSHOT + 4.5.4-SNAPSHOT diff --git a/scim-client-jakarta/src/test/java/gluu/scim2/client/singleresource/FullUserTest.java b/scim-client-jakarta/src/test/java/gluu/scim2/client/singleresource/FullUserTest.java index 17bb636..d358e58 100644 --- a/scim-client-jakarta/src/test/java/gluu/scim2/client/singleresource/FullUserTest.java +++ b/scim-client-jakarta/src/test/java/gluu/scim2/client/singleresource/FullUserTest.java @@ -10,10 +10,10 @@ import org.testng.annotations.Parameters; import org.testng.annotations.Test; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.core.Response; import java.util.*; -import static javax.ws.rs.core.Response.Status.*; +import static jakarta.ws.rs.core.Response.Status.*; import static org.testng.Assert.*; diff --git a/scim-client/src/test/resources/testng.xml b/scim-client/src/test/resources/testng.xml index 19c49e4..445ab1b 100644 --- a/scim-client/src/test/resources/testng.xml +++ b/scim-client/src/test/resources/testng.xml @@ -82,7 +82,7 @@ - + diff --git a/scim-model/src/main/java/org/gluu/oxtrust/model/scim2/extensions/ExtensionField.java b/scim-model/src/main/java/org/gluu/oxtrust/model/scim2/extensions/ExtensionField.java index 18d7961..1a0896f 100644 --- a/scim-model/src/main/java/org/gluu/oxtrust/model/scim2/extensions/ExtensionField.java +++ b/scim-model/src/main/java/org/gluu/oxtrust/model/scim2/extensions/ExtensionField.java @@ -10,6 +10,7 @@ import org.gluu.oxtrust.model.scim2.util.DateUtil; import java.util.regex.Pattern; +import java.time.format.DateTimeFormatter; /** * Represents the metadata of an attribute that belongs to a SCIM resource extension. @@ -99,8 +100,15 @@ public static Object valueFromString(ExtensionField field, String val){ value = val; break; case DATE: - //Dates are stored and read as strings indeed (no handling of Date or DateTime objects) value=DateUtil.generalizedToISOStringDate(val); + if (value == null) { + try { + DateTimeFormatter.ISO_DATE_TIME.parse(val); + value = val; + } catch (Exception e) { + //Let value be null + } + } break; case NUMERIC: try{ @@ -213,4 +221,4 @@ public void setDescription(String description) { this.description = description; } -} \ No newline at end of file +} diff --git a/scim-rest/src/main/java/org/gluu/oxtrust/service/scim2/ExtensionService.java b/scim-rest/src/main/java/org/gluu/oxtrust/service/scim2/ExtensionService.java index 9330556..96ec70d 100644 --- a/scim-rest/src/main/java/org/gluu/oxtrust/service/scim2/ExtensionService.java +++ b/scim-rest/src/main/java/org/gluu/oxtrust/service/scim2/ExtensionService.java @@ -4,7 +4,6 @@ import static org.gluu.oxtrust.model.scim2.Constants.USER_EXT_SCHEMA_ID; import static org.gluu.oxtrust.model.scim2.Constants.USER_EXT_SCHEMA_NAME; -import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -137,7 +136,6 @@ public List getAttributeValues(ExtensionField field, Collection valuesHo * asociated to the field: for STRING the value is left as is; for DATE the * value is converted to a String following the ISO date format; for NUMERIC an * Integer/Double is created from the value supplied. - * @param ldapBackend Whether the underlying database is an ldap directory * @param field * An ExtensionField * @param strValues @@ -145,26 +143,15 @@ public List getAttributeValues(ExtensionField field, Collection valuesHo * passed. These values are coming from LDAP * @return List of opaque values */ - public List convertValues(ExtensionField field, String strValues[], boolean ldapBackend) { + public List convertValues(ExtensionField field, String[] strValues) { List values = new ArrayList<>(); for (String val : strValues) { // In practice, there should not be nulls in strValues if (val != null) { - Object value; - - //See org.gluu.oxtrust.model.scim2.util.DateUtil.gluuCouchbaseISODate() - if (!ldapBackend && field.getType().equals(AttributeDataType.DATE)) { - try { - DateTimeFormatter.ISO_DATE_TIME.parse(val); - value = val; - } catch (Exception e) { - value = null; - } - } else { - value = ExtensionField.valueFromString(field, val); - } + Object value = ExtensionField.valueFromString(field, val); + // won't happen either (value being null) because calls to this method occurs // after lots of validations have taken place if (value != null) { diff --git a/scim-rest/src/main/java/org/gluu/oxtrust/service/scim2/Scim2UserService.java b/scim-rest/src/main/java/org/gluu/oxtrust/service/scim2/Scim2UserService.java index 6db04b2..c3e3888 100644 --- a/scim-rest/src/main/java/org/gluu/oxtrust/service/scim2/Scim2UserService.java +++ b/scim-rest/src/main/java/org/gluu/oxtrust/service/scim2/Scim2UserService.java @@ -411,7 +411,7 @@ private void transferExtendedAttributesToResource(ScimCustomPerson person, BaseS log.debug("transferExtendedAttributesToResource. Copying to resource the value(s) for attribute '{}'", attr); ExtensionField field = fields.get(attr); - List convertedValues = extService.convertValues(field, values, ldapBackend); + List convertedValues = extService.convertValues(field, values); if (convertedValues.size() > 0) { map.put(attr, field.isMultiValued() ? convertedValues : convertedValues.get(0)); diff --git a/scim-server/src/main/resources/gluu-scim-openapi.yaml b/scim-server/src/main/resources/gluu-scim-openapi.yaml index 8b8c98a..a663d75 100644 --- a/scim-server/src/main/resources/gluu-scim-openapi.yaml +++ b/scim-server/src/main/resources/gluu-scim-openapi.yaml @@ -7,7 +7,7 @@ info: license: name: Apache 2 url: https://github.com/GluuFederation/scim/blob/master/LICENSE - version: 4.5.0 + version: 4.5.4 servers: - url: https://your.gluu.server.com/identity/restv1/scim/v2 tags: diff --git a/scim-server/src/main/resources/gluu-scim-swagger.yaml b/scim-server/src/main/resources/gluu-scim-swagger.yaml index d78e49e..eb858f9 100644 --- a/scim-server/src/main/resources/gluu-scim-swagger.yaml +++ b/scim-server/src/main/resources/gluu-scim-swagger.yaml @@ -7,7 +7,7 @@ swagger: '2.0' info: - version: "4.5.0" + version: "4.5.4" title: SCIM API description: | Gluu SCIM 2.0 server API. Developers can think of SCIM as a REST API with endpoints exposing CRUD functionality