Skip to content

Commit 381cfa1

Browse files
authored
Removed futures from controller and amended tests (#139)
1 parent 12de169 commit 381cfa1

File tree

4 files changed

+156
-188
lines changed

4 files changed

+156
-188
lines changed

api/src/main/scala/za/co/absa/loginsvc/rest/controller/TokenController.scala

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,13 @@ import za.co.absa.loginsvc.rest.model.{KerberosUserDetails, PublicKey, PublicKey
3333
import za.co.absa.loginsvc.rest.service.jwt.JWTService
3434
import za.co.absa.loginsvc.utils.OptionUtils.ImplicitBuilderExt
3535

36-
import java.util.concurrent.CompletableFuture
3736
import java.util.{Base64, Optional}
38-
import scala.concurrent.Future
39-
import scala.concurrent.duration.FiniteDuration
4037

4138

4239
@RestController
4340
@RequestMapping(Array("/token"))
4441
class TokenController @Autowired()(jwtService: JWTService, experimentalConfigProvider: ExperimentalRestConfigProvider) {
4542

46-
private lazy val refreshExpDuration: FiniteDuration = jwtService.getConfiguredRefreshExpDuration
4743
private lazy val experimentalRestConfig = experimentalConfigProvider.getExperimentalRestConfig
4844

4945
import za.co.absa.loginsvc.utils.implicits._
@@ -74,7 +70,7 @@ class TokenController @Autowired()(jwtService: JWTService, experimentalConfigPro
7470
@ResponseStatus(HttpStatus.OK)
7571
@SecurityRequirement(name = "basicAuth")
7672
@SecurityRequirement(name = "negotiate")
77-
def generateToken(authentication: Authentication, @RequestParam("group-prefixes") groupPrefixes: Optional[String]): CompletableFuture[TokensWrapper] = {
73+
def generateToken(authentication: Authentication, @RequestParam("group-prefixes") groupPrefixes: Optional[String]): TokensWrapper = {
7874

7975
val user: User = authentication.getPrincipal match {
8076
case u: User => u
@@ -90,7 +86,7 @@ class TokenController @Autowired()(jwtService: JWTService, experimentalConfigPro
9086

9187
val accessJwt = jwtService.generateAccessToken(filteredGroupsUser)
9288
val refreshJwt = jwtService.generateRefreshToken(filteredGroupsUser)
93-
Future.successful(TokensWrapper.fromTokens(accessJwt, refreshJwt))
89+
TokensWrapper.fromTokens(accessJwt, refreshJwt)
9490
}
9591

9692
@Tags(Array(new Tag(name = "token")))
@@ -119,7 +115,7 @@ class TokenController @Autowired()(jwtService: JWTService, experimentalConfigPro
119115
@ResponseStatus(HttpStatus.OK)
120116
@SecurityRequirement(name = "basicAuth")
121117
@SecurityRequirement(name = "negotiate")
122-
def generateTokenExperimentalGet(authentication: Authentication, @RequestParam("group-prefixes") groupPrefixes: Optional[String]): CompletableFuture[TokensWrapper] = {
118+
def generateTokenExperimentalGet(authentication: Authentication, @RequestParam("group-prefixes") groupPrefixes: Optional[String]): TokensWrapper = {
123119
failIfExperimentalIsNotAllowed()
124120

125121
val user: User = authentication.getPrincipal match {
@@ -136,7 +132,7 @@ class TokenController @Autowired()(jwtService: JWTService, experimentalConfigPro
136132

137133
val accessJwt = jwtService.generateAccessToken(filteredGroupsUser)
138134
val refreshJwt = jwtService.generateRefreshToken(filteredGroupsUser)
139-
Future.successful(TokensWrapper.fromTokens(accessJwt, refreshJwt))
135+
TokensWrapper.fromTokens(accessJwt, refreshJwt)
140136
}
141137

142138
@Tags(Array(new Tag(name = "token")))
@@ -168,9 +164,9 @@ class TokenController @Autowired()(jwtService: JWTService, experimentalConfigPro
168164
produces = Array(MediaType.APPLICATION_JSON_VALUE)
169165
)
170166
@ResponseStatus(HttpStatus.OK)
171-
def refreshToken(@RequestBody tokens: TokensWrapper): CompletableFuture[TokensWrapper] = {
167+
def refreshToken(@RequestBody tokens: TokensWrapper): TokensWrapper = {
172168
val (refreshedAccessToken, refreshedRefreshToken) = jwtService.refreshTokens(tokens.accessToken, tokens.refreshToken)
173-
Future.successful(TokensWrapper.fromTokens(refreshedAccessToken, refreshedRefreshToken))
169+
TokensWrapper.fromTokens(refreshedAccessToken, refreshedRefreshToken)
174170
}
175171

176172
@Tags(Array(new Tag(name = "token")))
@@ -191,10 +187,10 @@ class TokenController @Autowired()(jwtService: JWTService, experimentalConfigPro
191187
produces = Array(MediaType.APPLICATION_JSON_VALUE)
192188
)
193189
@ResponseStatus(HttpStatus.OK)
194-
def getPublicKey(): CompletableFuture[PublicKey] = {
190+
def getPublicKey(): PublicKey = {
195191
val (publicKey, _) = jwtService.publicKeys
196192
val publicKeyBase64 = Base64.getEncoder.encodeToString(publicKey.getEncoded)
197-
Future.successful(PublicKey(publicKeyBase64))
193+
PublicKey(publicKeyBase64)
198194
}
199195

200196
@Tags(Array(new Tag(name = "token")))
@@ -204,7 +200,7 @@ class TokenController @Autowired()(jwtService: JWTService, experimentalConfigPro
204200
responses = Array(
205201
new ApiResponse(responseCode = "200", description = "Payload containing current and previous public keys is returned",
206202
content = Array(new Content(
207-
schema = new Schema(implementation = classOf[PublicKey]),
203+
schema = new Schema(implementation = classOf[PublicKeySet]),
208204
examples = Array(new ExampleObject(value = "{\n \"keys\": [\n {\n \"key\": \"ABCDEFGH1234\"\n}\n]\n}")))
209205
)
210206
)
@@ -215,12 +211,12 @@ class TokenController @Autowired()(jwtService: JWTService, experimentalConfigPro
215211
produces = Array(MediaType.APPLICATION_JSON_VALUE)
216212
)
217213
@ResponseStatus(HttpStatus.OK)
218-
def getAllPublicKeys(): CompletableFuture[PublicKeySet] = {
214+
def getAllPublicKeys(): PublicKeySet = {
219215
val (primaryPublicKey, optionalPublicKey) = jwtService.publicKeys
220216
val currentPublicKey = PublicKey(Base64.getEncoder.encodeToString(primaryPublicKey.getEncoded))
221217
val previousPublicKey = optionalPublicKey.map(pk =>
222218
PublicKey(Base64.getEncoder.encodeToString(pk.getEncoded)))
223-
Future.successful(PublicKeySet(keys = currentPublicKey :: previousPublicKey.toList))
219+
PublicKeySet(keys = currentPublicKey :: previousPublicKey.toList)
224220
}
225221

226222
@Tags(Array(new Tag(name = "token")))
@@ -235,11 +231,11 @@ class TokenController @Autowired()(jwtService: JWTService, experimentalConfigPro
235231
produces = Array(MediaType.APPLICATION_JSON_VALUE)
236232
)
237233
@ResponseStatus(HttpStatus.OK)
238-
def getPublicKeyJwks(): CompletableFuture[Map[String, AnyRef]] = {
234+
def getPublicKeyJwks(): Map[String, AnyRef] = {
239235
val jwk = jwtService.jwks
240236

241237
import scala.collection.JavaConverters._
242-
Future.successful(jwk.toJSONObject(true).asScala.toMap)
238+
jwk.toJSONObject(true).asScala.toMap
243239
}
244240

245241
private def failIfExperimentalIsNotAllowed(): Unit = {

api/src/main/scala/za/co/absa/loginsvc/rest/model/PublicKey.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,4 @@ case class PublicKey(
2525
@Schema(example = "ABCDEFGH1234", requiredMode = RequiredMode.REQUIRED,
2626
description = "The public key currently signing JWTs")
2727
key: String
28-
) extends AnyVal
28+
)

api/src/main/scala/za/co/absa/loginsvc/rest/model/PublicKeySet.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,4 @@ case class PublicKeySet(
2929
{"key": "ZYXWVUT9876"},
3030
]""")
3131
keys: List[PublicKey]
32-
) extends AnyVal
32+
)

0 commit comments

Comments
 (0)