Mar*_*ark 8 debugging keycloak
我最近将 Keycloak 升级到版本 9,在 Docker 中运行时,我在附加远程调试器时遇到问题。我怀疑这与Keycloak底层升级到Java 9+有关。
我得到的错误是:
handshake failed - connection prematurally closed
我在 Docker 中正确映射了端口(我可以运行 Keycloak 版本 7 并且它连接得很好)。
该方法取决于您是否使用standalone.sh(或可能是 .bat)或 docker 映像。
如果您使用的是standalone.sh,则可以使用该--debug选项,记录在standalone.sh -h:
standalone.sh --debug '*:8000'
Run Code Online (Sandbox Code Playgroud)
(*允许从任何主机访问。Plain--debug 8000仅允许从本地主机访问)
对于 docker 镜像,这将是从版本 12开始的记录方法,并且它至少可以从 Keycloak 11.0.2 开始工作:
$ git diff
diff --git a/docker-compose/keycloak-standalone/docker-compose.yml b/docker-compose/keycloak-standalone/docker-compose.yml
index fcf3a52..93b7209 100644
--- a/docker-compose/keycloak-standalone/docker-compose.yml
+++ b/docker-compose/keycloak-standalone/docker-compose.yml
@@ -11,11 +11,14 @@ services:
environment:
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: admin
+ DEBUG: "true"
+ DEBUG_PORT: "*:8000"
ports:
- 8080:8080
+ - 8000:8000
volumes:
- data:/opt/jboss/keycloak/standalone/data
Run Code Online (Sandbox Code Playgroud)
(同样,这*是允许从任何主机进行访问。)
事实证明,Java 9 引入了调试方面的安全增强功能。信息在这里:https ://stackoverflow.com/a/60090750/2117355
在我的 Keycloak docker-compose 服务定义中,我可以添加以下内容environment:
DEBUG_PORT: "*:8787"
这解决了问题。我现在可以调试了。
| 归档时间: |
|
| 查看次数: |
10378 次 |
| 最近记录: |