summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Newson <rnewson@apache.org>2023-04-14 19:26:55 +0100
committerRobert Newson <rnewson@apache.org>2023-04-22 11:20:02 +0100
commit803a2981d662b4cbfefaf010e14cb2d0d97f19d1 (patch)
tree94caefde1b2e8bb646fb5e462c4a6681451f850f
parent065079fe0d62956986cb16d97fae2bb0a51a6181 (diff)
downloadcouchdb-803a2981d662b4cbfefaf010e14cb2d0d97f19d1.tar.gz
constrain field names
-rw-r--r--nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentUpdateRequest.java3
-rw-r--r--nouveau/src/main/java/org/apache/couchdb/nouveau/api/Field.java5
2 files changed, 4 insertions, 4 deletions
diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentUpdateRequest.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentUpdateRequest.java
index 291a3b85e..45b478322 100644
--- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentUpdateRequest.java
+++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentUpdateRequest.java
@@ -19,7 +19,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
-
+import jakarta.validation.Valid;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.Positive;
@@ -32,6 +32,7 @@ public class DocumentUpdateRequest {
private String partition;
@NotEmpty
+ @Valid
private Collection<Field> fields;
public DocumentUpdateRequest() {
diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/Field.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/Field.java
index 831cae1cf..52d5b815f 100644
--- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/Field.java
+++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/Field.java
@@ -19,8 +19,7 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
-
-import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.Pattern;
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
@JsonTypeInfo(
@@ -35,6 +34,7 @@ import jakarta.validation.constraints.NotEmpty;
})
public abstract class Field {
+ @Pattern(regexp = "^\\$?[a-zA-Z][a-zA-Z0-9_]*$")
protected final String name;
protected Field(final String name) {
@@ -42,7 +42,6 @@ public abstract class Field {
}
@JsonProperty
- @NotEmpty
public String getName() {
return name;
}