Skip to content

Commit 94d4175

Browse files
authored
Require io.vertx.auth.common module (vert-x3#2716)
Currently, io.vertx.auth.common is required only for compilation. However, it contains the io.vertx.ext.auth.audit.SecurityAudit class, that is used in io.vertx.ext.web.impl.RoutingContextImplBase. Consequently, if users don't add the module requirement in their application, it fails when the first request is sent with: Feb 07, 2025 10:54:29 AM io.vertx.core.impl.ContextImpl SEVERE: Unhandled exception java.lang.NoClassDefFoundError: Lio/vertx/ext/auth/audit/SecurityAudit; at java.base/java.lang.Class.getDeclaredFields0(Native Method) at java.base/java.lang.Class.privateGetDeclaredFields(Class.java:3061) at java.base/java.lang.Class.getDeclaredField(Class.java:2409) at java.base/java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl$1.run(AtomicIntegerFieldUpdater.java:398) at java.base/java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl$1.run(AtomicIntegerFieldUpdater.java:396) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.<init>(AtomicIntegerFieldUpdater.java:395) at java.base/java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdater.java:94) at io.vertx.web@5.0.0.CR4/io.vertx.ext.web.impl.RoutingContextImplBase.<clinit>(RoutingContextImplBase.java:43) So this is a buggy module declaration, because Auth Common is not only required by Vert.x Web during compilation, it's required at runtime. Signed-off-by: Thomas Segismont <tsegismont@gmail.com>
1 parent 2fe3a35 commit 94d4175

3 files changed

Lines changed: 3 additions & 3 deletions

File tree

vertx-web-openapi-router/src/main/java/module-info.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
requires static io.vertx.codegen.json;
2020
requires static io.vertx.docgen;
2121

22-
requires static io.vertx.auth.common; // Examples
2322
requires static io.vertx.auth.oauth2; // Examples
2423
requires static io.vertx.auth.jwt; // Examples
2524

vertx-web-openapi-router/src/test/java/module-info.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
requires org.junit.jupiter.params;
99
requires truth;
1010
requires org.mockito;
11-
requires io.vertx.auth.common;
1211
requires static io.vertx.auth.oauth2;
1312
requires static io.vertx.auth.jwt;
1413
exports io.vertx.router.test.base;

vertx-web/src/main/java/module-info.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@
2929
requires io.netty.codec.http;
3030
requires com.fasterxml.jackson.core;
3131

32-
requires static io.vertx.auth.common;
32+
// Required by Vert.x Web even when no Vert.x Auth handler is used
33+
requires io.vertx.auth.common;
34+
3335
requires static io.vertx.auth.htdigest;
3436
requires static io.vertx.auth.jwt;
3537
requires static io.vertx.auth.otp;

0 commit comments

Comments
 (0)