我有一个名为test.war的应用程序。
由于我的服务器上安装了Apache,因此我必须为Tomcat应用程序使用另一个端口号,因此在部署此应用程序后可在domain.com:8080/test /.
我决定创建一个子域名,以便从url中删除那个丑陋的8080,所以我设置了像described here这样的服务器。所以现在test.domain.com参考domain.com:8080/test /.
除了一个问题外,一切似乎都很好 - 因为我的应用程序不是ROOT.war而我正在使用spring:url
函数,应用程序中的每个url都被转换为/ test / bla-bla。所以我删除了这个功能。但仍然存在弹簧安全问题,因为它仍然会转换相对于应用程序名称的URL,即/ test / bla-bla。
我该如何解决这个问题?
谢谢
UPD:我不想将它部署为ROOT应用程序,因为我有两三个这样的应用程序,我想为每个应用程序创建一个子域
答案 0 :(得分:1)
Spring Security没有"翻译"网址。实际上,这并不是Spring Security特有的。对于任何重定向的应用程序,您都会遇到类似的问题。如果要隐藏代理后面的应用程序的上下文路径,则需要在代理处重写URL。
我建议您特别阅读Tomcat Generic Proxy Howto和URL重写部分,因为它专门解决了这个问题。