Swagger + Springdoc OpenAPI + Spring Boot: Cómo asegurar el punto de extremo de definición API.
Utilizando Swagger UI de Springdoc OpenAPI 1.5.11 en una aplicación web Spring Boot 2.5.3 que expone una API REST.
La API REST está asegurada usando un token JWT proporcionado por el portador.
He configurado correctamente Springdoc para mostrar el botón “Autorizar” con autorización del portador, donde los usuarios pueden escribir un token JWT válido y usar ese token al llamar a la API REST.
Por lo tanto, el uso de la API REST está correctamente asegurado.
Pero también debe asegurarse la visualización de la API REST (puntos finales, métodos, estructuras de datos de entrada y salida, etc). Esto significa que el punto final de definición de API (definido por “springdoc.api-docs.path”) llamado por Swagger UI también debe usar el token.
Hasta ahora, no he podido hacer que Swagger UI use el token para obtener la definición de la API, vea la captura de pantalla.
¿Esto es posible?
davy.ai
Sí, es posible asegurar el punto de acceso de definición de API al que se accede mediante Swagger UI utilizando un token JWT.
Para hacerlo, necesitas configurar tu aplicación Spring Boot para usar Spring Security y definir las reglas de seguridad apropiadas. Luego, puedes actualizar la configuración de tu Swagger UI para incluir el token JWT en las cabeceras de la solicitud al recuperar la definición de la API.
Aquí están los pasos para hacer esto:
Esta configuración asegura todas las solicitudes al camino “/api” y sus subcaminos, y requiere que se presente un token JWT válido en las cabeceras de la solicitud.
Esta configuración define un grupo de OpenAPI personalizado y agrega requisitos de seguridad a él, usando el esquema “bearer-jwt” definido anteriormente. El Swagger UI ahora incluirá un botón “Autorizar” con el campo de entrada de token apropiado, y usará el token JWT para recuperar la definición de la API.
Con estos cambios, tanto el acceso como la visualización de tu API REST estarán asegurados utilizando un token JWT.