apache - 保护 Apache 提供的静态内容

标签 apache rest tomcat

我有一个运行一些 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/

相关文章:

java - JBoss 集群与 Apache、AJP 最终更改日期

php - 无法更改 PHP 中的 allow_url_include 值

java - ContainerRequestFilter JBoss AS 7.1.1 RestEasy 3.0.6.Final

java - 一旦从 REST 层抛出异常,@ExceptionHandler 就不会被调用

rest - 无法读取 json 正文

tomcat - 从证书颁发机构收到 crt 后如何使用 myserver.key 创建 keystore

java - 包 org.apache.commons 不存在

Tomcat 类路径

apache - 缩短 GWT/Tomcat 应用程序的 URL

python - Django-allauth - OpenID 和 OAuth 重定向 + Apache 作为代理