Merge pull request #117 from apache/filter-builder-methods
Adds FilterBuilder connivance methods
diff --git a/lombok.config b/lombok.config
index 8571a69..7e0eb60 100644
--- a/lombok.config
+++ b/lombok.config
@@ -1 +1,2 @@
lombok.accessors.chain=true
+lombok.addLombokGeneratedAnnotation = true
diff --git a/scim-server/pom.xml b/scim-server/pom.xml
index fa99682..8dbd477 100644
--- a/scim-server/pom.xml
+++ b/scim-server/pom.xml
@@ -50,6 +50,10 @@
<artifactId>scim-spec-protocol</artifactId>
</dependency>
<dependency>
+ <groupId>com.fasterxml.jackson.jakarta.rs</groupId>
+ <artifactId>jackson-jakarta-rs-json-provider</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
diff --git a/scim-server/src/main/java/org/apache/directory/scim/server/provider/Provider.java b/scim-server/src/main/java/org/apache/directory/scim/server/provider/Provider.java
index ec4d50a..a6ab223 100644
--- a/scim-server/src/main/java/org/apache/directory/scim/server/provider/Provider.java
+++ b/scim-server/src/main/java/org/apache/directory/scim/server/provider/Provider.java
@@ -69,7 +69,7 @@
* Allows the SCIM server's REST implementation to update and existing
* resource via a PUT to a valid end-point.
*
- * @param resource The ScimResource to update and persist.
+ * @param updateRequest The ScimResource to update and persist.
* @return The newly updated ScimResource.
* @throws UnableToUpdateResourceException When the ScimResource cannot be
* updated.
diff --git a/scim-server/src/main/java/org/apache/directory/scim/server/rest/ScimJacksonXmlBindJsonProvider.java b/scim-server/src/main/java/org/apache/directory/scim/server/rest/ScimJacksonXmlBindJsonProvider.java
index 6844070..5cc844c 100644
--- a/scim-server/src/main/java/org/apache/directory/scim/server/rest/ScimJacksonXmlBindJsonProvider.java
+++ b/scim-server/src/main/java/org/apache/directory/scim/server/rest/ScimJacksonXmlBindJsonProvider.java
@@ -19,8 +19,8 @@
package org.apache.directory.scim.server.rest;
-import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.jakarta.rs.json.JacksonXmlBindJsonProvider;
+import org.apache.directory.scim.spec.json.ObjectMapperFactory;
import org.apache.directory.scim.spec.protocol.Constants;
import jakarta.inject.Inject;
@@ -37,7 +37,7 @@
public class ScimJacksonXmlBindJsonProvider extends JacksonXmlBindJsonProvider {
@Inject
- public ScimJacksonXmlBindJsonProvider(ObjectMapper objectMapper) {
- super(objectMapper, DEFAULT_ANNOTATIONS);
+ public ScimJacksonXmlBindJsonProvider() {
+ super(ObjectMapperFactory.getObjectMapper(), DEFAULT_ANNOTATIONS);
}
}
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/filter/CompareOperator.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/filter/CompareOperator.java
index 59150c6..47cccea 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/filter/CompareOperator.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/filter/CompareOperator.java
@@ -21,14 +21,14 @@
public enum CompareOperator {
- EQ,
- NE,
- CO,
- SW,
- EW,
- GT,
- GE,
- LT,
- LE;
-
+ EQ, // equal
+ NE, // not equal
+ CO, // contains
+ SW, // starts with
+ EW, // ends with
+ PR, // present (has value)
+ GT, // greater than
+ GE, // greater than or equal
+ LT, // greater than
+ LE; // greater than or equal
}
diff --git a/scim-spec/scim-spec-schema/pom.xml b/scim-spec/scim-spec-schema/pom.xml
index a87cb2c..2b5c799 100644
--- a/scim-spec/scim-spec-schema/pom.xml
+++ b/scim-spec/scim-spec-schema/pom.xml
@@ -32,10 +32,6 @@
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
</dependency>
- <dependency>
- <groupId>jakarta.ws.rs</groupId>
- <artifactId>jakarta.ws.rs-api</artifactId>
- </dependency>
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
@@ -52,10 +48,6 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>com.fasterxml.jackson.jakarta.rs</groupId>
- <artifactId>jackson-jakarta-rs-json-provider</artifactId>
- </dependency>
- <dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<scope>test</scope>
@@ -74,6 +66,14 @@
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.module</groupId>
+ <artifactId>jackson-module-jakarta-xmlbind-annotations</artifactId>
+ </dependency>
<dependency>
<!-- TODO Remove this dependency -->
<groupId>com.fasterxml.jackson.core</groupId>
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ServiceProviderConfiguration.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ServiceProviderConfiguration.java
index e73307b..e9fc7eb 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ServiceProviderConfiguration.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ServiceProviderConfiguration.java
@@ -47,12 +47,48 @@
public static class AuthenticationSchema {
public enum Type {
- @XmlEnumValue("oauth")
- OAUTH, @XmlEnumValue("oauth2")
- OAUTH2, @XmlEnumValue("oauthbearertoken")
- OAUTH_BEARER, @XmlEnumValue("httpbasic")
- HTTP_BASIC, @XmlEnumValue("httpdigest")
- HTTP_DIGEST;
+ @XmlEnumValue("oauth") OAUTH(
+ "oauth",
+ "OAuth 1.0",
+ "Authentication scheme using the OAuth 1.0 Standard",
+ "https://www.rfc-editor.org/rfc/rfc5849.html"),
+ @XmlEnumValue("oauth2") OAUTH2(
+ "oauth2",
+ "OAuth 2.0",
+ "Authentication scheme using the OAuth 2.0 Standard",
+ "https://www.rfc-editor.org/rfc/rfc6749.html"),
+ @XmlEnumValue("oauthbearertoken") OAUTH_BEARER(
+ "oauthbearertoken",
+ "OAuth Bearer Token",
+ "Authentication scheme using the OAuth Bearer Token Standard",
+ "http://www.rfc-editor.org/info/rfc6750"),
+ @XmlEnumValue("httpbasic") HTTP_BASIC(
+ "httpbasic",
+ "HTTP Basic",
+ "Authentication scheme using the HTTP Basic Standard",
+ "http://www.rfc-editor.org/info/rfc2617"),
+ @XmlEnumValue("httpdigest") HTTP_DIGEST(
+ "httpdigest",
+ "HTTP Digest",
+ "Authentication scheme using the HTTP Digest Standard",
+ "https://www.rfc-editor.org/rfc/rfc7616.html");
+
+ private final String type;
+ private final String specUri;
+ private final String defaultName;
+ private final String defaultDescription;
+
+ Type(String type, String defaultName, String defaultDescription, String specUri) {
+ this.type = type;
+ this.defaultName = defaultName;
+ this.defaultDescription = defaultDescription;
+ this.specUri = specUri;
+ }
+
+ @Override
+ public String toString() {
+ return type;
+ }
}
@XmlElement
@@ -70,6 +106,30 @@
@XmlElement
String documentationUri;
+ public static AuthenticationSchema oauth() {
+ return fromType(Type.OAUTH);
+ }
+
+ public static AuthenticationSchema oauth2() {
+ return fromType(Type.OAUTH2);
+ }
+ public static AuthenticationSchema oauthBearer() {
+ return fromType(Type.OAUTH_BEARER);
+ }
+ public static AuthenticationSchema httpBasic() {
+ return fromType(Type.HTTP_BASIC);
+ }
+ public static AuthenticationSchema httpDigest() {
+ return fromType(Type.HTTP_DIGEST);
+ }
+
+ private static AuthenticationSchema fromType(Type type) {
+ return new ServiceProviderConfiguration.AuthenticationSchema()
+ .setType(type)
+ .setName(type.defaultName)
+ .setDescription(type.defaultDescription)
+ .setSpecUri(type.specUri);
+ }
}
@Data