Skip to content

jvillalba007/ml-security

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ml-security

Challenge Seguridad Informática

Task URL Method Response code Response
Obtener Ips TOR de Fuentes Externas /listadoips GET 200 Listado en Json de las Ips Obtenidas
Agregar Ip a la Base de Datos /agregarip POST 201 Se agrega Ip a la Base de Datos y se retorna un 201 o en caso de error un 500
Obtener Ips TOR de Fuentes Externas y se filtra con las ip de la Base de Datos /listadoips/filtrado GET 200 Listado en Json de las Ips quitando las que deben ser Filtradas

Resolución realizada en Java 11 con los frameworks Spring Boot, Spring JPA / Hibernate y Scraping Jsoup.

Descripción de las Clases

spring/controller/ControllerSpring.java
Esta Clase de Java se encarga de Gestionar todas las peticiones HTTP / API REST realizadas a los endpoints.

spring/model/IpTor.java
Esta Clase de Java es utilizada principalmente por Spring JPA en los repositorios tiene los atributos necesarios para obtener la información o guardar entidades. Como extra tiene una método que dada un conjunto de ips y el repositorio filtra las ip de la base de datos.

spring/repository/IpTorRepository.java
Repositorio de Spring JPA una interfaz que implementa las funcionalidades CRUD hacia la Base de Datos.

spring/scraping/Scraping_all_IPSTor.java
Lógica a alto nivel que dada un array de Website, los recorre y les solicita que agregue su list de la ip disponibles en esa fuente. Cada Website implementa una interface agregarIPsFuenteExterna(ArrayList listadoIps), ya que cada sitio implementara como hara el scraping particular y lo agregara al array que le dio Scraping_all_IPSTor.

spring/MLWebApplication.java
Clase main que inicia el Spring Boot.

ml-security/src/main/resources/application.properties
Datos de la Base de Datos hosteada en Cloud SQL en Google Cloud Platform utilizada por Spring JPA / Hibernate.

Despliegue en Google Cloud

Base de Datos MySQL 5.7, desplegada en Google Cloud SQL
Tipo de Instancia: db-f1-micro (1 vCPUs, 614mb RAM, 10 GB HDD), Zona: us-east1-c

Aplicación Desplegada en Google Cloud Run conectado a este Repositorio GitHub
(1 vCPUs, 1 Gb RAM, Autoscaling: 1 min - 3 max instancias)
https://ml-security-hmp5yfvfla-ue.a.run.app

GET https://ml-security-hmp5yfvfla-ue.a.run.app/listadoips
POST https://ml-security-hmp5yfvfla-ue.a.run.app/agregarip (Colocar en raw en el body el número de ip a agregar)
GET https://ml-security-hmp5yfvfla-ue.a.run.app/listadoips/filtrado

About

Challenge MercadoLibre Seguridad Informática

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published