Spring Security,Apache 2 前端 Tomcat6。无法登录/立即注销

Spring Security,Apache 2 前端 Tomcat6。无法登录/立即注销

我部署了使用 SpringSecurity 的 GWT 应用程序,但遇到了问题。

输入凭证后,它会立即注销。如果我输入了错误的凭证,它会显示“凭证错误”,但是当我输入正确的凭证时,它只会返回到登录屏幕。(因此 mysql 连接有效)

我的设置如下:Ubuntu 10.04.2 LTS 上的 Tomcat6 前端为 Apache 2。我在两者之间使用 mod_jk。

我以前从未使用过这个 mod_jk 东西,通常我有一个独立的 Tomcat,但是现在要求迫使我必须使用它。

问:是否可能是由于我遗漏了某些 mod_jk 配置内容,导致 Tomcat 会话无法记住用户是否已登录?请求已转发,因此 mod_jk 似乎运行正常。

请给我一些提示,告诉我应该去哪里找!或者它应该已经可以工作了?只是想知道是否有标准程序可以让 SpringSecurity 在这样的设置中工作。

我按照以下教程安装了 mod_jk,并且配置与该教程中讨论的完全一致:http://www.howtoforge.com/how-to-install-tomcat6-with-sun-java-and-apache2-integration-on-ubuntu-10.04-lucid-lynx-with-virtual-hosts

答案1

过去我自己也处理过同样的问题。有些配置在一个浏览器中有效,而在另一个浏览器中无效。但是,我发现解决方法是不要在 apache httpd 配置中使用 http 和端口 8080。您应该使用 ajp 和端口 8009(tomcat 默认启用该端口)。我已将配置的必需部分概述如下:

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_module modules/mod_proxy.so

...

## App Configuration
ProxyPass    /app1                           ajp://localhost:8009/app1
ProxyPass    /app1/j_spring_security_check   ajp://localhost:8009/app1/j_spring_security_check
ProxyPass    /app1/j_spring_security_logout  ajp://localhost:8009/app1/j_spring_security_logout

注意:我显然没有包含对虚拟主机的引用,因为这实际上将特定于您的配置。此外,只要您没有修改 tomcat 服务器的 AJP 连接器端口,您就不必对 tomcat 实例进行任何操作。

相关内容