From 05a7d42bac3d229ce16d6634cb138b6eeb98cd95 Mon Sep 17 00:00:00 2001 From: PauloGladson Date: Mon, 19 Sep 2016 14:52:25 -0300 Subject: [PATCH] Ajustes para início --- .gitignore | 4 ++++ core/pom.xml | 6 ------ pom.xml | 1 + security/pom.xml | 2 +- security/src/main/java/org/demoiselle/jee/security/exception/DemoiselleSecurityException.java | 37 +++++++++++++++++++++++++++++++++++++ security/src/main/java/org/demoiselle/jee/ws/JaxRsFilter.java | 59 ----------------------------------------------------------- security/src/main/java/org/demoiselle/jee/ws/crud/package-info.java | 11 ----------- security/src/main/java/org/demoiselle/jee/ws/exception/DemoiselleRESTException.java | 37 ------------------------------------- security/src/main/java/org/demoiselle/jee/ws/exception/mapper/GenericExceptionMapper.java | 62 -------------------------------------------------------------- security/src/main/java/org/demoiselle/jee/ws/interceptor/ValidatePayload.java | 25 ------------------------- security/src/main/java/org/demoiselle/jee/ws/interceptor/ValidatePayloadInterceptor.java | 62 -------------------------------------------------------------- 11 files changed, 43 insertions(+), 263 deletions(-) create mode 100644 .gitignore create mode 100644 security/src/main/java/org/demoiselle/jee/security/exception/DemoiselleSecurityException.java delete mode 100644 security/src/main/java/org/demoiselle/jee/ws/JaxRsFilter.java delete mode 100644 security/src/main/java/org/demoiselle/jee/ws/crud/package-info.java delete mode 100644 security/src/main/java/org/demoiselle/jee/ws/exception/DemoiselleRESTException.java delete mode 100644 security/src/main/java/org/demoiselle/jee/ws/exception/mapper/GenericExceptionMapper.java delete mode 100644 security/src/main/java/org/demoiselle/jee/ws/interceptor/ValidatePayload.java delete mode 100644 security/src/main/java/org/demoiselle/jee/ws/interceptor/ValidatePayloadInterceptor.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..16ddbe9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/persistence/target/ +/core/target/ +/ws/target/ +/security/target/ \ No newline at end of file diff --git a/core/pom.xml b/core/pom.xml index 2db2a17..8e0a689 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -13,12 +13,6 @@ - org.apache.commons - commons-configuration2 - 2.0 - jar - - javax javaee-web-api 7.0 diff --git a/pom.xml b/pom.xml index f392bad..f203c36 100644 --- a/pom.xml +++ b/pom.xml @@ -23,6 +23,7 @@ persistence ws + security diff --git a/security/pom.xml b/security/pom.xml index 6bb24b5..1fe459b 100644 --- a/security/pom.xml +++ b/security/pom.xml @@ -1,7 +1,7 @@ 4.0.0 - org.demoiselle.jee.security + org.demoiselle.jee security 3.0.0-SNAPSHOT jar diff --git a/security/src/main/java/org/demoiselle/jee/security/exception/DemoiselleSecurityException.java b/security/src/main/java/org/demoiselle/jee/security/exception/DemoiselleSecurityException.java new file mode 100644 index 0000000..f7ab235 --- /dev/null +++ b/security/src/main/java/org/demoiselle/jee/security/exception/DemoiselleSecurityException.java @@ -0,0 +1,37 @@ +/* + * Demoiselle Framework + * + * License: GNU Lesser General Public License (LGPL), version 3 or later. + * See the lgpl.txt file in the root directory or . + */ +package org.demoiselle.jee.security.exception; + +import java.util.HashMap; + +import org.demoiselle.jee.core.exception.DemoiselleException; + +public class DemoiselleSecurityException extends DemoiselleException { + + private static final long serialVersionUID = 519965615171844237L; + + private HashMap messages = new HashMap(); + + private int statusCode; + + public DemoiselleSecurityException(String string) { + super(string); + } + + public int getStatusCode() { + return statusCode; + } + + public void addMessage(String field, String msg) { + this.statusCode = 422; + messages.put(field, msg); + } + + public HashMap getMessages() { + return messages; + } +} diff --git a/security/src/main/java/org/demoiselle/jee/ws/JaxRsFilter.java b/security/src/main/java/org/demoiselle/jee/ws/JaxRsFilter.java deleted file mode 100644 index e7f43dc..0000000 --- a/security/src/main/java/org/demoiselle/jee/ws/JaxRsFilter.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package org.demoiselle.jee.ws; - -import java.util.logging.Logger; -import javax.annotation.PostConstruct; -import javax.inject.Inject; -import javax.ws.rs.client.ClientRequestContext; -import javax.ws.rs.client.ClientRequestFilter; -import javax.ws.rs.client.ClientResponseContext; -import javax.ws.rs.client.ClientResponseFilter; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.container.ContainerResponseContext; -import javax.ws.rs.container.ContainerResponseFilter; -import javax.ws.rs.container.PreMatching; -import javax.ws.rs.ext.Provider; - -/** - * - * @author 70744416353 - */ -@Provider -@PreMatching -public class JaxRsFilter implements ClientRequestFilter, ClientResponseFilter, ContainerRequestFilter, ContainerResponseFilter { - - @Inject - private Logger LOG; - - @Override - public void filter(ClientRequestContext requestContext) { - } - - @Override - public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) { - } - - @Override - public void filter(ContainerRequestContext requestContext) { - } - - @Override - public void filter(ContainerRequestContext requestContext, ContainerResponseContext response) { - - response.getHeaders().putSingle("Access-Control-Allow-Origin", "*"); - response.getHeaders().putSingle("Access-Control-Allow-Methods", "OPTIONS, GET, POST, PUT, DELETE"); - response.getHeaders().putSingle("Access-Control-Allow-Headers", "Content-Type"); - - } - - @PostConstruct - public void init() { - LOG.info("Demoiselle Module - Rest"); - } - -} diff --git a/security/src/main/java/org/demoiselle/jee/ws/crud/package-info.java b/security/src/main/java/org/demoiselle/jee/ws/crud/package-info.java deleted file mode 100644 index f3e318b..0000000 --- a/security/src/main/java/org/demoiselle/jee/ws/crud/package-info.java +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Demoiselle Framework - * - * License: GNU Lesser General Public License (LGPL), version 3 or later. - * See the lgpl.txt file in the root directory or . - */ -/** - * Esta pacote tem o objetivo de conter as classes relacionadas aos - * facilitadores de CRUD do framework Demoiselle. - */ -package org.demoiselle.jee.ws.crud; \ No newline at end of file diff --git a/security/src/main/java/org/demoiselle/jee/ws/exception/DemoiselleRESTException.java b/security/src/main/java/org/demoiselle/jee/ws/exception/DemoiselleRESTException.java deleted file mode 100644 index 1cb1492..0000000 --- a/security/src/main/java/org/demoiselle/jee/ws/exception/DemoiselleRESTException.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Demoiselle Framework - * - * License: GNU Lesser General Public License (LGPL), version 3 or later. - * See the lgpl.txt file in the root directory or . - */ -package org.demoiselle.jee.ws.exception; - -import java.util.HashMap; - -import org.demoiselle.jee.core.exception.DemoiselleException; - -public class DemoiselleRESTException extends DemoiselleException { - - private static final long serialVersionUID = 519965615171844237L; - - private HashMap messages = new HashMap(); - - private int statusCode; - - public DemoiselleRESTException(String string) { - super(string); - } - - public int getStatusCode() { - return statusCode; - } - - public void addMessage(String field, String msg) { - this.statusCode = 422; - messages.put(field, msg); - } - - public HashMap getMessages() { - return messages; - } -} diff --git a/security/src/main/java/org/demoiselle/jee/ws/exception/mapper/GenericExceptionMapper.java b/security/src/main/java/org/demoiselle/jee/ws/exception/mapper/GenericExceptionMapper.java deleted file mode 100644 index 2e76044..0000000 --- a/security/src/main/java/org/demoiselle/jee/ws/exception/mapper/GenericExceptionMapper.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.demoiselle.jee.ws.exception.mapper; - -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.HashMap; - -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; - -import org.demoiselle.jee.ws.exception.DemoiselleRESTException; - -@Provider -public class GenericExceptionMapper implements ExceptionMapper { - - public Response toResponse(Exception ex) { - - StringWriter errorStackTrace = new StringWriter(); - ex.printStackTrace(new PrintWriter(errorStackTrace)); - - // Verifica se a exception é de validação de PAYLOAD do REST - if (ex.getCause() instanceof DemoiselleRESTException) { - DemoiselleRESTException exDemoiselleREST = (DemoiselleRESTException) ex.getCause(); - if (!exDemoiselleREST.getMessages().isEmpty()) { - return Response.status(exDemoiselleREST.getStatusCode()).entity(exDemoiselleREST.getMessages()) - .type(MediaType.APPLICATION_JSON).build(); - } - } - - HashMap entity = new HashMap(); - - // No caso de existir message ele mostra a MESSAGE da Exception - if (ex.getMessage() != null) { - entity.put("error", ex.getMessage()); - - // Pega toda as mensagens da stacktrace - int level = 1; - while (ex.getCause() != null) { - ex = (Exception) ex.getCause(); - if (!ex.getMessage().isEmpty()) { - entity.put("inner_cause_" + level, ex.getMessage()); - } - level += 1; - } - - // Por padrão retorna SERVER ERROR, mas tenta encontrar o status do RESPONSE se for WebApplicationException - // http://docs.oracle.com/javaee/7/api/javax/ws/rs/WebApplicationException.html - int responseCode = Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(); - if (ex instanceof WebApplicationException) { - responseCode = ((WebApplicationException)ex).getResponse().getStatus(); - } - - return Response.status(responseCode).entity(entity).type(MediaType.APPLICATION_JSON).build(); - } - - entity.put("error", "Erro interno desconhecido no servidor."); - return Response.status(500).entity(entity).type(MediaType.APPLICATION_JSON).build(); - } - -} diff --git a/security/src/main/java/org/demoiselle/jee/ws/interceptor/ValidatePayload.java b/security/src/main/java/org/demoiselle/jee/ws/interceptor/ValidatePayload.java deleted file mode 100644 index 39ce8c0..0000000 --- a/security/src/main/java/org/demoiselle/jee/ws/interceptor/ValidatePayload.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Demoiselle Framework - * - * License: GNU Lesser General Public License (LGPL), version 3 or later. - * See the lgpl.txt file in the root directory or . - */ -package org.demoiselle.jee.ws.interceptor; - -import static java.lang.annotation.ElementType.METHOD; -import static java.lang.annotation.ElementType.TYPE; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Inherited; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -import javax.interceptor.InterceptorBinding; - -@Inherited -@InterceptorBinding -@Target({ METHOD, TYPE }) -@Retention(RUNTIME) -public @interface ValidatePayload { - -} \ No newline at end of file diff --git a/security/src/main/java/org/demoiselle/jee/ws/interceptor/ValidatePayloadInterceptor.java b/security/src/main/java/org/demoiselle/jee/ws/interceptor/ValidatePayloadInterceptor.java deleted file mode 100644 index c13769b..0000000 --- a/security/src/main/java/org/demoiselle/jee/ws/interceptor/ValidatePayloadInterceptor.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Demoiselle Framework - * - * License: GNU Lesser General Public License (LGPL), version 3 or later. - * See the lgpl.txt file in the root directory or . - */ -package org.demoiselle.jee.ws.interceptor; - -import java.io.Serializable; -import java.util.HashSet; -import java.util.Set; - -import javax.interceptor.AroundInvoke; -import javax.interceptor.Interceptor; -import javax.interceptor.InvocationContext; -import javax.validation.ConstraintViolation; -import javax.validation.UnexpectedTypeException; -import javax.validation.Validation; -import javax.validation.Validator; -import javax.validation.ValidatorFactory; - -import org.demoiselle.jee.ws.exception.DemoiselleRESTException; - -@Interceptor -@ValidatePayload -public class ValidatePayloadInterceptor implements Serializable { - - private static final long serialVersionUID = 1L; - - @AroundInvoke - public Object manage(final InvocationContext ic) throws Exception { - DemoiselleRESTException ex = new DemoiselleRESTException("Erro de validação de entidade."); - Set> violations = new HashSet>(); - for (Object params : ic.getParameters()) { - if (params != null) { - ValidatorFactory dfv = Validation.buildDefaultValidatorFactory(); - Validator validator = dfv.getValidator(); - try { - violations.addAll(validator.validate(params)); - for (ConstraintViolation violation : violations) { - String field = (violation.getRootBeanClass().getSimpleName() + "_" - + violation.getPropertyPath()).toLowerCase(); - // GPMessage msg = - // GPMessage.INVALID_FIELD_P1.setSufix(violation.getConstraintDescriptor() - // .getAnnotation().annotationType().getSimpleName().toLowerCase()); - - ex.addMessage(field, violation.getMessage()); - } - } catch (UnexpectedTypeException cause) { - // GPMessage msg = GPMessage.GENERAL_ERROR_P1; - // msg.setParam(cause.getMessage()); - throw new DemoiselleRESTException("ERRO GENERICO -> ALTERAR"); - } - } - } - - if (!violations.isEmpty() && !ex.getMessages().isEmpty()) { - throw ex; - } - return ic.proceed(); - } -} \ No newline at end of file -- libgit2 0.21.2