From 34fede0ee3a1985599fbe52edbaea8587c0edabd Mon Sep 17 00:00:00 2001 From: ZeB-ZuA Date: Mon, 12 Feb 2024 17:50:26 -0500 Subject: [PATCH 1/3] se intento agregar swagger, no se encuentran versiones compatibles o no funciona o no se. se intento dokerizar, pero no reconoce las tablas adentro de la base de datos. --- Dockerfile | 6 +++++ pom.xml | 21 +++++++++++++-- .../security/Bucket/LimitInterceptor.java | 2 +- src/main/resources/application.properties | 26 ++++++++++++------- 4 files changed, 42 insertions(+), 13 deletions(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e99a542 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,6 @@ +FROM openjdk:8-jdk-alpine +VOLUME /tmp +EXPOSE 8080 +COPY ./target/crud-1.0.jar app.jar +COPY ./src/main/resources/application.properties /config/application.properties +ENTRYPOINT ["java","-jar","/app.jar","--spring.config.location=/config/application.properties"] diff --git a/pom.xml b/pom.xml index abd3cb2..4351ae8 100644 --- a/pom.xml +++ b/pom.xml @@ -107,8 +107,25 @@ bucket4j_jdk8-core 8.3.0 - - + + diff --git a/src/main/java/com/example/demo/security/Bucket/LimitInterceptor.java b/src/main/java/com/example/demo/security/Bucket/LimitInterceptor.java index a8de041..afce4a1 100644 --- a/src/main/java/com/example/demo/security/Bucket/LimitInterceptor.java +++ b/src/main/java/com/example/demo/security/Bucket/LimitInterceptor.java @@ -44,7 +44,7 @@ public boolean preHandle(HttpServletRequest request, HttpServletResponse respons private Bucket createNewBucket() { return Bucket4j.builder() - .addLimit(Bandwidth.simple(3, Duration.ofHours(1))) + .addLimit(Bandwidth.simple(10, Duration.ofHours(1))) .build(); } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 9b8a860..6bfd2a4 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,7 +1,8 @@ -#Conexion a MySQL -spring.datasource.url=jdbc:mysql://localhost:3306/pb?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrival=true&useLegacyDateTimeCode=false + #Conexion a MySQL +spring.datasource.url=jdbc:mysql://mysqldb:3306/pb?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true&useLegacyDateTimeCode=false spring.datasource.username=root spring.datasource.password=1936 + #spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.jpa.show-sql = true @@ -20,12 +21,17 @@ jwt.expiration = 20000000 management.endpoints.web.exposure.include=* management.endpoint.health.show-details=always -# Cloud Gateway Spring +#SpringDoc Configuration + +#springdoc.api-docs.path=/api-docs + +#springdoc.api-docs.enabled=true + +#springdoc.swagger-ui.path=/swagger-ui.html + +#springdoc.swagger-ui.enabled=true + +#springdoc.paths-to-exclude=/refresh + + -spring.cloud.gateway.routes[0].id=api_route -spring.cloud.gateway.routes[0].uri=http://localhost:8080 -spring.cloud.gateway.routes[0].predicates[0]=Path=/api/** -spring.cloud.gateway.routes[0].filters[0]=name=RequestRateLimiter -spring.cloud.gateway.routes[0].filters[0].args.redis-rate-limiter.replenishRate=10 -spring.cloud.gateway.routes[0].filters[0].args.redis-rate-limiter.burstCapacity=20 -spring.cloud.gateway.routes[0].filters[0].args.key-resolver=#{@userKeyResolver} From debf5a17d61e8e72c215f859419ffdaf6adb8602 Mon Sep 17 00:00:00 2001 From: ZeB-ZuA Date: Tue, 13 Feb 2024 11:02:03 -0500 Subject: [PATCH 2/3] Se configuro el docker-compile y los contenedores estan equilibrados, falta DB --- Dockerfile | 5 +-- docker-compose.yml | 42 +++++++++++++++++++++++ src/main/resources/application.properties | 2 +- 3 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile index e99a542..668ce55 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,3 @@ FROM openjdk:8-jdk-alpine -VOLUME /tmp -EXPOSE 8080 COPY ./target/crud-1.0.jar app.jar -COPY ./src/main/resources/application.properties /config/application.properties -ENTRYPOINT ["java","-jar","/app.jar","--spring.config.location=/config/application.properties"] +ENTRYPOINT [ "java", "-jar", "app.jar" ] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..710c9f8 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,42 @@ +version: '3.9' +networks: + weather-network: + driver: bridge +services: + weather-databasePHP: + image: phpmyadmin/phpmyadmin + ports: + - "8085:80" + environment: + PMA_HOST: weather-database + MYSQL_ROOT_PASSWORD: 1936 + MYSQL_USER: Admin1 + MYSQL_PASSWORD: 1936 + networks: + - weather-network + weatherAPI: + container_name: weatherAPI + image: app01 + build: . + ports: + - 8080:8080 + environment: + - DATABASE_URL=jdbc:mysql://weather-database:3306/pb?useSSL=false&serverTimezone=UTC&useLegacyDateTimeCode=false&allowPublicKeyRetrieval=true + - DATABASE_USERNAME=root + - DATABASE_PASSWORD=1936 + # Aqui iria la creacion de un super usuario base + networks: + - weather-network + + + depends_on: + - weather-database + weather-database: + image: mysql:latest + ports: + - "3307:3306" + environment: + MYSQL_ROOT_PASSWORD: 1936 + MYSQL_DATABASE: pb + networks: + - weather-network diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 6bfd2a4..a727c08 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,5 +1,5 @@ #Conexion a MySQL -spring.datasource.url=jdbc:mysql://mysqldb:3306/pb?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true&useLegacyDateTimeCode=false +spring.datasource.url=jdbc:mysql://weather-database:3306/pb?useSSL=false&serverTimezone=UTC&useLegacyDateTimeCode=false&allowPublicKeyRetrieval=true spring.datasource.username=root spring.datasource.password=1936 From 62129c3c2d63d5508900e5d8dade09a9b9bb9964 Mon Sep 17 00:00:00 2001 From: ZeB-ZuA Date: Tue, 13 Feb 2024 23:34:35 -0500 Subject: [PATCH 3/3] funka la dokerizacion ctm, se agrega el script de la base de datos --- .schema.sql.swp | Bin 0 -> 1024 bytes schema.sql | 28 ++++++++++++++++++ .../demo/security/entity/Consulta.java | 1 + 3 files changed, 29 insertions(+) create mode 100644 .schema.sql.swp create mode 100644 schema.sql diff --git a/.schema.sql.swp b/.schema.sql.swp new file mode 100644 index 0000000000000000000000000000000000000000..580bd9293f602c330499aecf59fa2713677cffeb GIT binary patch literal 1024 zcmYc?$V<%2S1{KzVn6|(L>L%~^7Bhj1aWYjQj3aHi?UOTaLB`ii<2`_a})K73v*y1 Rqx5J9jD`RmLm(90E&x8<4XFSC literal 0 HcmV?d00001 diff --git a/schema.sql b/schema.sql new file mode 100644 index 0000000..2ae0aff --- /dev/null +++ b/schema.sql @@ -0,0 +1,28 @@ +CREATE TABLE usuario ( + id INT PRIMARY KEY AUTO_INCREMENT, + nombre VARCHAR(255) NOT NULL, + nombre_usuario VARCHAR(255) NOT NULL UNIQUE, + email VARCHAR(255) NOT NULL, + password VARCHAR(255) NOT NULL +); +CREATE TABLE rol ( + id INT PRIMARY KEY AUTO_INCREMENT, + rol_nombre VARCHAR(255) NOT NULL +); +CREATE TABLE usuario_roles ( + usuario_id INT, + rol_id INT, + PRIMARY KEY (usuario_id, rol_id), + FOREIGN KEY (usuario_id) REFERENCES usuario(id), + FOREIGN KEY (rol_id) REFERENCES rol(id) +); +CREATE TABLE consulta ( + id_consulta INT PRIMARY KEY AUTO_INCREMENT, + ciudad VARCHAR(255) NOT NULL, + tipo_consulta VARCHAR(255) NOT NULL, + fecha_hora DATETIME NOT NULL, + respuesta TEXT NOT NULL, + usuario_id INT NOT NULL, + FOREIGN KEY (usuario_id) REFERENCES usuario(id) +); +insert into rol (rol_nombre) value ('CLIENT'); diff --git a/src/main/java/com/example/demo/security/entity/Consulta.java b/src/main/java/com/example/demo/security/entity/Consulta.java index fb16dbe..780f3a1 100644 --- a/src/main/java/com/example/demo/security/entity/Consulta.java +++ b/src/main/java/com/example/demo/security/entity/Consulta.java @@ -50,4 +50,5 @@ public class Consulta implements Serializable { private Usuario usuario; + }