diff --git a/src/main/java/tech/ailef/snapadmin/external/dbmapping/DbObjectSchema.java b/src/main/java/tech/ailef/snapadmin/external/dbmapping/DbObjectSchema.java index b525aee..1da5804 100644 --- a/src/main/java/tech/ailef/snapadmin/external/dbmapping/DbObjectSchema.java +++ b/src/main/java/tech/ailef/snapadmin/external/dbmapping/DbObjectSchema.java @@ -49,6 +49,7 @@ import tech.ailef.snapadmin.external.annotations.HiddenColumn; import tech.ailef.snapadmin.external.dbmapping.fields.DbField; import tech.ailef.snapadmin.external.dto.MappingError; import tech.ailef.snapadmin.external.exceptions.SnapAdminException; +import tech.ailef.snapadmin.external.exceptions.SnapAdminNotFoundException; import tech.ailef.snapadmin.external.misc.Utils; /** @@ -375,9 +376,15 @@ public class DbObjectSchema { for (String param : params.keySet()) { // Parameters starting with __ are hidden and not related to the object creation - if (param.startsWith("__")) continue; + if (param.startsWith("__") + || param.equals("_csrf")) continue; - String javaFieldName = getFieldByName(param).getJavaName(); + DbField dbField = getFieldByName(param); + + if (dbField == null) + throw new SnapAdminNotFoundException("Cannot find field " + param + " in " + getJavaClass().getName()); + + String javaFieldName = dbField.getJavaName(); Method setter = dbObject.findSetter(javaFieldName); if (setter == null) { diff --git a/src/main/java/tech/ailef/snapadmin/internal/model/UserAction.java b/src/main/java/tech/ailef/snapadmin/internal/model/UserAction.java index 2e0785f..5facb62 100644 --- a/src/main/java/tech/ailef/snapadmin/internal/model/UserAction.java +++ b/src/main/java/tech/ailef/snapadmin/internal/model/UserAction.java @@ -160,5 +160,6 @@ public class UserAction { public void setUsername(String username) { this.username = username; } + }