diff --git a/PeerAtCodeFramework.jar b/PeerAtCodeFramework.jar index db10b4f..b673db4 100644 Binary files a/PeerAtCodeFramework.jar and b/PeerAtCodeFramework.jar differ diff --git a/src/dev/peerat/backend/routes/groups/GroupCreate.java b/src/dev/peerat/backend/routes/groups/GroupCreate.java index b41b60a..c8ddbc4 100644 --- a/src/dev/peerat/backend/routes/groups/GroupCreate.java +++ b/src/dev/peerat/backend/routes/groups/GroupCreate.java @@ -10,14 +10,16 @@ import dev.peerat.backend.model.Chapter; import dev.peerat.backend.model.Group; import dev.peerat.backend.model.PeerAtUser; import dev.peerat.backend.repository.DatabaseRepository; +import dev.peerat.backend.utils.FormResponse; import dev.peerat.framework.Context; import dev.peerat.framework.HttpReader; import dev.peerat.framework.HttpWriter; import dev.peerat.framework.Locker; import dev.peerat.framework.Response; import dev.peerat.framework.Route; +import dev.peerat.framework.utils.json.JsonMap; -public class GroupCreate implements Response { +public class GroupCreate extends FormResponse { private Locker locker; private DatabaseRepository repo; @@ -27,6 +29,8 @@ public class GroupCreate implements Response { this.repo = repo; this.locker = locker; this.groupDelay = groupDelay; + + validator("name", "[a-zA-Z0-9&|!?{}\\[\\]%/*\\-+=:;,_#@ ]{3,100}"); } @RouteDoc(path = "/groupCreate", responseCode = 200, responseDescription = "Le groupe a été créé") @@ -35,7 +39,12 @@ public class GroupCreate implements Response { @Route(path = "^\\/groupCreate$", type = POST, needLogin = true) public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception{ - Group newGroup = new Group(reader.readJson()); + JsonMap json = json(reader); + if(!areValids("name")){ + context.response(403); + return; + } + Group newGroup = new Group(json); PeerAtUser user = context.getUser(); if (this.repo.getPlayerGroup(user.getId(), newGroup.getLinkToChapter()) == null) { diff --git a/src/dev/peerat/backend/routes/users/MailConfirmation.java b/src/dev/peerat/backend/routes/users/MailConfirmation.java index 8043874..f7185bd 100644 --- a/src/dev/peerat/backend/routes/users/MailConfirmation.java +++ b/src/dev/peerat/backend/routes/users/MailConfirmation.java @@ -66,6 +66,9 @@ public class MailConfirmation extends FormResponse { generator.initialize(4096); encoder = Base64.getEncoder(); + validator("pseudo", "[a-zA-Z0-9&|!?{}\\[\\]%/*\\-+=:;,_#@ ]{3,100}"); + validator("firstname", "^(?>[a-zA-Z]+ ?)+$"); + validator("lastname", "^(?>[a-zA-Z]+ ?)+$"); } @RouteDoc(path = "/confirmation", responseCode = 200, responseDescription = "L'utilisateur est inscrit") diff --git a/src/dev/peerat/backend/utils/FormResponse.java b/src/dev/peerat/backend/utils/FormResponse.java index eeb8689..d5dd238 100644 --- a/src/dev/peerat/backend/utils/FormResponse.java +++ b/src/dev/peerat/backend/utils/FormResponse.java @@ -19,7 +19,7 @@ public abstract class FormResponse implements Response{ } public void validator(String key, String regex){ - this.checker.put(key, Pattern.compile(regex)); + this.checker.put(key, Pattern.compile(regex, Pattern.CASE_INSENSITIVE)); } public T json(HttpReader reader) throws Exception{