¿De qué manera obtener Authorization Bearer dentro de un Servicio SOAP?
Hola,
Primero agradecer su tiempo y auxilio.
Les explico: estamos enviando una petición REST POST desde el SoapUI, y dentro le incluimos un "Authorization Bearer".
POST http://[IP]:[Port]/aplicaciones/scs/informescctest/Servicios.SOAP.InformesCConcertadosv01r00.cls HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/xml
Authorization: Bearer eyJ0e[...]
SOAPAction: http://SCS.Servicios/InformesCConcertadosv01r00/ResultadosER7
Content-Length: 1871
Host: AAA
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
Nuestra necesidad es obtener el "Authorization Bearer" dentro de un Servicio SOAP. El Adaptador del Servicio es:
Parameter ADAPTER = "EnsLib.SOAP.InboundAdapter";
El servicio Heredad de:
Class Servicios.SOAP.InformesCConcertadosv01r00 Extends (EnsLib.SOAP.Service, ITB.HL7.BS.XMLService) [ ProcedureBlock ]
¿Nos podrían orientar, por favor?
Por favor, ¿nos podrían indicar de qué manera obtener la cabecera "Authorization Bearer" del encabezado HTTP REST POST en 1 Servicio SOAP en Ensemble
Hasta ahora hemos probado:
Method ResultadosER7(mensaje As %Stream.FileCharacter, authorization As %String(MAXLEN="")) As %Stream.FileCharacter [ Final, ProcedureBlock = 1, SoapAction = "http://SCS.Servicios/InformesCConcertadosv01r00/ResultadosER7", SoapBindingStyle = document, SoapBodyUse = literal, WebMethod ]
{
;set token = ##class(%SYS.OAuth2.AccessToken).GetAccessTokenFromRequest(.status)
set token = ..Adapter.%GetParameter("Authorization") ;set token = mensaje.GetAttribute("Authorization")
/*
set secheader = ##class(%SOAP.Security.Header).%New()
Set secheader =..SecurityIn
set user = secheader.FindElement("Authorization",.pos)
;set user = secheader.FindElement("Token",.pos)
;set msg.usuario = user.Username
set token = user.Password.content
*/
$$$LOGINFO("token: "_token)
[...]
}
Hemos investigado las clases:
Además hemos leído:
Por favor, ¿nos podrían indicar de qué manera obtener la cabecera "Authorization Bearer" del encabezado HTTP REST POST en 1 Servicio SOAP en Ensemble
Muchísimas gracias de antemano
Un saludo
Buenos días Yone, ¿has probado con el siguiente comando?
set token = %request.GetCgiEnv("HTTP_AUTHORIZATION"))
Aquí tienes una pregunta de la comunidad similar a la tuya que quizás te resulte interesante:
https://community.intersystems.com/post/get-request-header-rest-api