Skip to content

felipeandradevalenzuela/Ejercicio-Java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ejercicio-Java

Problema

Debemos crear endpoints donde los usuarios puedan ser activados o desactivados, estos tambien pueden registrarse y acceder.

Solución propuesta

Utilizaremos JWT para aplicar una capa de seguridad a los endpoints privados que realizaran modificaciones utilizando distintas dependencias que nos ayudaran en el flujo que se muestra a continuación: diagramaF

Instalación

Sigue estos pasos para instalar y ejecutar el proyecto:

  1. Clona el repositorio: git clone https://github.com/felipeandradevalenzuela/Ejercicio-Java.git
  2. Navega al directorio del proyecto: cd spring-boot-jwt-authenticadion
  3. Construye el proyecto usando Maven: mvn clean install
  4. Ejecuta el proyecto: mvn spring-boot:run
  5. Prueba la API Rest utilizando Postman u otra aplicación en http://localhost:8080.
  6. Para acceder a la consola de H2 basta con ingresar a http://localhost:8080/h2-console
    • Asignar el datasource: jdbc:h2:mem:testdb
    • Ingresar con el usuario: sa
    • No requiere contraseña

Pruebas

Esto te llevará a la página de inicio de la aplicación, donde podrás comenzar a utilizarla.

Para revisar los endpoint y schemas mediante Swagger puedes visitar:

http://localhost:8080/doc/swagger-ui/index.html

Para la creación de usuarios puedes hacer un Post directamente a:

Aquí adjunto un curl para que cargues usuarios.

curl --location 'http://localhost:8080/auth/register' \
--header 'Content-Type: application/json' \
--header 'Cookie: JSESSIONID=E3E9BA37A02DCA9DBD20B80C3B113940' \
--data-raw '{
"name": "Pedro Test",
"email": "[email protected]",
"password": "Testing123!",
"phones": [
{
"number": "1212",
"cityCode": "1",
"countryCode": "57"
},
{
"number": "2323",
"cityCode": "25",
"countryCode": "27"
},
{
"number": "4242",
"cityCode": "3",
"countryCode": "87"
}
]
}
'

Si deseas ingresar puedes acceder mediante la url:

Agregando el password y username (correo) que agregaste en tu registro. Esto cambiara tu last_login y actualizara tu Token JWT.

curl --location 'http://localhost:8080/auth/login' \
--header 'Content-Type: application/json' \
--data-raw '{
    "username": "[email protected]",
    "password": "Testing123!"
}
'

** Para utilizar endpoints seguros: Debe guardar el Token entregado en la respuesta de la creación o Login respectivamente y hacer un request de este estilo:

*** es importante modificar el token de autorización, o no podras acceder a endpoints privados

Recuerda que los endpoint para ver usuarios son:

curl --location --request GET 'http://localhost:8080/user/all' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJwdGVzdEBnbWFpbC5vcmciLCJpYXQiOjE3MDE0MTU1NzAsImV4cCI6MTcwMTUwMTk3MH0._91J_pLDFPvd96L3fedK0A-x-WILOn1T_I3yTQqpFQQ' \
--data-raw '{
    "email": "[email protected]",
    "password": "Testing123!"
}'

** Para realizar activaciones o desactivaciones de usuario solo basta enviar el token de autorización y las credenciales de acceso en los endpoint privados:

** Considera que estamos utilizando metodos POST para activar y desactivar Este endpoint cambiara el estado de ese usuario y a su vez actualizara la fecha de modificación.

curl --location 'http://localhost:8080/user/deactivate/7e3faaab-3a0d-476b-b7dd-e9d3ef7aad1f' \
--header 'Content-Type: text/plain' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJtbGF6Y2Fub0BnbWFpbC5vcmciLCJpYXQiOjE3MDE0MTE3MjIsImV4cCI6MTcwMTQ5ODEyMn0.7xKjUUmmlp9pBSKpzgOcfvKURzjoLeuWuWdNf9yAihk' \
--data-raw '{
    "email": "[email protected]",
    "password": "Testing123!"
}'

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages