Spring Boot REST API protegida con JWT
Proteger un API REST con JWT es una tarea tediosa y, normalmente, es bastante similar en la mayoría de los proyectos. Para evitarnos esta tediosa tarea he desarrollado un generador para Yeoman, generator-spring-rest-jwt, que automáticamente genera la estructura de un API REST desarrollada con Spring Boot y protegida con JWT.
El primer paso es instalar Yeoman y el generador:
1 2 |
npm install -g yo npm install -g generator-spring-rest-jwt |
Después, tienes que generar el proyecto con la siguiente instrucción:
1 |
yo spring-rest-jwt |
Una vez creado el proyecto, puedes obtener un token de acceso utilizando las siguiente cuentas:
1 2 3 |
Admin - admin:admin User - user:password Disabled - disabled:password (this user is disabled) |
El generador ha creado los siguientes endpoints:
1 2 3 |
/auth - endpoint de autenticación de acceso público y utilizado para obtener un token /user - muestra información del usuario logueado /admin - endpoint restringido al que sólo tienen acceso aquellos usuarios que tienen asignado el rol ADMIN |
Si quieres obtener un token para el usuario admin, tienes que enviar una petición POST al endpoint /auth con el siguiente JSON en el cuerpo de la petición:
1 2 3 4 |
{ "username": "admin", "password": "admin" } |
Obtendrás un token de acceso que podrás utilizar pasándolo en las cabeceras de las peticiones que realices:
1 |
Authorization: eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ1c2VyIiwiYXVkaWVuY2UiOiJ3ZWIiLCJjcmVhdGVkIjoxNDg0OTE4NjA2ODMwLCJleHAiOjE0ODU1MjM0MDZ9.ghLIqZM0wgWmL_a6_OGYjuwtaDUDbQaBFGndkfy2DNwDgu05vuoW_d6aS9iCNsi6Ajxjr8rOEYlV7QFALA9seQ |
Creando nuevos endpoints
Si quieres crear nuevos endpoints puedes ejecutar la siguiente instrucción dentro del directorio del proyecto:
1 |
yo spring-rest-jwt:resource |
Esta instrucción generará una Entidad básica, un repositorio JPA y un REST Controlloer con operaciones CRUD.
Comentarios recientes