首页 > 解决方案 > 应用 Policy Enforcer Keycloak 时出错

问题描述

2021-06-28 12:45:23,646 ERROR [io.qua.mut.run.MutinyInfrastructure] (executor-thread-1) Mutiny had to drop the following exception: java.lang.IllegalStateException: Response has already been written
my-api              |   at io.vertx.core.http.impl.HttpServerResponseImpl.end(HttpServerResponseImpl.java:376)
my-api              |   at io.vertx.core.http.impl.HttpServerResponseImpl.end(HttpServerResponseImpl.java:365)
my-api              |   at io.vertx.core.http.impl.HttpServerResponseImpl.end(HttpServerResponseImpl.java:421)
my-api              |   at io.quarkus.vertx.http.runtime.security.HttpAuthorizer$4$1.onItem(HttpAuthorizer.java:164)
my-api              |   at io.quarkus.vertx.http.runtime.security.HttpAuthorizer$4$1.onItem(HttpAuthorizer.java:156)
my-api              |   at io.smallrye.mutiny.operators.uni.UniOnItemTransformToUni$UniOnItemTransformToUniProcessor.onItem(UniOnItemTransformToUni.java:60)
my-api              |   at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem$KnownItemSubscription.forward(UniCreateFromKnownItem.java:38)
my-api              |   at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem$KnownItemSubscription.access$100(UniCreateFromKnownItem.java:26)
my-api              |   at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem.subscribe(UniCreateFromKnownItem.java:23)
my-api              |   at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
my-api              |   at io.smallrye.mutiny.operators.uni.UniOnItemTransformToUni$UniOnItemTransformToUniProcessor.performInnerSubscription(UniOnItemTransformToUni.java:81)
my-api              |   at io.smallrye.mutiny.operators.uni.UniOnItemTransformToUni$UniOnItemTransformToUniProcessor.onItem(UniOnItemTransformToUni.java:57)
my-api              |   at io.smallrye.mutiny.operators.uni.UniOnItemTransform$UniOnItemTransformProcessor.onItem(UniOnItemTransform.java:43)
my-api              |   at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem$KnownItemSubscription.forward(UniCreateFromKnownItem.java:38)
my-api              |   at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem$KnownItemSubscription.access$100(UniCreateFromKnownItem.java:26)
my-api              |   at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem.subscribe(UniCreateFromKnownItem.java:23)
my-api              |   at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
my-api              |   at io.smallrye.mutiny.operators.uni.UniOnItemTransform.subscribe(UniOnItemTransform.java:22)
my-api              |   at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
my-api              |   at io.smallrye.mutiny.operators.uni.UniOnItemTransformToUni.subscribe(UniOnItemTransformToUni.java:25)
my-api              |   at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
my-api              |   at io.smallrye.mutiny.groups.UniSubscribe.withSubscriber(UniSubscribe.java:50)
my-api              |   at io.quarkus.vertx.http.runtime.security.HttpAuthorizer$4.onItem(HttpAuthorizer.java:156)
my-api              |   at io.quarkus.vertx.http.runtime.security.HttpAuthorizer$4.onItem(HttpAuthorizer.java:146)
my-api              |   at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem$KnownItemSubscription.forward(UniCreateFromKnownItem.java:38)
my-api              |   at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem$KnownItemSubscription.access$100(UniCreateFromKnownItem.java:26)
my-api              |   at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem.subscribe(UniCreateFromKnownItem.java:23)
my-api              |   at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
my-api              |   at io.smallrye.mutiny.groups.UniSubscribe.withSubscriber(UniSubscribe.java:50)
my-api              |   at io.quarkus.vertx.http.runtime.security.HttpAuthorizer.doDeny(HttpAuthorizer.java:146)
my-api              |   at io.quarkus.vertx.http.runtime.security.HttpAuthorizer.access$000(HttpAuthorizer.java:27)
my-api              |   at io.quarkus.vertx.http.runtime.security.HttpAuthorizer$2.accept(HttpAuthorizer.java:126)
my-api              |   at io.quarkus.vertx.http.runtime.security.HttpAuthorizer$2.accept(HttpAuthorizer.java:122)
my-api              |   at io.smallrye.context.impl.wrappers.SlowContextualConsumer.accept(SlowContextualConsumer.java:21)
my-api              |   at io.smallrye.mutiny.helpers.UniCallbackSubscriber.onItem(UniCallbackSubscriber.java:69)
my-api              |   at io.smallrye.mutiny.operators.uni.builders.DefaultUniEmitter.complete(DefaultUniEmitter.java:36)
my-api              |   at io.quarkus.vertx.http.runtime.security.HttpAuthorizer$1$1$1.run(HttpAuthorizer.java:74)
my-api              |   at io.quarkus.runtime.CleanableExecutor$CleaningRunnable.run(CleanableExecutor.java:231)
my-api              |   at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
my-api              |   at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
my-api              |   at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2415)
my-api              |   at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1452)
my-api              |   at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
my-api              |   at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
my-api              |   at java.base/java.lang.Thread.run(Thread.java:831)
my-api              |   at org.jboss.threads.JBossThread.run(JBossThread.java:501)
my-api              | 
my-api              | 2021-06-28 12:45:23,646 ERROR [io.qua.mut.run.MutinyInfrastructure] (executor-thread-2) Mutiny had to drop the following exception: java.lang.IllegalStateException: Response has already been written
my-api              |   at io.vertx.core.http.impl.HttpServerResponseImpl.end(HttpServerResponseImpl.java:376)
my-api              |   at io.vertx.core.http.impl.HttpServerResponseImpl.end(HttpServerResponseImpl.java:365)
my-api              |   at io.vertx.core.http.impl.HttpServerResponseImpl.end(HttpServerResponseImpl.java:421)
my-api              |   at io.quarkus.vertx.http.runtime.security.HttpAuthorizer$4$1.onItem(HttpAuthorizer.java:164)
my-api              |   at io.quarkus.vertx.http.runtime.security.HttpAuthorizer$4$1.onItem(HttpAuthorizer.java:156)
my-api              |   at io.smallrye.mutiny.operators.uni.UniOnItemTransformToUni$UniOnItemTransformToUniProcessor.onItem(UniOnItemTransformToUni.java:60)
my-api              |   at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem$KnownItemSubscription.forward(UniCreateFromKnownItem.java:38)
my-api              |   at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem$KnownItemSubscription.access$100(UniCreateFromKnownItem.java:26)
my-api              |   at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem.subscribe(UniCreateFromKnownItem.java:23)
my-api              |   at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
my-api              |   at io.smallrye.mutiny.operators.uni.UniOnItemTransformToUni$UniOnItemTransformToUniProcessor.performInnerSubscription(UniOnItemTransformToUni.java:81)
my-api              |   at io.smallrye.mutiny.operators.uni.UniOnItemTransformToUni$UniOnItemTransformToUniProcessor.onItem(UniOnItemTransformToUni.java:57)
my-api              |   at io.smallrye.mutiny.operators.uni.UniOnItemTransform$UniOnItemTransformProcessor.onItem(UniOnItemTransform.java:43)
my-api              |   at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem$KnownItemSubscription.forward(UniCreateFromKnownItem.java:38)
my-api              |   at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem$KnownItemSubscription.access$100(UniCreateFromKnownItem.java:26)
my-api              |   at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem.subscribe(UniCreateFromKnownItem.java:23)
my-api              |   at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
my-api              |   at io.smallrye.mutiny.operators.uni.UniOnItemTransform.subscribe(UniOnItemTransform.java:22)
my-api              |   at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
my-api              |   at io.smallrye.mutiny.operators.uni.UniOnItemTransformToUni.subscribe(UniOnItemTransformToUni.java:25)
my-api              |   at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
my-api              |   at io.smallrye.mutiny.groups.UniSubscribe.withSubscriber(UniSubscribe.java:50)
my-api              |   at io.quarkus.vertx.http.runtime.security.HttpAuthorizer$4.onItem(HttpAuthorizer.java:156)
my-api              |   at io.quarkus.vertx.http.runtime.security.HttpAuthorizer$4.onItem(HttpAuthorizer.java:146)
my-api              |   at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem$KnownItemSubscription.forward(UniCreateFromKnownItem.java:38)
my-api              |   at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem$KnownItemSubscription.access$100(UniCreateFromKnownItem.java:26)
my-api              |   at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem.subscribe(UniCreateFromKnownItem.java:23)
my-api              |   at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36)
my-api              |   at io.smallrye.mutiny.groups.UniSubscribe.withSubscriber(UniSubscribe.java:50)
my-api              |   at io.quarkus.vertx.http.runtime.security.HttpAuthorizer.doDeny(HttpAuthorizer.java:146)
my-api              |   at io.quarkus.vertx.http.runtime.security.HttpAuthorizer.access$000(HttpAuthorizer.java:27)
my-api              |   at io.quarkus.vertx.http.runtime.security.HttpAuthorizer$2.accept(HttpAuthorizer.java:126)
my-api              |   at io.quarkus.vertx.http.runtime.security.HttpAuthorizer$2.accept(HttpAuthorizer.java:122)
my-api              |   at io.smallrye.context.impl.wrappers.SlowContextualConsumer.accept(SlowContextualConsumer.java:21)
my-api              |   at io.smallrye.mutiny.helpers.UniCallbackSubscriber.onItem(UniCallbackSubscriber.java:69)
my-api              |   at io.smallrye.mutiny.operators.uni.builders.DefaultUniEmitter.complete(DefaultUniEmitter.java:36)
my-api              |   at io.quarkus.vertx.http.runtime.security.HttpAuthorizer$1$1$1.run(HttpAuthorizer.java:74)
my-api              |   at io.quarkus.runtime.CleanableExecutor$CleaningRunnable.run(CleanableExecutor.java:231)
my-api              |   at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
my-api              |   at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
my-api              |   at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2415)
my-api              |   at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1426)
my-api              |   at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
my-api              |   at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
my-api              |   at java.base/java.lang.Thread.run(Thread.java:831)
my-api              |   at org.jboss.threads.JBossThread.run(JBossThread.java:501)
my-api              | 
lb                  | 172.21.0.1 - - [28/Jun/2021:12:45:23 +0000] "GET /api/protected HTTP/1.1" 401 0 "http://localhost/" "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Mobile Safari/537.36"
lb                  | 172.21.0.1 - - [28/Jun/2021:12:45:23 +0000] "GET /api/public HTTP/1.1" 401 0 "http://localhost/" "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Mobile Safari/537.36"

应用 Keycloak 策略实施器时发生意外错误。

无法找出发生此错误的原因。

quarkus.keycloak.policy-enforcer.enable=false没有错误产生时。

无法调试,因为它们在代理之外运行。(找不到任何方法)

这是示例应用程序存储库

请帮我解决这个错误。

谢谢

标签: keycloakquarkus

解决方案


推荐阅读