Instanz von JwtClaimsBuilder in Quarkus-Anwendung kann nicht erstellt werden

Chandan Mishra

Ich arbeite derzeit an der Quarkus-Anwendung. Ich habe einen Authentifizierungsdienst erstellt, der den Benutzer validiert und ein JWT-Token erstellt und nach erfolgreicher Authentifizierung an den Client sendet.

Derzeit habe ich jedoch Probleme beim Erstellen eines JWT-Tokens. Für die Token-Erstellung verwende ich

 <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-smallrye-jwt</artifactId>
 </dependency>

Bitte beziehen Sie sich auf den folgenden Code, der für die Token-Erstellung verwendet wird.

  public static String generateTokenString(PrivateKey privateKey, String kid,
                                         String jsonResName, Map<String, Long> timeClaims) throws Exception {
    JwtClaimsBuilder claims = Jwt.claims(jsonResName);
    long currentTimeInSecs = currentTimeInSecs();
    long exp = timeClaims != null && timeClaims.containsKey(Claims.exp.name())
            ? timeClaims.get(Claims.exp.name()) : currentTimeInSecs + 300;

    claims.issuedAt(currentTimeInSecs);
    claims.claim(Claims.auth_time.name(), currentTimeInSecs);
    claims.expiresAt(exp);

    return claims.jws().signatureKeyId(kid).sign(privateKey);
}

Sobald die obige Methode ausgeführt wurde, wird eine JwtClaimsBuilder claims = Jwt.claims(jsonResName);NullPointerException ausgelöst, da JWT-Ansprüche nicht analysiert werden können.

Bitte beachten Sie die folgenden Protokolle

Caused by: io.smallrye.jwt.build.JwtException: Failure to parse the JWT claims:java.lang.NullPointerException
    at io.smallrye.jwt.build.impl.JwtSigningUtils.parseJwtClaims(JwtSigningUtils.java:358)
    at io.smallrye.jwt.build.impl.JwtClaimsBuilderImpl.parseJsonToClaims(JwtClaimsBuilderImpl.java:279)
    at io.smallrye.jwt.build.impl.JwtClaimsBuilderImpl.<init>(JwtClaimsBuilderImpl.java:37)
    at io.smallrye.jwt.build.impl.JwtProviderImpl.claims(JwtProviderImpl.java:35)
    at io.smallrye.jwt.build.Jwt.claims(Jwt.java:74)
    at com.keepnote.util.JwtUtil.generateTokenString(JwtUtil.java:33)
    at com.keepnote.util.JwtUtil.generateTokenString(JwtUtil.java:28)
    at com.keepnote.services.AuthenticationServiceImpl.generateToken(AuthenticationServiceImpl.java:59)
    at com.keepnote.services.AuthenticationServiceImpl.login(AuthenticationServiceImpl.java:39)
    at com.keepnote.services.AuthenticationServiceImpl_Subclass.login$$superaccessor16(AuthenticationServiceImpl_Subclass.zig:130)
    at com.keepnote.services.AuthenticationServiceImpl_Subclass$$function$$16.apply(AuthenticationServiceImpl_Subclass$$function$$16.zig:33)
    at io.quarkus.arc.impl.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:54)
    at io.quarkus.narayana.jta.runtime.interceptor.TransactionalInterceptorBase.invokeInOurTx(TransactionalInterceptorBase.java:119)
    at io.quarkus.narayana.jta.runtime.interceptor.TransactionalInterceptorBase.invokeInOurTx(TransactionalInterceptorBase.java:92)
    at io.quarkus.narayana.jta.runtime.interceptor.TransactionalInterceptorRequired.doIntercept(TransactionalInterceptorRequired.java:32)
    at io.quarkus.narayana.jta.runtime.interceptor.TransactionalInterceptorBase.intercept(TransactionalInterceptorBase.java:53)
    at io.quarkus.narayana.jta.runtime.interceptor.TransactionalInterceptorRequired.intercept(TransactionalInterceptorRequired.java:26)
    at io.quarkus.narayana.jta.runtime.interceptor.TransactionalInterceptorRequired_Bean.intercept(TransactionalInterceptorRequired_Bean.zig:168)
    at io.quarkus.arc.impl.InterceptorInvocation.invoke(InterceptorInvocation.java:41)
    at io.quarkus.arc.impl.AroundInvokeInvocationContext.perform(AroundInvokeInvocationContext.java:41)
    at io.quarkus.arc.impl.InvocationContexts.performAroundInvoke(InvocationContexts.java:32)
    at com.keepnote.services.AuthenticationServiceImpl_Subclass.login(AuthenticationServiceImpl_Subclass.zig:78)
    at com.keepnote.resources.AuthenticationResource.login(AuthenticationResource.java:36)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167)
    at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
    at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:621)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:487)
    at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:437)
    at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:362)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:439)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:400)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:374)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:67)
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:488)
    ... 20 more
Caused by: java.lang.NullPointerException
    at java.base/java.io.Reader.<init>(Reader.java:167)
    at java.base/java.io.InputStreamReader.<init>(InputStreamReader.java:72)
    at io.smallrye.jwt.build.impl.JwtSigningUtils.readJsonContent(JwtSigningUtils.java:280)
    at io.smallrye.jwt.build.impl.JwtSigningUtils.parseJwtClaims(JwtSigningUtils.java:356)
    ... 57 more


Datei, die übergeben wird.

{
 "iss": "https://quarkus.io/using-jwt-rbac",
 "jti": "a-123",
 "sub": "jdoe-using-jwt-rbac",
 "upn": "[email protected]",
 "preferred_username": "Chandan",
 "aud": "using-jwt-rbac",
 "birthdate": "2001-07-13",
 "roleMappings": {
   "group1": "Group1MappedRole",
   "group2": "Group2MappedRole"
 },
 "groups": [
   "Echoer",
   "Tester",
   "Subscriber",
   "group2"
 ]
}


Oliver Buchmann

Dies ist ein Fehler im Quarkus Dev-Modus. Wird in 1.5.0 behoben. Siehe auch hier: https://github.com/quarkusio/quarkus/issues/9135

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

JsonMappingException: Instanz von kann nicht erstellt werden

Instanz von - Jackson kann nicht erstellt werden

Instanz von AndroidViewModel kann nicht erstellt werden

Instanz von MainViewModel kann nicht mit Hilt erstellt werden

Instanz von ViewModel in Android kann nicht erstellt werden

Eine abgeleitete Instanz von Num kann nicht erstellt werden

Aktivität kann nicht geöffnet werden: Instanz von Android View Model kann nicht erstellt werden

Gcloud-Instanz kann nicht erstellt werden

Konnte JSON nicht lesen: Instanz von `java.util.LinkedHashMap` kann nicht erstellt werden

AWS SDK kann in Spring Boot-Anwendung nicht verwendet werden (Socket nicht von dieser Factory erstellt)

Überwinde "Instanz von InterfaceClass kann nicht erstellt werden", ohne das übergeordnete Element anzudeuten

Android - Fehler "Instanz von kann nicht erstellt werden (obwohl mindestens eine Erstellung vorhanden ist)" mit Retrofit

Instanz von `javax.naming.Name` in jackson kann nicht erstellt werden

Jackson.InvalidDefinitionException: Instanz von java.time.OffsetDateTime in JUnit @BeforeEach kann nicht erstellt werden

Spring Boot - Jersey Client - Jackson Instanz von `java.time.Instant` kann nicht erstellt werden

Eine abgeleitete Instanz von MonadTrans für newtype kann nicht erstellt werden

JSON-Analysefehler: Instanz von "com.example.greetapp.domain.User" kann nicht erstellt werden

JSON: InvalidFormatException: Instanz von int kann nicht aus String-Wert erstellt werden

Instanz von IntentResponse kann nicht erstellt werden. Das validierte Objekt ist null

InvalidDefinitionException: Instanz von `org.slf4j.Logger` kann nicht erstellt werden

Jackson JSON Instanz von "About" kann nicht erstellt werden: Problem deserialisieren

Verwenden von Aurelia UX in einer Cordova-Anwendung (kann nicht für iOS erstellt werden)

Instanz von CKEditor kann nicht abgerufen werden

Instanz einer abstrakten Klasse kann nicht erstellt werden (zufällig)

JSON-Analysefehler: Instanz der Klasse kann nicht erstellt werden

Instanz der ViewModel-Klasse kann nicht erstellt werden

Eine Spot-Instanz-VM kann in Azure nicht erstellt werden

Vue Router-Instanz kann nicht in JavaScript erstellt werden

FxCopAnalyzers: Eine Instanz des Analysators kann nicht erstellt werden