我之前配置了此设置,但是在尝试在新实例上复制它时,我无法使其工作。我正在使用standalone-ha 模式,但是尝试使用standalone 并没有什么不同。
该实例配置了 frontendUrl https://example.com。在standalone-ha.xml 中仅保留此设置,前端和管理控制台都可以毫无问题地访问。将 adminUrl https://intra.example.com添加到 spi 主机名部分后,它看起来也像
<spi name="hostname">
<default-provider>default</default-provider>
<provider name="default" enabled="true">
<properties>
<property name="frontendUrl" value="https://example.com/auth/"/>
<property name="adminUrl" value="https://intra.example.com/auth"/>
<property name="forceBackendUrlToFrontendUrl" value="false"/>
</properties>
</provider>
</spi>
访问管理控制台不再有效。
在使用欢迎页面上的链接或直接浏览到它时,会出现登录页面(在https://example.com/auth上)。使用有效凭据登录后,它会重定向到https://intra.example.com/auth/admin/master/console/,然后立即重定向到https://intra.example.com/auth/admin/master/console /#state=4626eb82-6993-4fff-8c11-399a05cb8c66&session_state=3198da2f-f6eb-45be-aa87-ae7d52e22068&code=fd73f80a-fe43-4996-b245-efa42efb7b44.3198da2f-f6eb-45be-aa87-ae7d52e22068.e794bdbc-6497-4fc3- 8502-e0afedb67492。然后它重定向回https://intra.example.com/auth/admin/master/console/,然后返回长链接,然后再次返回,依此类推。这个循环永远持续下去。
该实例位于 nginx 代理后面,该代理配置了必要的标头:
server {
listen 192.168.0.115:443 ssl http2;
server_name intra.example.com;
ssl_certificate <valid cert>;
ssl_certificate_key <key>;
location /auth {
proxy_pass https://192.168.0.115:8843/auth;
proxy_ssl_verify off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto https;
}
}
server {
listen <public IPv4>:443 ssl http2;
listen [<public IPv6]:443 ssl http2;
server_name example.com;
ssl_certificate <valid cert>;
ssl_certificate_key <key>;
location /auth {
proxy_pass https://192.168.0.115:8843/auth;
proxy_ssl_verify off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto https;
}
}
经过研究,我尝试了各种组合:
代理根 (/) 而不是 /auth
代理到 http 而不是 https
将代理地址转发添加到 http/https 侦听器:
<https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true" proxy-address-forwarding="true"/>
添加代理监听器:
<http-listener name="default" socket-binding="http" redirect-socket="proxy-https" enable-http2="true" proxy-address-forwarding="true"/>
结合
<socket-binding name="proxy-https" port="443"/>
和
<http-listener name="default" socket-binding="http" redirect-socket="proxy-https" enable-http2="true" proxy-address-forwarding="true"/>
在数据库中临时将有效的重定向 URI 设置为 *
这似乎总结了一些关于这个问题的现有线程的想法。我发现的其他线程正在使用 Docker,而我正在使用本机实例。
如果有人知道还有什么可以尝试的,我将不胜感激。我需要将管理控制台分离到一个专用的内部 URL,并且知道以前曾有过这种情况。我什至从 nginx 复制了相同的代理配置,因此不认为问题出在那儿,但我当然会打开该选项。
重定向期间似乎没有生成任何日志条目。我也尝试--debug
过。
非常感谢您的阅读。