From 1bf6a50e3e5c9c6911a69010bbf1778a27953637 Mon Sep 17 00:00:00 2001 From: alberto Date: Mon, 30 Sep 2019 22:34:46 +0000 Subject: [PATCH] =?UTF-8?q?Criar=20servi=C3=A7o=20Rest=20bug#15900=20dev:t?= =?UTF-8?q?revezani=20qua:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@97980 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ventaboletos/rest/AlterarSenhaRS.java | 27 ++++++++++ .../rest/bean/ParamsAlterarSenha.java | 38 ++++++++++++++ .../rest/returns/AlteracaoSenhaRetorno.java | 26 ++++++++++ .../rest/service/AlterarSenhaService.java | 50 +++++++++++++++++++ 4 files changed, 141 insertions(+) create mode 100644 src/java/com/rjconsultores/ventaboletos/rest/AlterarSenhaRS.java create mode 100644 src/java/com/rjconsultores/ventaboletos/rest/bean/ParamsAlterarSenha.java create mode 100644 src/java/com/rjconsultores/ventaboletos/rest/returns/AlteracaoSenhaRetorno.java create mode 100644 src/java/com/rjconsultores/ventaboletos/rest/service/AlterarSenhaService.java diff --git a/src/java/com/rjconsultores/ventaboletos/rest/AlterarSenhaRS.java b/src/java/com/rjconsultores/ventaboletos/rest/AlterarSenhaRS.java new file mode 100644 index 000000000..5619cacb6 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/rest/AlterarSenhaRS.java @@ -0,0 +1,27 @@ +package com.rjconsultores.ventaboletos.rest; + +import javax.annotation.security.RolesAllowed; +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.MediaType; +import javax.ws.rs.core.Response; + +import com.rjconsultores.ventaboletos.rest.bean.ParamsAlterarSenha; +import com.rjconsultores.ventaboletos.rest.service.AlterarSenhaService; +import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext; + +@Path("/alterarSenha") +public class AlterarSenhaRS { + + @POST + @Consumes({ MediaType.APPLICATION_JSON }) + @RolesAllowed("EMBARCADA") + @Produces({ MediaType.APPLICATION_JSON }) + public Response alterarSenha(ParamsAlterarSenha params) { + AlterarSenhaService service = (AlterarSenhaService) AppContext.getApplicationContext().getBean("alterarSenhaService"); + return Response.ok(service.alterarSenha(params), MediaType.APPLICATION_JSON).build(); + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/rest/bean/ParamsAlterarSenha.java b/src/java/com/rjconsultores/ventaboletos/rest/bean/ParamsAlterarSenha.java new file mode 100644 index 000000000..e590e1537 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/rest/bean/ParamsAlterarSenha.java @@ -0,0 +1,38 @@ +package com.rjconsultores.ventaboletos.rest.bean; + +import org.codehaus.jackson.annotate.JsonIgnoreProperties; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class ParamsAlterarSenha { + private Integer usuarioId; + private String senhaAtual; + private String novaSenha; + + public ParamsAlterarSenha() { + + } + + public Integer getUsuarioId() { + return usuarioId; + } + + public void setUsuarioId(Integer usuarioId) { + this.usuarioId = usuarioId; + } + + public String getSenhaAtual() { + return senhaAtual; + } + + public void setSenhaAtual(String senhaAtual) { + this.senhaAtual = senhaAtual; + } + + public String getNovaSenha() { + return novaSenha; + } + + public void setNovaSenha(String novaSenha) { + this.novaSenha = novaSenha; + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/rest/returns/AlteracaoSenhaRetorno.java b/src/java/com/rjconsultores/ventaboletos/rest/returns/AlteracaoSenhaRetorno.java new file mode 100644 index 000000000..c3bfca7e1 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/rest/returns/AlteracaoSenhaRetorno.java @@ -0,0 +1,26 @@ +package com.rjconsultores.ventaboletos.rest.returns; + +public class AlteracaoSenhaRetorno { + private String status; + private String mensagem; + + public AlteracaoSenhaRetorno() { + + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getMensagem() { + return mensagem; + } + + public void setMensagem(String mensagem) { + this.mensagem = mensagem; + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/rest/service/AlterarSenhaService.java b/src/java/com/rjconsultores/ventaboletos/rest/service/AlterarSenhaService.java new file mode 100644 index 000000000..a8b613885 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/rest/service/AlterarSenhaService.java @@ -0,0 +1,50 @@ +package com.rjconsultores.ventaboletos.rest.service; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.rjconsultores.ventaboletos.entidad.Usuario; +import com.rjconsultores.ventaboletos.exception.BusinessException; +import com.rjconsultores.ventaboletos.rest.bean.ParamsAlterarSenha; +import com.rjconsultores.ventaboletos.rest.returns.AlteracaoSenhaRetorno; +import com.rjconsultores.ventaboletos.service.UsuarioService; +import com.rjconsultores.ventaboletos.utilerias.seguridad.ContrasenaUtileria; + +@Service("alterarSenhaService") +public class AlterarSenhaService { + @Autowired + private UsuarioService usuarioService; + + public AlteracaoSenhaRetorno alterarSenha(ParamsAlterarSenha params) { + AlteracaoSenhaRetorno retorno = new AlteracaoSenhaRetorno(); + retorno.setStatus("SUCCESS"); + + if (params.getUsuarioId() == null || + params.getSenhaAtual() == null || params.getSenhaAtual().isEmpty() || + params.getNovaSenha() == null || params.getNovaSenha().isEmpty()) { + retorno.setStatus("ERROR"); + retorno.setMensagem("Chamada invalida"); + + return retorno; + } + + Usuario usuario = usuarioService.obtenerID(params.getUsuarioId()); + + if (usuario == null) { + retorno.setStatus("ERROR"); + retorno.setMensagem("Usuario nao encontrado"); + } else if (!usuario.getSenha().equals(ContrasenaUtileria.encriptarContrasena(params.getSenhaAtual()))) { + retorno.setStatus("ERROR"); + retorno.setMensagem("Senha atual invalida"); + } else { + try { + usuarioService.cambiarContrasena(usuario, params.getNovaSenha()); + } catch (BusinessException e) { + retorno.setStatus("ERROR"); + retorno.setMensagem(e.getMessage()); + } + } + + return retorno; + } +}