java - Spring 安全 : using relative path

标签 java spring tomcat spring-security

我有一个名为 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。所以我删除了那个功能。但是 spring security 仍然存在问题,因为它仍然翻译相对于应用程序名称的 url,即/test/bla-bla。

我该如何解决这个问题?

谢谢

UPD:我不想将它部署为 ROOT 应用程序,因为我有两三个这样的应用程序,我想为每个应用程序创建一个子域

最佳答案

Spring Security 不会“翻译”URL。事实上,这并不是 Spring Security 特有的。任何进行重定向的应用程序都会遇到类似的问题。如果您想隐藏代理后面的应用程序的上下文路径,则需要在代理处重写 URL。

我建议您阅读 Tomcat Generic Proxy Howto尤其是关于 URL 重写的部分,因为它专门解决了这个问题。

关于java - Spring 安全 : using relative path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11876416/

相关文章:

java - 使用 onClickListView 将数据从 CustomAdapter 发送到 SubFragment

java - 错误::0 找不到引用的切入点注释

tomcat - 如何将Tomcat的端口从8080改成80?

tomcat - 在services.msc中安装tomcat服务

java - 为什么 Java 中允许使用未知泛型类型的数组?

java - 使用 flexjson 序列化对象

java - 如何使用 Eclipse 在 Java GUI JTextArea 中滚动?

java - Spring MVC 基于注释的 Controller 和@RequestMapping 的缩小问题

java - 带接口(interface)的 Spring 目录结构(最佳实践)

java - 如何编写在它们之间使用相互 ssl 身份验证的 java 客户端和服务器应用程序?