Keycloak
1 前言
一个问题,一篇文章,一出故事。
Quarkus/RHBK默认使用JDK内置DNS解析器,存在两个关键限制:
– JDK默认缓存DNS,不会实时重读“/etc/hosts”;
– 某些JDK安全策略或容器环境下,JDK不读取系统hosts,直接走DNS服务器(resolv.conf);
– 如果是容器部署RHBK,宿主机“/etc/hosts”和容器内部是隔离的,改宿主机没用。
本章将实现Keycloak使用/etc/hosts的设置。
2 最佳实践
2.1 修改配置文件
vim /etc/systemd/system/keycloak.service
加入如下参数,
Environment="JAVA_OPTS_APPEND=-Djava.net.preferHostsFile=true -Dsun.net.inetaddr.ttl=0 -Dsun.net.inetaddr.negative.ttl=0 -Dcom.sun.jndi.ldap.object.disableEndpointIdentification=true"
配置修改后,你需要使用如下命令重载服务使控制脚本加载最新配置,
systemctl daemon-reload
2.2 重启服务使配置生效
systemctl restart keycloak
2.3 验证配置
systemctl show keycloak | grep JAVA\_OPTS\_APPEND
如果成功可见如下显示,
Environment=KEYCLOAK_ADMIN=admin KEYCLOAK_ADMIN_PASSWORD=adminpwd "JAVA_OPTS_APPEND=-Djava.net.preferHostsFile=true -Dsun.net.inetaddr.ttl=0 -Dsun.net.inetaddr.negative.ttl=0 -Dcom.sun.jndi.ldap.object.disableEndpointIdentification=true"
没有评论