Apache mod_rewrite 和 Tomcat 摘要认证

标签 apache tomcat mod-rewrite

我在 Tomcat 服务器中部署了一个 Web 应用程序,前面是 Apache。要求之一是必须可以使用两条不同的路径访问 webapp。例如:

http://domain.com/aa/bb/v1/*
and
http://domain.com/cc/v1/*

我的 webapp 配置了第一个 URL,因此任何对/aa/bb/v1/* 的请求都由 Tomcat 正确处理。

然后,为了能够将对第二个 URL 的调用“转发”到第一个 URL,我在 apache 中使用了 mod_rewrite,如下所示:

  RewriteEngine on
  RewriteRule /aa/bb/v1/(.+)  cc/v1/$1  [NC,L,P] 

这很好用!除非我在 Tomcat 中激活摘要式身份验证。在摘要中,浏览器发送的密码是一些或多或少复杂的哈希值,包括用户名、领域和 URI 等。浏览器的 URI 不是 webapp 的 URI(我用 mod_rewrite 修改了它)所以认证失败。

关于如何解决这个问题有什么想法吗?

最佳答案

我终于找到了一个简单的解决方案。 Tomcat 的 Digest 阀的可配置值之一是不验证 URI。这可以通过在 context.xml 文件中添加摘要阀配置来完成:

    <Context>

        <!-- Default set of monitored resources -->
        <WatchedResource>WEB-INF/web.xml</WatchedResource>

        <Valve className="org.apache.catalina.authenticator.DigestAuthenticator" validateUri="false" />
......

我不确定是否有人会说这是不安全的......但是,对我来说已经足够了。

关于Apache mod_rewrite 和 Tomcat 摘要认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27231331/

相关文章:

Java速度虚拟机文件#set使用 boolean 变量

Ubuntu 上的 PHP 从命令行加载 MSSQL 扩展,但在通过 Apache 运行时不加载

php - PHP 4 程序与 PHP 5 兼容吗?

java - 从URL下载文件到tomcat服务器

tomcat - JAXWS、Axis2 和 Tomcat 服务 URL

java - 随着时间的推移,类定义从 jvm 中消失(NoClassDefFound)

apache - 使用 apache 重定向而不丢失搜索排名

php - htaccess 在一台服务器上工作正常并在另一台服务器上导致重定向循环

apache - 为什么 apache 不为页面提供服务? mod_rewrite 似乎找到了正确的文件

php - .htaccess 前 3 个字符作为文件夹