Java 用于静态页面的CloudFront身份验证

Java 用于静态页面的CloudFront身份验证,java,cloud,amazon-cloudfront,Java,Cloud,Amazon Cloudfront,我有一个简单的基于Tomcat的JavaWebApp,它使用标准servlet为静态文件提供服务。我想使用CloudFront来减少webapp的负载并提高静态文件交付的速度。我需要我的静态文件只提供给那些具有有效身份验证cookie的请求。必须在代码中检查cookie的有效性。我对CloudFront没有太多经验,但我认为它类似于服务器端缓存。现在我如何让这个缓存只对经过身份验证的请求起作用? 我知道一个选择是在我的webapp中进行身份验证,然后重定向到CF中的某个临时URL。但我担心这可能

我有一个简单的基于Tomcat的JavaWebApp,它使用标准servlet为静态文件提供服务。我想使用CloudFront来减少webapp的负载并提高静态文件交付的速度。我需要我的静态文件只提供给那些具有有效身份验证cookie的请求。必须在代码中检查cookie的有效性。我对CloudFront没有太多经验,但我认为它类似于服务器端缓存。现在我如何让这个缓存只对经过身份验证的请求起作用? 我知道一个选择是在我的webapp中进行身份验证,然后重定向到CF中的某个临时URL。但我担心这可能会很慢。也许有更好的解决办法

认证要求背后的一个原因是,您需要为通过CF交付的数据量付费。如果有人能够在不受控制的情况下从我的CF获取数据,我最终可能会支付很多钱


谢谢你的任何提示,我对SO和AWS都是新手。我试着用谷歌搜索出答案,也在这里搜索过,但什么也没找到。

你可以为你的用户提供一个签名的URL。请查看:

创建签名URL或签名Cookie以控制对的访问时 对于对象,可以指定以下限制:

  • 结束日期和时间,在此日期和时间之后URL不再有效

  • (可选)URL生效的日期和时间

  • (可选)可用于访问内容的计算机的IP地址或地址范围

已签名URL或已签名cookie的一部分使用 公钥/私钥对中的私钥。当有人使用 用于访问对象的已签名URL或已签名cookie,CloudFront URL或cookie的已签名和未签名部分。如果他们没有 匹配,CloudFront不为目标服务


下面的答案对您有帮助吗?是的,这可能是我问题的正确答案,尽管在现实生活中我需要求助于重定向,因为我希望身份验证的有效性相当短,并且不应该破坏客户端缓存。所以我可能会使用重定向和签名cookie。但考虑到我的问题是如何形成的,你的答案可能是正确的。谢谢