@@ -20,9 +20,11 @@ import java.net.InetAddress
2020import akka .actor .ActorSystem
2121import akka .http .scaladsl .Http
2222import akka .http .scaladsl .model ._
23+ import akka .http .scaladsl .model .headers .RawHeader
2324import akka .http .scaladsl .unmarshalling .Unmarshal
2425import akka .stream .ActorMaterializer
2526import akka .util .ByteString
27+ import authorization .AuthProvider
2628import utils .instancemanagement .InstanceEnums .{ComponentType , InstanceState }
2729import utils .{AppLogging , CommonHelper , Configuration }
2830
@@ -93,7 +95,10 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging
9395 method = HttpMethods .POST ,
9496 configuration.instanceRegistryUri + ReportOperationType .toOperationUriString(operationType, id))
9597
96- Await .result(Http (system).singleRequest(request) map {response =>
98+ val useGenericNameForToken = operationType == ReportOperationType .Start // Must use generic name for startup, no id known at that point
99+
100+ Await .result(Http (system).singleRequest(request.withHeaders(RawHeader (" Authorization" ,
101+ s " Bearer ${AuthProvider .generateJwt(useGenericName = useGenericNameForToken)}" ))) map { response =>
97102 if (response.status == StatusCodes .OK ){
98103 log.info(s " Successfully reported ${operationType.toString} to Instance Registry. " )
99104 Success ()
@@ -146,7 +151,7 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging
146151 val request = HttpRequest (method = HttpMethods .GET , configuration.instanceRegistryUri +
147152 s " /matchingInstance?Id= ${configuration.assignedID.getOrElse(- 1 )}&ComponentType=WebApi " )
148153
149- Await .result(Http (system).singleRequest(request) map {response =>
154+ Await .result(Http (system).singleRequest(request.withHeaders( RawHeader ( " Authorization " , s " Bearer ${ AuthProvider .generateJwt()} " )) ) map {response =>
150155 response.status match {
151156 case StatusCodes .OK =>
152157 val instanceString : String = Await .result(response.entity.dataBytes.runFold(ByteString (" " ))(_ ++ _).map(_.utf8String), 5 seconds)
@@ -187,7 +192,7 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging
187192 configuration.instanceRegistryUri +
188193 s " /matchingResult?CallerId= ${configuration.assignedID.getOrElse(- 1 )}&MatchedInstanceId= $idToPost&MatchingSuccessful= $isWebApiReachable" )
189194
190- Await .result(Http (system).singleRequest(request) map {response =>
195+ Await .result(Http (system).singleRequest(request.withHeaders( RawHeader ( " Authorization " , s " Bearer ${ AuthProvider .generateJwt()} " )) ) map {response =>
191196 if (response.status == StatusCodes .OK ){
192197 log.info(" Successfully posted matching result to Instance Registry." )
193198 Success ()
@@ -235,7 +240,7 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging
235240
236241 val request = HttpRequest (method = HttpMethods .POST , configuration.instanceRegistryUri + s " /deregister?Id= $id" )
237242
238- Await .result(Http (system).singleRequest(request) map {response =>
243+ Await .result(Http (system).singleRequest(request.withHeaders( RawHeader ( " Authorization " , s " Bearer ${ AuthProvider .generateJwt()} " )) ) map {response =>
239244 if (response.status == StatusCodes .OK ){
240245 log.info(" Successfully deregistered from Instance Registry." )
241246 Success ()
@@ -255,7 +260,8 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging
255260
256261 def postInstance (instance : Instance , uri : String ) () : Future [HttpResponse ] = {
257262 val request = HttpRequest (method = HttpMethods .POST , uri = uri, entity = instance.toJson(instanceFormat).toString())
258- Try (Http (system).singleRequest(request)) match {
263+ // use generic name for startup, no id present at this point
264+ Try (Http (system).singleRequest(request.withHeaders(RawHeader (" Authorization" ,s " Bearer ${AuthProvider .generateJwt(useGenericName = true )}" )))) match {
259265 case Success (res) =>
260266 res
261267 case Failure (ex) =>
0 commit comments