Apache mod_rewrite和Tomcat摘要认证

时间:2014-12-01 15:09:44

标签: apache tomcat mod-rewrite

我在Tomcat服务器中部署了一个webapp,前面有Apache。其中一个要求是,必须使用两个不同的路径访问webapp。例如:

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

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

然后,能够"转发"调用第二个URL到第一个URL,我在apache中使用了mod_rewrite,如下所示:

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

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

有关如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:0)

最后,我找到了一个简单的解决方案。 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" />
......

我不确定是否有人会说这是不安全的......但是,我的情况就足够了。