diff --git a/archetype/html-rest/src/main/resources/archetype-resources/src/main/java/exception/readme.txt b/archetype/html-rest/src/main/resources/archetype-resources/src/main/java/exception/readme.txt deleted file mode 100644 index e69de29..0000000 --- a/archetype/html-rest/src/main/resources/archetype-resources/src/main/java/exception/readme.txt +++ /dev/null diff --git a/archetype/html-rest/src/main/resources/archetype-resources/src/main/java/rest/AuthREST.java b/archetype/html-rest/src/main/resources/archetype-resources/src/main/java/rest/AuthREST.java new file mode 100644 index 0000000..d846e89 --- /dev/null +++ b/archetype/html-rest/src/main/resources/archetype-resources/src/main/java/rest/AuthREST.java @@ -0,0 +1,62 @@ +package ${package}.rest; + +import javax.inject.Inject; +import javax.validation.Valid; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; + +import br.gov.frameworkdemoiselle.security.Credentials; +import br.gov.frameworkdemoiselle.security.LoggedIn; +import br.gov.frameworkdemoiselle.security.SecurityContext; +import br.gov.frameworkdemoiselle.security.User; +import br.gov.frameworkdemoiselle.util.Beans; +import br.gov.frameworkdemoiselle.util.ValidatePayload; + +@Path("auth") +public class AuthREST { + + @Inject + private SecurityContext securityContext; + + @POST + @ValidatePayload + @Produces("application/json") + @Consumes("application/json") + public void login(@Valid CredentialsForm form) { + Credentials credentials = Beans.getReference(Credentials.class); + credentials.setUsername(form.username); + credentials.setPassword(form.password); + + securityContext.login(); + } + + @GET + @LoggedIn + @Produces("application/json") + public User getLoggedInUser() { + return securityContext.getUser(); + } + + @DELETE + @LoggedIn + public void logout() { + securityContext.logout(); + } + + public static class CredentialsForm { + + @NotNull(message = "{required.field}") + @Size(min = 1, message = "{required.field}") + public String username; + + @NotNull(message = "{required.field}") + @Size(min = 1, message = "{required.field}") + public String password; + } +} -- libgit2 0.21.2