对于keycloak 22.0.1,我使用intellij调试我的自定义SPI(我将其作为jar文件放在/provider中),然后在本地启动keycloak,并进行远程调试。 1.在C:\YourPath\keycloak-22.0.1\bin>内运行kc.bat start-dev --http-relative-path=/auth --debug,然后将显示类似于Listening for transport dt_socket at address: 63506的内容 1.打开intellij,Ctrl+Alt+F5打开attach to process(或运行|附加到进程),选择地址,例如63506 1.然后你就可以进行远程调试了!首先设置一些断点,然后打开localhost:8080并执行您的操作
5条答案
按热度按时间ut6juiuv1#
这种方法取决于你使用的是
standalone.sh
(或者.bat)还是docker镜像。如果您使用的是
standalone.sh
,则可以使用--debug
选项,如standalone.sh -h
中所述:字符串
(the
*
允许从任何主机访问。普通--debug 8000
将只允许从本地主机访问)对于docker镜像,这将是documented方法from version 12,至少从Keycloak 11.0.2开始有效:
型
(同样,
*
允许从任何主机访问。gcuhipw92#
事实证明,Java 9在调试方面引入了安全增强。此处的信息:https://stackoverflow.com/a/60090750/2117355
在我的Keycloak docker-compose服务定义中,我能够在
environment
下添加:DEBUG_PORT: "*:8787"
个这解决了问题。我现在可以调试了。
mbskvtky3#
Keycloak版本7
我使用此命令运行docker容器,以便在端口
1234
启用调试字符串
使用远程配置将其连接到IntelliJ
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1234
个JAVA_OPTS
的默认值在下面,所以我在前面加上了上面的配置型
np8igboo4#
您可以通过使用Dockerfile创建自己的镜像来替换调试参数
Dockerfile:
字符串
控制台:
型
t98cgbkg5#
这个答案与docker无关,只是想帮助任何需要这个的人
对于keycloak 22.0.1,我使用intellij调试我的自定义SPI(我将其作为jar文件放在/provider中),然后在本地启动keycloak,并进行远程调试。
1.在
C:\YourPath\keycloak-22.0.1\bin>
内运行kc.bat start-dev --http-relative-path=/auth --debug
,然后将显示类似于Listening for transport dt_socket at address: 63506
的内容1.打开intellij,Ctrl+Alt+F5打开
attach to process
(或运行|附加到进程),选择地址,例如63506
1.然后你就可以进行远程调试了!首先设置一些断点,然后打开
localhost:8080
并执行您的操作