Skip to content

Commit e1507a7

Browse files
committed
Fix internal integrity key retrieval
1 parent 9d78b65 commit e1507a7

File tree

2 files changed

+14
-11
lines changed

2 files changed

+14
-11
lines changed
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
package org.exploit.keeper.controller.system
22

3+
import jakarta.ws.rs.GET
34
import jakarta.ws.rs.Path
45
import jakarta.ws.rs.Produces
6+
import org.exploit.keeper.model.RawPublicKeyDto
57
import org.exploit.keeper.provider.MessagePackProvider
68
import org.exploit.keeper.service.core.KeeperIntegrityService
79

810
@Path("/v1/integrity")
911
class InternalIntegrityController(private val integrity: KeeperIntegrityService) {
12+
@GET
1013
@Path("/publicKey")
1114
@Produces(MessagePackProvider.MSGPACK_MIME)
12-
fun integrity() = integrity.integrityKey()
15+
fun integrity(): RawPublicKeyDto = integrity.integrityKey()
1316
}

src/main/kotlin/org/exploit/keeper/filter/KeeperAuthFilter.kt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,23 @@ import jakarta.ws.rs.container.ContainerRequestContext
77
import jakarta.ws.rs.container.ContainerRequestFilter
88
import jakarta.ws.rs.ext.Provider
99
import org.exploit.keeper.api.auth.KeeperAuthenticator
10-
import org.exploit.keeper.config.KeeperConfig
10+
import org.exploit.keeper.filter.matcher.AntPathMatcher
1111
import org.exploit.keeper.service.client.TKeeperClients
1212

1313
@Provider
1414
@Priority(Priorities.AUTHENTICATION)
15-
class KeeperAuthFilter(
16-
private val config: KeeperConfig,
17-
private val clients: TKeeperClients
18-
) : ContainerRequestFilter {
15+
class KeeperAuthFilter(private val clients: TKeeperClients) : ContainerRequestFilter {
16+
private val ignoreMatchers = listOf(
17+
AntPathMatcher.of("/v1/keeper/**"),
18+
AntPathMatcher.of("/v1/integrity/**")
19+
)
1920

2021
override fun filter(p0: ContainerRequestContext) {
2122
val path = p0.uriInfo.path
2223

23-
if (path.startsWith("/v1/keeper"))
24-
return
25-
26-
if (config.auth().allowAnonymous())
24+
if (ignoreMatchers.any { it.matches(path) }) {
2725
return
26+
}
2827

2928
val instanceId = p0.getHeaderString(KeeperAuthenticator.HEADER_INSTANCE_ID)
3029
?.toIntOrNull()
@@ -40,8 +39,9 @@ class KeeperAuthFilter(
4039
try {
4140
val client = clients.find(instanceId)
4241

43-
if (!client.verifySignature(signature, path, timestamp))
42+
if (!client.verifySignature(signature, path, timestamp)) {
4443
throw NotAuthorizedException("Signature verification failed")
44+
}
4545
} catch (e: Exception) {
4646
throw NotAuthorizedException("Signature verification failed")
4747
}

0 commit comments

Comments
 (0)