Skip to content

Commit d1456b1

Browse files
committed
Use case-insensitive DPoP scheme check
1 parent ca808fe commit d1456b1

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

extensions/oidc/runtime/src/main/java/io/quarkus/oidc/runtime/BearerAuthenticationMechanism.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ private static void setCertificateThumbprint(RoutingContext context, OidcTenantC
6060
}
6161

6262
private static void setDPopProof(RoutingContext context, OidcTenantConfig oidcTenantConfig, String token) {
63-
if (OidcConstants.DPOP_SCHEME.equals(oidcTenantConfig.token().authorizationScheme())) {
63+
if (OidcUtils.isDPoPScheme(oidcTenantConfig.token().authorizationScheme())) {
6464

6565
List<String> proofs = context.request().headers().getAll(OidcConstants.DPOP_SCHEME);
6666
if (proofs == null || proofs.isEmpty()) {

extensions/oidc/runtime/src/main/java/io/quarkus/oidc/runtime/OidcUtils.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -916,4 +916,8 @@ public static String decryptToken(TenantConfigContext resolvedContext, String to
916916
}
917917
return token;
918918
}
919+
920+
public static boolean isDPoPScheme(String authorizationScheme) {
921+
return OidcConstants.DPOP_SCHEME.equalsIgnoreCase(authorizationScheme);
922+
}
919923
}

extensions/oidc/runtime/src/test/java/io/quarkus/oidc/runtime/OidcUtilsTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,15 @@
3333

3434
public class OidcUtilsTest {
3535

36+
@Test
37+
public void testDpopScheme() throws Exception {
38+
39+
assertTrue(OidcUtils.isDPoPScheme("DPoP"));
40+
assertTrue(OidcUtils.isDPoPScheme("dpop"));
41+
assertFalse(OidcUtils.isDPoPScheme("pop"));
42+
43+
}
44+
3645
@Test
3746
public void testGetSingleSessionCookie() throws Exception {
3847

0 commit comments

Comments
 (0)