Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Quarkus和KeyClope/OIDC-NullPointerException_Java_Jwt_Openid Connect_Keycloak_Quarkus - Fatal编程技术网

Java Quarkus和KeyClope/OIDC-NullPointerException

Java Quarkus和KeyClope/OIDC-NullPointerException,java,jwt,openid-connect,keycloak,quarkus,Java,Jwt,Openid Connect,Keycloak,Quarkus,我正在使用Quarkus 1.0.1框架开发一套微服务。我想使用KeyClope 8.0.1作为我的身份提供者来保护这些。我已经在Docker容器中安装并运行了Key斗篷,并为我的微服务配置了一个领域和相应的客户端。现在我到了想要保护它们的地步,我遇到了一个问题 我的REST服务没有@RolesAllowed注释或为其配置的任何授权要求。这意味着,即使我没有经过身份验证,我也可以访问服务。但是,当我尝试此操作时,我看到以下异常: 20:55:29 ERROR [io.quarkus.vertx.

我正在使用Quarkus 1.0.1框架开发一套微服务。我想使用KeyClope 8.0.1作为我的身份提供者来保护这些。我已经在Docker容器中安装并运行了Key斗篷,并为我的微服务配置了一个领域和相应的客户端。现在我到了想要保护它们的地步,我遇到了一个问题

我的REST服务没有
@RolesAllowed
注释或为其配置的任何授权要求。这意味着,即使我没有经过身份验证,我也可以访问服务。但是,当我尝试此操作时,我看到以下异常:

20:55:29 ERROR [io.quarkus.vertx.http.runtime.QuarkusErrorHandler] HTTP Request to /api/v1/mymethod failed, error id: 666dd651-6a8b-4004-9c11-3c5bee54503f-5: java.lang.NullPointerException
    at io.quarkus.keycloak.pep.KeycloakPolicyEnforcerAuthorizer.apply(KeycloakPolicyEnforcerAuthorizer.java:44)
    at io.quarkus.keycloak.pep.KeycloakPolicyEnforcerAuthorizer.apply(KeycloakPolicyEnforcerAuthorizer.java:28)
    at io.quarkus.vertx.http.runtime.security.HttpAuthorizer$1$1.run(HttpAuthorizer.java:65)
    at io.quarkus.runtime.CleanableExecutor$CleaningRunnable.run(CleanableExecutor.java:224)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
    at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2011)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1535)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1426)
    at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
    at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
    at java.base/java.lang.Thread.run(Thread.java:830)
    at org.jboss.threads.JBossThread.run(JBossThread.java:479)
我的
application.properties
文件如下所示:

quarkus.oidc.auth-server-url=http://localhost:8880/auth/realms/myrealm
quarkus.oidc.client-id=myreal-default
quarkus.oidc.credentials.secret=<SECRET UUID>
quarkus.oidc.authentication.scopes=oidc
quarkus.oidc.application-type=service
curl -vki -H  http://localhost:8080/api/v1/mymethod

我想这可能是因为我没有进行身份验证,所以我获得了一个keydepose JWT,并将其添加为授权头。这仍然不起作用,同样的例外也失败了。我不是在用钥匙斗篷做什么古怪的事。在这一点上,我的配置非常简单,所以我无法想象问题在于我的代码本身。我的配置中是否缺少某些内容?或者这是KeyClope中的一个bug?

这很简单:NullPointerException始终是一个bug。我们已经修复了一些与KeyClope 8相关的问题,但这似乎并不相关

请在我们的bugtracker()上打开一个问题,最好使用一个复制该问题的示例应用程序


我们计划在周二早上发布,因此如果您能尽早创建此版本,这将有所帮助。

我遇到了几乎相同的错误,但KC 6。你能告诉我你是只用最新的KC还是旧版本测试你的错误修复吗?如果是的话,您的版本号是多少?它与KeyClope 7一起工作,我们将测试升级到8。我敢肯定我们从来没有用KeyClope 6测试过。谢谢你提供的信息。事实上,我和op有着相同的stacktrace,这误导了我自己,我没有进一步思考。今天,我查看了quarkus密钥斗篷指南,意识到我没有设置quarkus.keydeport.policy enforcer.enable=true,现在它可以工作了。Yay:d您是否尝试在属性文件中设置quarkus.KeyClope.policy enforcer.enable=true?我从这本指南中得到了答案:这解决了我的例外。我做到了。不过,这似乎没有什么不同。