Repository: quarkusio/quarkus
Issue: Using Vert.x Auth, Native image build failures on GraalVM 21.1 with Random/SplittableRandom initialized at build time

## Describe the bug
Using the following Vert.x auth dependency:

```
<dependency>
    <groupId>io.vertx</groupId>
    <artifactId>vertx-auth-jwt</artifactId>
</dependency>
```

I'm aware that other community dependencies might not be working on Native, but unless we should provide workarounds for users to issues like this.

And then using the `io.vertx.ext.auth.jwt.JWTAuth`, for example:

```
@ApplicationScoped
public class JWTHandler {

    @Inject
    JWTAuth jwt;

    public void createJwt(final RoutingContext context) {
        String name = context.request().getParam("name");
        context.response()
                .putHeader("Content-Type", "application/json")
                .end(new JsonObject().put("jwt", jwt.generateToken(defaultClaims(name, "admin"))).encode());
    }
}
```

This fails to build on Native because JWTAuth uses `io.vertx.ext.auth.impl.jose.JWT` which contains a Random static field:

```
07:46:15,797 INFO  [org.jbo.threads] JBoss Threads version 3.4.0.Final
[302-quarkus-vertx-jwt-1.0.0-SNAPSHOT-runner:25]     (clinit):     806,08 ms,  3,80 GB
[302-quarkus-vertx-jwt-1.0.0-SNAPSHOT-runner:25]   (typeflow):  28.646,08 ms,  3,80 GB
[302-quarkus-vertx-jwt-1.0.0-SNAPSHOT-runner:25]    (objects):  38.354,78 ms,  3,80 GB
[302-quarkus-vertx-jwt-1.0.0-SNAPSHOT-runner:25]   (features):   1.552,30 ms,  3,80 GB
[302-quarkus-vertx-jwt-1.0.0-SNAPSHOT-runner:25]     analysis:  71.517,59 ms,  3,80 GB
Error: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Detected an instance of Random/SplittableRandom class in the image heap. Instances created during image generation have cached seed values and don't behave as expected.  To see how this object got instantiated use --trace-object-instantiation=java.util.Random. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Detailed message:
Trace: 
	at parsing io.vertx.ext.auth.impl.jose.JWT.sign(JWT.java:337)
Call path from entry point to io.vertx.ext.auth.impl.jose.JWT.sign(JsonObject, JWTOptions): 
	at io.vertx.ext.auth.impl.jose.JWT.sign(JWT.java:318)
	at io.vertx.ext.auth.jwt.impl.JWTAuthProviderImpl.generateToken(JWTAuthProviderImpl.java:179)
	at io.vertx.ext.auth.jwt.impl.JWTAuthProviderImpl.generateToken(JWTAuthProviderImpl.java:184)
	at io.quarkus.qe.vertx.web.handlers.JWTHandler.createJwt(JWTHandler.java:25)
	at io.quarkus.qe.vertx.web.handlers.JWTHandler_ClientProxy.createJwt(JWTHandler_ClientProxy.zig:149)
	at io.quarkus.qe.vertx.web.Application.lambda$onStart$8(Application.java:81)
	at io.quarkus.qe.vertx.web.Application$$Lambda$1228/0x00000007c16f4040.handle(Unknown Source)
	at io.vertx.core.impl.WorkerContext.lambda$execute$2(WorkerContext.java:103)
	at io.vertx.core.impl.WorkerContext$$Lambda$1340/0x00000007c1729840.run(Unknown Source)
	at java.lang.Thread.run(Thread.java:829)
	at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:553)
	at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:192)
	at com.oracle.svm.core.code.IsolateEnterStub.PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df(generated:0)
```

This is when using GraalVM 21.1, but it worked fine using GraalVM 21.0.

## To Reproduce

Steps to reproduce the behavior:
1. `git clone https://github.com/Sgitario/beefy-scenarios`
2. cd beefy-scenarios
3. git checkout reproducer_17653
4. cd 302-quarkus-vertx-jwt
4. mvn clean verify -Dnative -Dquarkus.native.container-build=true -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-native-image:21.1-java11

## Environment (please complete the following information):
### GraalVM version (if different from Java)
21.1
### Quarkus version or git rev
999-SNAPSHOT (2.x)


Changed files:
extensions/vertx-http/deployment/src/main/java/io/quarkus/vertx/http/deployment/VertxHttpProcessor.java

diff --git a/extensions/vertx-http/deployment/src/main/java/io/quarkus/vertx/http/deployment/VertxHttpProcessor.java b/extensions/vertx-http/deployment/src/main/java/io/quarkus/vertx/http/deployment/VertxHttpProcessor.java
index 73256e4db97..f2b3ce5928e 100644
--- a/extensions/vertx-http/deployment/src/main/java/io/quarkus/vertx/http/deployment/VertxHttpProcessor.java
+++ b/extensions/vertx-http/deployment/src/main/java/io/quarkus/vertx/http/deployment/VertxHttpProcessor.java
@@ -299,8 +299,10 @@ void openSocket(ApplicationStartBuildItem start,
     }
 
     @BuildStep
-    RuntimeInitializedClassBuildItem configureNativeCompilation() {
-        return new RuntimeInitializedClassBuildItem("io.vertx.ext.web.handler.sockjs.impl.XhrTransport");
+    void configureNativeCompilation(BuildProducer<RuntimeInitializedClassBuildItem> runtimeInitializedClasses) {
+        runtimeInitializedClasses
+                .produce(new RuntimeInitializedClassBuildItem("io.vertx.ext.web.handler.sockjs.impl.XhrTransport"));
+        runtimeInitializedClasses.produce(new RuntimeInitializedClassBuildItem("io.vertx.ext.auth.impl.jose.JWT"));
     }
 
     /**