Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
JuanBarros2 committed Jul 17, 2016
2 parents de442b6 + 6fa21d0 commit 037d0b7
Show file tree
Hide file tree
Showing 13 changed files with 226 additions and 175 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
import javax.ws.rs.core.Response.ResponseBuilder;

import br.edu.ifpb.nutrif.dao.FuncionarioDAO;
import br.edu.ifpb.nutrif.dao.PessoaDAO;
import br.edu.ifpb.nutrif.dao.RoleDAO;
import br.edu.ifpb.nutrif.exception.ErrorFactory;
import br.edu.ifpb.nutrif.exception.SQLExceptionNutrIF;
Expand Down
310 changes: 177 additions & 133 deletions NutrIF_Service/src/br/edu/ifpb/nutrif/controller/PessoaController.java
Original file line number Diff line number Diff line change
@@ -1,133 +1,177 @@
package br.edu.ifpb.nutrif.controller;

import java.io.UnsupportedEncodingException;
import java.util.Date;

import javax.annotation.security.PermitAll;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.ResponseBuilder;

import br.edu.ifpb.nutrif.dao.LoginDAO;
import br.edu.ifpb.nutrif.dao.PessoaDAO;
import br.edu.ifpb.nutrif.exception.ErrorFactory;
import br.edu.ifpb.nutrif.exception.SQLExceptionNutrIF;
import br.edu.ifpb.nutrif.validation.Validate;
import br.edu.ladoss.entity.Error;
import br.edu.ladoss.entity.Login;
import br.edu.ladoss.entity.Pessoa;
import br.edu.ladoss.entity.PessoaAcesso;

@Path("pessoa")
public class PessoaController {

/**
* Login para Pessoa. Retorna a chave de autenticação caso o usuário esteja
* com o e-mail e senha corretos.
*
* @param pessoaAcesso
* @return
*/
@PermitAll
@POST
@Path("/login")
@Consumes("application/json")
@Produces("application/json")
public Response login(PessoaAcesso pessoaAcesso) {

ResponseBuilder builder = Response.status(Response.Status.BAD_REQUEST);
builder.expires(new Date());

// Validação dos dados de entrada.
int validacao = Validate.acessoPessoa(pessoaAcesso);

if (validacao == Validate.VALIDATE_OK) {

try {

//Login Pessoa.
Pessoa pessoa = PessoaDAO.getInstance().login(
pessoaAcesso.getEmail(),
pessoaAcesso.getSenha());

if (pessoa != null) {

// Registro do Login
Date agora = new Date();

Login login = new Login();
login.setPessoa(pessoa);
login.setRegistro(agora);

// Registro de Login para a Pessoa.
LoginDAO.getInstance().insert(login);

// Pessoa
pessoaAcesso = PessoaAcesso.getInstance(
pessoa);

// Operação realizada com sucesso.
builder.status(Response.Status.OK);
builder.entity(pessoaAcesso);

} else {

builder.status(Response.Status.UNAUTHORIZED);
}

} catch (SQLExceptionNutrIF exception) {

builder.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
exception.getError());

} catch (UnsupportedEncodingException
exception) {

builder.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
ErrorFactory.getErrorFromIndex(
ErrorFactory.IMPOSSIVEL_CRIPTOGRAFAR_VALOR));
}

} else {

Error erro = ErrorFactory.getErrorFromIndex(validacao);
builder.status(Response.Status.NOT_ACCEPTABLE).entity(erro);
}

return builder.build();
}


/**
* Reiniciar senha para aluno e funcionário.
*
* @param pessoaAcesso
* @return
*/
@PermitAll
@POST
@Path("/login")
@Consumes("application/json")
@Produces("application/json")
public Response requestResetSenha(PessoaAcesso pessoaAcesso) {
return null;
}

/**
* Reiniciar senha para aluno e funcionário.
*
* @param pessoaAcesso
* @return
*/
@PermitAll
@POST
@Path("/login")
@Consumes("application/json")
@Produces("application/json")
public Response resetSenha(PessoaAcesso pessoaAcesso) {
return null;
}
}
package br.edu.ifpb.nutrif.controller;

import java.io.UnsupportedEncodingException;
import java.util.Date;

import javax.annotation.security.PermitAll;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.ResponseBuilder;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import br.edu.ifpb.nutrif.dao.LoginDAO;
import br.edu.ifpb.nutrif.dao.PessoaDAO;
import br.edu.ifpb.nutrif.exception.ErrorFactory;
import br.edu.ifpb.nutrif.exception.SQLExceptionNutrIF;
import br.edu.ifpb.nutrif.validation.Validate;
import br.edu.ladoss.entity.Error;
import br.edu.ladoss.entity.Login;
import br.edu.ladoss.entity.Pessoa;
import br.edu.ladoss.entity.PessoaAcesso;

@Path("pessoa")
public class PessoaController {

private static Logger logger = LogManager.getLogger(PessoaController.class);

/**
* Login para Pessoa. Retorna a chave de autenticação caso o usuário esteja
* com o e-mail e senha corretos.
*
* @param pessoaAcesso
* @return
*/
@PermitAll
@POST
@Path("/login")
@Consumes("application/json")
@Produces("application/json")
public Response login(PessoaAcesso pessoaAcesso) {

ResponseBuilder builder = Response.status(Response.Status.BAD_REQUEST);
builder.expires(new Date());

logger.info("Login usuário");

// Validação dos dados de entrada.
int validacao = Validate.acessoPessoa(pessoaAcesso);

if (validacao == Validate.VALIDATE_OK) {

try {

//Login Pessoa.
Pessoa pessoa = PessoaDAO.getInstance().login(
pessoaAcesso.getEmail(),
pessoaAcesso.getSenha());

if (pessoa != null) {

// Registro do Login
Date agora = new Date();

Login login = new Login();
login.setPessoa(pessoa);
login.setRegistro(agora);

// Registro de Login para a Pessoa.
LoginDAO.getInstance().insert(login);

// Pessoa
pessoaAcesso = PessoaAcesso.getInstance(
pessoa);

// Operação realizada com sucesso.
builder.status(Response.Status.OK);
builder.entity(pessoaAcesso);

} else {

builder.status(Response.Status.UNAUTHORIZED);
}

} catch (SQLExceptionNutrIF exception) {

builder.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
exception.getError());

} catch (UnsupportedEncodingException
exception) {

builder.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
ErrorFactory.getErrorFromIndex(
ErrorFactory.IMPOSSIVEL_CRIPTOGRAFAR_VALOR));
}

} else {

Error erro = ErrorFactory.getErrorFromIndex(validacao);
builder.status(Response.Status.NOT_ACCEPTABLE).entity(erro);
}

return builder.build();
}

/**
* Gerar e-mail com url para reinicialização da senha para aluno e funcionário.
*
* @param pessoaAcesso
* @return
*/
@PermitAll
@POST
@Path("/login/request")
@Consumes("application/json")
@Produces("application/json")
public Response requestResetSenha(PessoaAcesso pessoaAcesso) {

ResponseBuilder builder = Response.status(Response.Status.BAD_REQUEST);
builder.expires(new Date());

logger.info("Reset senha usuário");

//TODO: Validação dos dados de entrada.
int validacao = Validate.VALIDATE_OK;

if (validacao == Validate.VALIDATE_OK) {

//TODO: Mudar senha do usuário.

} else {

Error erro = ErrorFactory.getErrorFromIndex(validacao);
builder.status(Response.Status.NOT_ACCEPTABLE).entity(erro);
}

return builder.build();
}

/**
* Reiniciar senha para aluno e funcionário.
*
* @param pessoaAcesso
* @return
*/
@PermitAll
@POST
@Path("/login/reset")
@Consumes("application/json")
@Produces("application/json")
public Response resetSenha(PessoaAcesso pessoaAcesso) {

ResponseBuilder builder = Response.status(Response.Status.BAD_REQUEST);
builder.expires(new Date());

logger.info("Reset senha usuário");

//TODO: Validação dos dados de entrada.
int validacao = Validate.VALIDATE_OK;

if (validacao == Validate.VALIDATE_OK) {

//TODO: Mudar senha do usuário.

} else {

Error erro = ErrorFactory.getErrorFromIndex(validacao);
builder.status(Response.Status.NOT_ACCEPTABLE).entity(erro);
}

return builder.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,6 @@ public NutrIFApplication() {

this.singletons.add(filter);

//singletons.add(new JaxbJacksonObjectMapper());

// ADD YOUR RESTFUL RESOURCES HERE
this.singletons.add(new AlunoController());
this.singletons.add(new FuncionarioController());
Expand All @@ -49,6 +47,7 @@ public NutrIFApplication() {
this.singletons.add(new PretensaoRefeicaoController());
this.singletons.add(new ArquivoController());

// Information service.
this.singletons.add(new NutrIFRestIndex());
this.singletons.add(new NutrIFRestServices());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,9 @@
import java.io.IOException;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.TimeZone;

import javax.annotation.security.DenyAll;
import javax.annotation.security.PermitAll;
Expand Down Expand Up @@ -44,6 +41,8 @@ public class SecurityInterceptor implements ContainerRequestFilter {
public void filter(ContainerRequestContext requestContext)
throws IOException {

logger.info("Filter: roles verify.");

MultivaluedMap<String, String> headers = requestContext.getHeaders();

ResourceMethodInvoker methodInvoker =
Expand All @@ -53,6 +52,8 @@ public void filter(ContainerRequestContext requestContext)

if(!method.isAnnotationPresent(PermitAll.class)) {

logger.info("Verify authorization.");

final List<String> authorization = headers.get(AUTHORIZATION_PROPERTY);

//If no authorization information present; block access
Expand All @@ -68,8 +69,7 @@ public void filter(ContainerRequestContext requestContext)
requestContext.abortWith(Response.status(
Response.Status.UNAUTHORIZED).build());
return;
}

}

// Analisar perfil do usuário.
if(method.isAnnotationPresent(RolesAllowed.class)){
Expand Down
2 changes: 0 additions & 2 deletions nutrif-commons/src/br/edu/ladoss/entity/PessoaAcesso.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package br.edu.ladoss.entity;

import java.util.List;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

Expand Down
Loading

0 comments on commit 037d0b7

Please sign in to comment.