我正在尝试部署MITRE 的 OpenID Connect Java Spring 服务器使用 Tomcat。我的服务器的 FQDN 是park.muller.io
。
我已经编译了 MITRE 服务器并将 .war 文件放入 Tomcatwebapps
目录中。当我访问park.muller.io:8080/openid-connect-服务器-webapp,我看到了登录页面的内容……但没有任何图像或样式表解析。经过进一步检查,src
图像的属性是相对 URL,但当我右键单击图像并尝试查看它时,它会将主机解析为localhost:8080
。我已经在我的台式机和平板电脑上确认了这种行为,所以这不是/etc/hosts
我最初怀疑的问题(我以前可以park.muller.io
解析到我的家庭住址,但现在不再这样做了。)
在 上park
,如果我运行hostname -f
,它会park.muller.io
按预期返回。这是因为我已在 中声明了这一点,/etc/hosts
以便自己修复该问题。
我完全被搞糊涂了;这对我来说毫无意义。是什么让相对链接解析为localhost
?我该如何修复它?
答案1
您需要在配置文件issuer
中配置该值server-config.xml
并将其设置为最终的部署路径。这在服务器配置文档中提到过,但可能措辞更清楚:
https://github.com/mitreid-connect/OpenID-Connect-Java-Spring-Server/wiki/Server-configuration
本质上,Java servlet 无法轻松持续获取当前 URL,即使这样,如果您托管在代理后面(例如使用 mod_ajp 的 Apache 后面的 Tomcat),它也会出错。因此,我们决定让它成为 MITREid Connect 服务器项目中的配置值。