http侦听器的keycloak中的undertow子系统配置
undertow subsystem configuration in keycloak for http listener
大家好,我正在尝试配置 keycloak,在浏览文档时,我在 wildfly 中遇到了 undertow 子系统的配置(运行 keycloak),并在我的 standalone.xml 文件中验证了它
<server name="default-server">
<http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true"/>
<https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<http-invoker security-realm="ApplicationRealm"/>
</host>
</server>
.....
.....
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
<socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
<socket-binding name="http" port="${jboss.http.port:8080}"/>
<socket-binding name="https" port="${jboss.https.port:8443}"/>
<socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
<socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
<socket-binding name="txn-recovery-environment" port="4712"/>
<socket-binding name="txn-status-manager" port="4713"/>
<outbound-socket-binding name="mail-smtp">
<remote-destination host="localhost" port="25"/>
</outbound-socket-binding>
</socket-binding-group>
现在我想知道为什么 http-listener
将 redirect-socket
设置为“https”,因为这个侦听器应该侦听对 keycloak 服务器发出的 http 请求?正确的?我们确实有一个单独的 https-listener
。同样在反向代理位于 keycloak 前面的情况下,所有使用 http 通过代理向 keycloak 发出的请求也应该在 http listener
上结束,对吗?那么为什么 http-listener 将请求重定向到 https 套接字绑定?
乍一看似乎不合理的解释很简单:Keycloak 应该通过 https 与用户和客户端通信。因此,如果用户尝试通过 http 启动会话,他会立即重定向到 https。
另一方面,如果用户已经通过 https 启动会话,则无需进一步重定向他。
大家好,我正在尝试配置 keycloak,在浏览文档时,我在 wildfly 中遇到了 undertow 子系统的配置(运行 keycloak),并在我的 standalone.xml 文件中验证了它
<server name="default-server">
<http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true"/>
<https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<http-invoker security-realm="ApplicationRealm"/>
</host>
</server>
.....
.....
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
<socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
<socket-binding name="http" port="${jboss.http.port:8080}"/>
<socket-binding name="https" port="${jboss.https.port:8443}"/>
<socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
<socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
<socket-binding name="txn-recovery-environment" port="4712"/>
<socket-binding name="txn-status-manager" port="4713"/>
<outbound-socket-binding name="mail-smtp">
<remote-destination host="localhost" port="25"/>
</outbound-socket-binding>
</socket-binding-group>
现在我想知道为什么 http-listener
将 redirect-socket
设置为“https”,因为这个侦听器应该侦听对 keycloak 服务器发出的 http 请求?正确的?我们确实有一个单独的 https-listener
。同样在反向代理位于 keycloak 前面的情况下,所有使用 http 通过代理向 keycloak 发出的请求也应该在 http listener
上结束,对吗?那么为什么 http-listener 将请求重定向到 https 套接字绑定?
乍一看似乎不合理的解释很简单:Keycloak 应该通过 https 与用户和客户端通信。因此,如果用户尝试通过 http 启动会话,他会立即重定向到 https。 另一方面,如果用户已经通过 https 启动会话,则无需进一步重定向他。