keycloak是基于OAuth2.0的第三方验证和授权系统,提高了我们系统安全开发方面的效率。关于keycloak保护spring boot程序的例子可以看一下这篇译文https://www.oschina.net/translate/easily-secure-your-spring-boot-applications-with-k.
keycloak使用JBoss服务器作为容器,而JBoss服务器由于一些安全问题默认是不允许外部访问的(比如远程连接),所以要想远程连接keycloak,就要更改一下设置。下面是我找的两种解决方法。
1.启动keycloak的时候在后面加上参数 -b 0.0.0.0 -bmanagement 0.0.0.0
./standalone.sh -b 0.0.0.0 -bmanagement 0.0.0.0
2.除了在启动时加上一些参数,你也可以在keycloak/standalone/configuration/standalone.xml中修改一些配置来启动远程连接,这样就不用每次启动时加上额外的参数。
首先打开standalone.xml文件,定位到如下内容(value值可能会有一些差别)
<interface name="management">
<inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:0.0.0.0}"/>
</interface>
将上面配置替换成如下:
<interface name="management">
<any-address/>
</interface>
<interface name="public">
<any-address/>
</interface>
再重新启动keycloak就可以了。
总结:我是用第二种方法解决的,不知道为什么第一种不行,不过大家可以参考一下,或许你们的可以解决,希望会对你们有帮助。
参考网址:
https://*.com/questions/34410707/enabling-remote-access-to-keycloak
https://bgasparotto.com/enable-wildfly-remote-access/