Skip to content

Commit 85ccf77

Browse files
author
Johannes Duesing
committed
Use id as name for JWT where applicable
1 parent 5cce2b1 commit 85ccf77

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

src/main/scala/de/upb/cs/swt/delphi/instancemanagement/InstanceRegistry.scala

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,10 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging {
9494
method = HttpMethods.POST,
9595
configuration.instanceRegistryUri + ReportOperationType.toOperationUriString(operationType, id))
9696

97-
Await.result(Http(system).singleRequest(request.withHeaders(RawHeader("Authorization",s"Bearer ${AuthProvider.generateJwt()}"))) 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 =>
98101
if (response.status == StatusCodes.OK) {
99102
log.info(s"Successfully reported ${operationType.toString} to Instance Registry.")
100103
Success()
@@ -239,7 +242,8 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging {
239242
def postInstance(instance: Instance, uri: String)(): Future[HttpResponse] = {
240243
try {
241244
val request = HttpRequest(method = HttpMethods.POST, uri = uri, entity = instance.toJson(instanceFormat).toString())
242-
Http(system).singleRequest(request.withHeaders(RawHeader("Authorization",s"Bearer ${AuthProvider.generateJwt()}")))
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)}")))
243247
} catch {
244248
case dx: DeserializationException =>
245249
log.warning(s"Failed to deregister to Instance Registry, exception: $dx")

src/main/scala/de/upb/cs/swt/delphi/webapi/authorization/AuthProvider.scala

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,15 @@ package de.upb.cs.swt.delphi.webapi.authorization
1717

1818
import de.upb.cs.swt.delphi.webapi
1919
import pdi.jwt.{Jwt, JwtAlgorithm, JwtClaim}
20-
import spray.json.{JsArray, JsString}
2120

2221
object AuthProvider {
2322

24-
def generateJwt(validFor: Long = 3): String = {
23+
def generateJwt(validFor: Long = 1, useGenericName: Boolean = false): String = {
2524
val claim = JwtClaim()
2625
.issuedNow
27-
.expiresIn(validFor)
26+
.expiresIn(validFor * 60)
2827
.startsNow
29-
.+("user_id", webapi.configuration.instanceName)
28+
.+("user_id", if (useGenericName) webapi.configuration.instanceName else s"${webapi.configuration.assignedID.get}")
3029
.+("user_type", "Component")
3130

3231

0 commit comments

Comments
 (0)