I'm trying to access the Bearer token from the Authorization header in my REST service class, but I'm getting a 500 Internal Server Error when I try to use %request.GetCgiEnv("HTTP_AUTHORIZATION").
My Environment:
- InterSystems ensemble 2018
- Using
EnsLib.REST.Servicewith HTTP Inbound Adapter - REST API URL:
http://ip:port/api-kiosk/patientData
My Code:
objectscript
Class CIS.PATIENT.ReadPatientData Extends EnsLib.REST.Service
{
Parameter ADAPTER = "EnsLib.HTTP.InboundAdapter";
Parameter HandleCorsRequest = 1;
XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ]
{
<Routes>
<Route Url="/patientData" Method="POST" Call="getPatientData"/>
</Routes>
}
Parameter EnsServicePrefix = "|api-kiosk";
Method getPatientData(pInput As %Library.AbstractStream, Output pOutput As %Stream.Object,
pPersonType As %String, pKeyField As %String, pKeyVal As %String,
pGetField As %String = "") As %Status
{
Set tSC = $$$OK
Try {
Set reqData = pInput.Read(,.tSC)
// This line causes 500 Internal Server Error
Set authHeader = %request.GetCgiEnv("HTTP_AUTHORIZATION")
// ... rest of my logic
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
}
}.png)
.jpg)
.png)
.png)
.png)
.png)
.png)

