保护Apache提供的静态内容

时间:2012-04-23 01:26:44

标签: apache rest tomcat

我有一个运行一些Jersey RESTful服务的Tomcat服务器,我正在使用Apache来托管静态内容。大部分静态内容都是空的,内容是通过RESTful调用填写的,但除了登录页面之外,我不希望任何人能够直接浏览其他静态页面。我们有一个身份验证servlet可以过滤对REST服务的任何请求,但我想知道处理静态内容的最佳方法是什么。如果可能的话,我宁愿不通过Tomcat提供静态内容。

编辑:我应该提一下,只有登录页面才能直接访问,无需过滤等。

1 个答案:

答案 0 :(得分:2)

首先想到的是在用户进行身份验证时设置Cookie然后您可以使用mod_rewrite在Apache中进行检查。

不确定这是否适合你...

如果您想要一个示例RewriteRule,请告诉我。

编辑 - 示例规则:

假设静态内容位于/static/目录中,如果用户尚未登录,则以下 会产生401 Forbidden(导致Cookie具有值authenticated=true

RewriteEngine on

RewriteCond %{REQUEST_URI} ^\/static\/
RewriteCond %{HTTP_COOKIE} !authenticated=true
RewriteRule .* - [L,F]

我使用此方法来指导移动流量,但不是用于限制安全内容,因此我建议进行一些全面的测试。

希望有所帮助。