使用Web应用程序的Apache服务器会话身份验证

时间:2013-08-31 14:17:52

标签: java apache authentication tomcat mod-rewrite

我正在构建一个将在Tomcat上运行的小型Java(servlet)身份验证Web应用程序。应用程序将对用户进行身份验证,然后将用户重定向到另一个Web应用程序(在另一台服务器上)。问题是,在用户进行身份验证后,我需要以某种方式告诉Apache该会话已经过身份验证,并且Apache应该将http请求重定向(使用RewriteRules)到目标Web应用程序(而不是用于身份验证的请求)。

根据我的研究,我有3个选择: 1.身份验证成功后,我重定向到一个URL,告诉Apache该会话已经过身份验证(使用RewriteRules)。我可以将此信息存储在Cookie(问题:安全性)或Apache环境变量(问题:清除非活动环境变量...)中。 2.使用apache mod将会话存储到数据库中。在auth成功时,我使用Java app更新数据库,apache将所有请求重定向到目标URL(问题:数据库访问负载(最多500个活动的concurent用户))。 3. HTTP隧道。但这意味着目标应用程序的每个请求都通过我的身份验证应用程序(问题:冗余,慢,......)

  1. 还有其他办法吗?
  2. 最好的方法是什么?
  3. 非常感谢。

1 个答案:

答案 0 :(得分:2)

有几种方法可以做到这一点,

  1. 如果您能负担得起企业解决方案,请使用Oracle身份验证 管理/ Oracle Access Management。它将重定向到登录 页面,一旦登录成功并添加了正确的cookie, 所有未来的请求都会在其请求中注入一个标头 内部的一面。您的内部应用可以输入标题和 确认用户已登录。要进行开发,您可以运行 使用Firefox ModifyHeaders,没有OIM / OAM的安全应用程序 插件。

  2. 如果您买不起企业解决方案,请选择OpenIAM吧 做同样的事情,但规模小,没有报告和高可用性功能。

  3. 可能有三分之一的人这样做,但我从来没有尝试过,那个 将使用Apache的身份验证模块(或组合 他们),如http://authmemcookie.sourceforge.net/,或 http://httpd.apache.org/docs/trunk/mod/mod_session.html

  4. 祝你好运!

相关问题