es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Llamada a la API de servicio Rest de Spring desde un servicio web Rest seguro con OAuth2.

Tengo dos servicios web que son servidores de recursos del mismo servidor de autorización (oauth2).
Ahora quiero que un servicio web llame al endpoint del otro que está asegurado mediante el concededor de credenciales del cliente.
Anteriormente había usado Oauth2RestTemplate para lo mismo, pero ahora no está disponible con la última seguridad de spring 5.
Intenté usar resttemplate que llamará al endpoint oauth2/token con las credenciales del cliente del otro servicio, pero falló.
¿Cuál debería ser el enfoque? Cualquier ayuda al respecto sería genial.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Hay algunas alternativas a considerar:

    1. Usar el WebClient
      En lugar de utilizar RestTemplate, cambie a usar WebClient proporcionado por Spring. Puede crear un bean de WebClient con la configuración OAuth2 adecuada y usarlo para realizar solicitudes al punto final seguro del otro servicio web.
    2. Obtener manualmente el token de acceso
      Si el primer enfoque no es adecuado para su caso de uso, considere obtener manualmente un token de acceso utilizando la concesión de credenciales del cliente. Puede hacer una solicitud POST al punto final de token del servidor de autorización para obtener el token y luego usarlo en los encabezados de solicitud REST.

    3. Usar Spring Cloud Security
      Spring Cloud Security proporciona una biblioteca específica para la gestión de seguridad OAuth2 en microservicios. Si está utilizando Spring Boot, puede configurar y usar fácilmente esta biblioteca para hacer solicitudes autenticadas entre sus microservicios.

    En general, el mejor enfoque dependerá de su caso de uso específico y los requisitos de su sistema.

Comments are closed.