我有一个运行一些 Jersey RESTful 服务的 Tomcat 服务器,我使用 Apache 来托管静态内容。静态内容大部分是空的,通过RESTful调用来填充内容,但是除了登录页面,我不希望任何人都可以直接浏览到其他静态页面。我们有一个身份验证 servlet,可以过滤对 REST 服务的任何请求,但我想知道处理静态内容的最佳方法是什么。如果可能的话,我宁愿不通过 Tomcat 提供静态内容。
编辑:我应该提一下,只有登录页面应该可以直接访问,不需要过滤等。
最佳答案
想到的第一个想法是在用户验证时设置一个 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]
我已将此方法用于引导移动流量,但并未用于限制安全内容,因此我建议进行一些彻底的测试。
希望对您有所帮助。
关于apache - 保护 Apache 提供的静态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10273759/