msf4j JWTAccessTokenBuilder выбрасывает исключение ClassNotFoundException - PullRequest
0 голосов
/ 16 мая 2019

Я использую wso2is версии 5.7 и попытался реализовать TokenGenerator на основе msf4j JWTAccessTokenBuilder.

Мой файл identity.xml включает

com.wso2.jwt.token.builder.JWTAccessTokenBuilder org.wso2.carbon.identity.oauth.tokenvaluegenerator.SHA256Generator

Когда я вхожу, возникает исключение

[2019-05-16 18: 27: 18,163] ОШИБКА {org.apache.catalina.core.StandardWrapperValve} - Servlet.service () для сервлета [OAuth2Endpoints] в контексте с путем [/ oauth2] вызвало исключение java.lang.RuntimeException: org.apache.cxf.interceptor.Fault: com / nimbusds / jwt / ReadOnsJSorg.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage (AbstractFaultChainInitiatorObserver.java:116)
в org.apache.cxf.phase.PhaseInterceptorChain.transport.ChainInitiationObserver.onMessage (ChainInitiationObserver.java:121)
в org.apache.cxf.transport.http.AbstractHTTPDestination.invoke (AbstractHTTPDestination.java:249)
в org.tache.sport.servlet.ServletController.invokeDestination (ServletController.java:248)
...
в org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61)
вjava.lang.Thread.run (Thread.java:748) Причина: org.apache.cxf.interceptor.Fault:
com / nimbusds / jwt / ReadOnlyJWTClaimsSet
на org.apache.cxf.service.invoker.AbstractInvoker.createFault (AbstractInvoker.java:170)
в org.apache.cxf.service.invoker.AbstractInvoker.invoke (AbstractInvoker.java:136)
в org.apache.cxf.jaxrs.JAXRSkevin.(JAXRSInvoker.java:204)
в org.apache.cxf.jaxrs.JAXRSInvoker.invoke (JAXRSInvoker.java:101)
в org.apache.cxf.interceptor.ServiceInvokerInterceptor $ 1.run: служба InInceptor.58)
в org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage (ServiceInvokerInterceptor.java:94)
в org.apache.cxf.phase.PhaseInterceptorChain.doIntercept (PhaseIntercept31: 27.in.hain).. еще 49 Вызвано: java.lang.NoClassDefFoundError: com / nimbusds / jwt / ReadOnlyJWTClaimsSet
в java.lang.Class.getDeclaredConstructors0 (собственный метод)
в java.lang.Class.privateGetDeclaredConstructors (Class.java:2671 * * 10 * 35 *)* at java.lang.reflect.Method.invoke (Method.java:498)
at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation (AbstractInvoker.java:188)
в org.apache.cxf.service.invoker.AbstractInvoker.invoke (AbstractInvoker.java:104)
... еще 54 Причины: java.lang.ClassNotFoundException: com.nimbusds.jwt.ReadOnlyJWTClaimsSet не может быть найден JWTAccessTok2BH.S.1039 *

Кто-нибудь может дать мне подсказку?

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

Я нашел проблему: Я использовал старую версию org.wso2.carbon.identity.inbound.auth.oauth2 Я обновил pom.xml до

<dependency>
      <groupId>org.wso2.carbon.identity.inbound.auth.oauth2</groupId>
      <artifactId>org.wso2.carbon.identity.oauth</artifactId>
      <version>6.0.172</version>
      <scope>provided</scope>
 </dependency>

из https://mvnrepository.com и пришлось обновить код, чтобы использовать версию com.nimbusds.jwt, используемую wso2is. И, наконец, в настройках поставщика услуг вы должны выбрать токена.

0 голосов
/ 17 мая 2019

По ошибке com.nimbusds.jwt.ReadOnlyJWTClaimsSet cannot be found by JWTAccessTokenBuilder_2.7.4.SNAPSHOT это связано с привязкой класса OSGi. В конфигурации Import-Package модуля pom для maven-bundle-plugin убедитесь, что у вас com.nimbusds.jwt с правильным диапазоном версий.

Или быстрое решение - добавить <DynamicImport-Package>*</DynamicImport-Package>

...