4

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

编辑:我应该提到,只有登录页面应该可以直接访问,无需过滤等。

4

1 回答 1

2

想到的第一个想法是Cookie在用户进行身份验证时设置一个,然后您可以在 Apache 中使用mod_rewrite.

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

如果你想要一个例子,请告诉我RewriteRule

编辑 - 示例规则:

假设静态内容驻留在/static/目录中,如果用户尚未登录,则以下结果为 a(导致 cookie 的值为)401 Forbiddenauthenticated=true

RewriteEngine on

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

我已经使用这种方法来引导移动流量,但不是为了限制安全内容,所以我建议进行一些彻底的测试。

希望有帮助。

于 2012-04-25T15:57:15.257 回答