Pregunta
Yone Moreno · Dic 1, 2022

¿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 ]
{    

$$$LOGINFO("Entra en Servicios.SOAP.InformesCConcertadosv01r00.ResultadosER7") // retrieve access token from HTTP request

;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:

EnsLib.SOAP.InboundAdapter

EnsLib.TCP.InboundAdapter

EnsLib.SOAP.Service

Ens.BusinessService

%SOAP.WebService

 

 

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

Product version: IRIS 2020.1
0
0 47
Debate (1)1
Inicie sesión o regístrese para continuar