Avalados por :

Problema de autenticación Http en servicio RESTful implementado con Jersey: ¿Cómo solucionarlo?

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 2 Vistas
0
Loading...

Hola,

Estoy implementando un servicio web RESTful que puede ser utilizado por la aplicación SMP para la autenticación a través de la autenticación Http.

El servicio está escrito utilizando Jersey (Java) y utiliza autenticación básica. He probado este servicio usando Advance Rest Client en Chrome tanto para los métodos Get como Post.

Tenemos SMP 3.0 SP05 instalado y hemos configurado la aplicación en SMP para usar el servicio anterior para la autenticación Http.

Mientras uso Advance Rest Client, puedo depurar el servicio y confirmar que todo funciona correctamente, pero cuando la conexión se realiza a través de la aplicación presente en SMP, el valor de @HeaderParam("Authorization") aparece como "Null".

public Response rmcGetMobileAppLogin(@HeaderParam("Authorization") String authString) // authString aparece como null

No estoy seguro de qué podría estar mal y por qué la cadena de Base64 de Autorización no está llegando. Si configuro la seguridad como Admin y luego compruebo a través de Advance Rest Client usando el nombre de usuario y la contraseña de Admin, la conexión es exitosa pero no funciona con la autenticación http.

Cualquier indicación al respecto será útil.

Se adjuntan algunas capturas de pantalla para dar más información.

Saludos,

Amit

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Loading...

Sí, puedo acceder a http://smpserver:8087/ en el navegador. He puesto un punto de interrupción en el webservice para ver si la solicitud llega hasta el webservice o no.

Cada vez que uso el cliente REST, el punto de depuración en el webservice se activa, pero el parámetro de autorización es nulo.

Sí, también puedo hacer ping al backend.

Estoy enviando el encabezado http de autorización con el nombre de usuario y contraseña codificados en base64 al enviar la solicitud, como se puede ver en las imágenes adjuntas.

No estamos utilizando ningún mecanismo SSO y mantenemos la autenticación limitada a la autenticación básica. ¿Debería ser el valor de la pestaña backend SSO? Actualmente es Básico.

No hay servidor proxy SMP y el webservice se están ejecutando en el mismo sistema por ahora, y como se mencionó anteriormente, el punto de interrupción se activa cada vez que llega una solicitud a través de SMP.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Loading...

¿Puedes acceder a http://smpserver:8087 en el cliente REST/navegador?

¿Puedes hacer ping al ID de aplicación creado en el panel de administración? Deberías ver "servidor backend alcanzado exitosamente"


Estoy enviando el valor del encabezado de Autorización a través del cliente REST, ¿hay algún otro lugar donde deba proporcionar credenciales?

Me refiero a un WS restful con usuario y contraseña para el valor del encabezado de Autorización ya que has configurado un perfil de seguridad de autenticación HTTP contra el ID de la aplicación.

¿Puedes también verificar

  • ¿Qué mecanismo de SSO has añadido en la pestaña BACKEND? Debería ser SSO2
  • ¿Puedes acceder a la URL configurada en el perfil de seguridad de autenticación HTTP? ¿Hay algún servidor proxy involucrado?

Saludos,

J

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Loading...

Gracias Jitendra por la respuesta rápida.

Sí, debido a un conflicto de puertos, he movido el puerto Http a 8087.

El enlace que compartiste es la referencia que usé para probar la conectividad de la aplicación y, desafortunadamente, incluso después de seguir eso, no pude resolver el problema.

" Dado que estás usando autenticación HTTP, debes proporcionar credenciales de backend para el encabezado de AUTORIZACIÓN. "

No estoy seguro de si entiendo la declaración anterior. Estoy enviando el valor del encabezado de Autorización a través del cliente REST, ¿hay algún otro lugar donde necesite proporcionar credenciales?

Por favor, amplía.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Loading...

Hola Amit,

¿Has configurado explícitamente el puerto 8087 (para https)? Por defecto, debería ser 8080 (para http) la solicitud.

Echa un vistazo aquí

Dado que estás utilizando autenticación HTTP, debes proporcionar credenciales de backend para el encabezado de AUTORIZACIÓN.

Saludos,

JK

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?