@@ -20,9 +20,11 @@ import java.net.InetAddress
2020
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 .util .ByteString
2526import de .upb .cs .swt .delphi .instancemanagement .InstanceEnums .{ComponentType , InstanceState }
27+ import de .upb .cs .swt .delphi .webapi .authorization .AuthProvider
2628import de .upb .cs .swt .delphi .webapi .{AppLogging , Configuration , _ }
2729import spray .json ._
2830
@@ -92,7 +94,10 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging {
9294 method = HttpMethods .POST ,
9395 configuration.instanceRegistryUri + ReportOperationType .toOperationUriString(operationType, id))
9496
95- Await .result(Http (system).singleRequest(request) map { response =>
97+ val useGenericNameForToken = operationType == ReportOperationType .Start // Must use generic name for startup, no id known at that point
98+
99+ Await .result(Http (system).singleRequest(request.withHeaders(RawHeader (" Authorization" ,
100+ s " Bearer ${AuthProvider .generateJwt(useGenericName = useGenericNameForToken)}" ))) map { response =>
96101 if (response.status == StatusCodes .OK ) {
97102 log.info(s " Successfully reported ${operationType.toString} to Instance Registry. " )
98103 Success ()
@@ -146,7 +151,7 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging {
146151 configuration.instanceRegistryUri +
147152 s " /matchingInstance?Id= ${configuration.assignedID.getOrElse(- 1 )}&ComponentType=ElasticSearch " )
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 try {
@@ -189,7 +194,7 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging {
189194 configuration.instanceRegistryUri +
190195 s " /matchingResult?CallerId= ${configuration.assignedID.getOrElse(- 1 )}&MatchedInstanceId= $idToPost&MatchingSuccessful= $isElasticSearchReachable" )
191196
192- Await .result(Http (system).singleRequest(request) map { response =>
197+ Await .result(Http (system).singleRequest(request.withHeaders( RawHeader ( " Authorization " , s " Bearer ${ AuthProvider .generateJwt()} " )) ) map { response =>
193198 if (response.status == StatusCodes .OK ) {
194199 log.info(s " Successfully posted matching result to Instance Registry. " )
195200 Success ()
@@ -216,7 +221,7 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging {
216221
217222 val request = HttpRequest (method = HttpMethods .POST , configuration.instanceRegistryUri + s " /deregister?Id= $id" )
218223
219- Await .result(Http (system).singleRequest(request) map { response =>
224+ Await .result(Http (system).singleRequest(request.withHeaders( RawHeader ( " Authorization " , s " Bearer ${ AuthProvider .generateJwt()} " )) ) map { response =>
220225 if (response.status == StatusCodes .OK ) {
221226 log.info(" Successfully deregistered from Instance Registry." )
222227 Success ()
@@ -237,7 +242,8 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging {
237242 def postInstance (instance : Instance , uri : String )(): Future [HttpResponse ] = {
238243 try {
239244 val request = HttpRequest (method = HttpMethods .POST , uri = uri, entity = instance.toJson(instanceFormat).toString())
240- Http (system).singleRequest(request)
245+ // Use generic name for startup, no id present at this point
246+ Http (system).singleRequest(request.withHeaders(RawHeader (" Authorization" ,s " Bearer ${AuthProvider .generateJwt(useGenericName = true )}" )))
241247 } catch {
242248 case dx : DeserializationException =>
243249 log.warning(s " Failed to deregister to Instance Registry, exception: $dx" )
0 commit comments