我们有一个用于网上商店的Tomcat服务器,当用户登录时,我们需要将用户转移到另一个(安全的)服务器。下面是详细的解释:
1)我们有两个Tomcat服务器:一个‘常规’(HTTP)和一个安全(HTTPS)
2)用户首次访问常规服务器
3)当他们登录时,我们需要获取他们的登录数据,以及关于他们当前所在(或试图查看)的页面的信息,将其传递到安全服务器并进行实际登录;例如,未登录的用户看到产品列表,单击“购买”并显示弹出窗口,要求用户登录;用户输入他/她的凭证,这些凭证以及有关他想要购买的产品的信息被传递到安全服务器;安全服务器接收这些信息,执行登录并向用户显示所请求的产品
如何做到这一点呢?请注意以下事项:
1)我们尝试过使用cookie,但我们决定不走那条路
2)将会话持久化到数据库,然后让安全服务器获取它也不是一种选择
还有别的办法吗?我们正在考虑创建一个对象,然后将其作为HTTP POST参数传递,但我不确定如何才能做到这一点(我被赋予了完成它的任务)。
值得一提的是,我们使用的技术有Tomcat server、Wicket、Spring、iBatis和MySQL。
提前感谢:)
发布于 2011-04-09 03:27:52
如果您想在不同的Tomcat实例之间共享会话,可以将它们配置为使用会话复制作为集群工作:http://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.html
然后,您可以将Apache HTTP Server配置为负载均衡器,确保HTTP请求发送到服务器1,HTTPS请求发送到服务器2。
但是,您也可以只配置一个Tomcat实例(或N个相同的实例)来同时处理HTTP和HTTPS,并使用标准配置(web.xml中的...<transport-guarantee>CONFIDENTIAL</transport-guarantee>...)或特定于框架的配置来确保安全访问。
发布于 2011-04-06 20:05:17
我不确定我是否得到了您想要的要点,但您可以让“弹出窗口”是一个从安全应用程序提供到受保护URL的页面。这将导致身份验证在安全服务器上进行,您可以从那里开始。例如,如果不安全的产品页面在www.domain.com/browse/id1上,则"buy“按钮将打开一个指向secure.domain.com/buy/id1的弹出窗口,从而在URL上传输产品id时进行身份验证。
https://stackoverflow.com/questions/5553172
复制相似问题