Commit 490ce784acef54f39eac74a443a2beae99a323db

Authored by Cleverson Sacramento
1 parent 61fb415e
Exists in master

Inclusão do serviço de autenticação

archetype/html-rest/src/main/resources/archetype-resources/src/main/java/exception/readme.txt
archetype/html-rest/src/main/resources/archetype-resources/src/main/java/rest/AuthREST.java 0 → 100644
... ... @@ -0,0 +1,62 @@
  1 +package ${package}.rest;
  2 +
  3 +import javax.inject.Inject;
  4 +import javax.validation.Valid;
  5 +import javax.validation.constraints.NotNull;
  6 +import javax.validation.constraints.Size;
  7 +import javax.ws.rs.Consumes;
  8 +import javax.ws.rs.DELETE;
  9 +import javax.ws.rs.GET;
  10 +import javax.ws.rs.POST;
  11 +import javax.ws.rs.Path;
  12 +import javax.ws.rs.Produces;
  13 +
  14 +import br.gov.frameworkdemoiselle.security.Credentials;
  15 +import br.gov.frameworkdemoiselle.security.LoggedIn;
  16 +import br.gov.frameworkdemoiselle.security.SecurityContext;
  17 +import br.gov.frameworkdemoiselle.security.User;
  18 +import br.gov.frameworkdemoiselle.util.Beans;
  19 +import br.gov.frameworkdemoiselle.util.ValidatePayload;
  20 +
  21 +@Path("auth")
  22 +public class AuthREST {
  23 +
  24 + @Inject
  25 + private SecurityContext securityContext;
  26 +
  27 + @POST
  28 + @ValidatePayload
  29 + @Produces("application/json")
  30 + @Consumes("application/json")
  31 + public void login(@Valid CredentialsForm form) {
  32 + Credentials credentials = Beans.getReference(Credentials.class);
  33 + credentials.setUsername(form.username);
  34 + credentials.setPassword(form.password);
  35 +
  36 + securityContext.login();
  37 + }
  38 +
  39 + @GET
  40 + @LoggedIn
  41 + @Produces("application/json")
  42 + public User getLoggedInUser() {
  43 + return securityContext.getUser();
  44 + }
  45 +
  46 + @DELETE
  47 + @LoggedIn
  48 + public void logout() {
  49 + securityContext.logout();
  50 + }
  51 +
  52 + public static class CredentialsForm {
  53 +
  54 + @NotNull(message = "{required.field}")
  55 + @Size(min = 1, message = "{required.field}")
  56 + public String username;
  57 +
  58 + @NotNull(message = "{required.field}")
  59 + @Size(min = 1, message = "{required.field}")
  60 + public String password;
  61 + }
  62 +}
... ...