我在如何在 JavaEE 6(Webprofile)中解决此场景时遇到问题。
我有一组具有特定角色的用户,他们可以触发图像的生成。对这些图像的访问受到角色( super 用户)的限制。
问题是,具有“ super 用户”角色的用户具有访问具有该角色的其他用户生成的图像的潜在权限。
文件名是随机生成的,图像会在短时间内被删除。但该图像包含敏感数据,因此我想尽可能限制对其的访问。
有没有办法限制图像/文件的访问仅限于创建它的用户?
web.xml,到目前为止,仅按角色限制对图像文件夹的访问:
<security-constraint>
<web-resource-collection>
<web-resource-name>Images</web-resource-name>
<url-pattern>/images/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>Superuser</role-name>
</auth-constraint>
</security-constraint>
提前致谢。
最佳答案
添加一个 Servlet 过滤器,用于在提供文件之前检查哪个用户已登录。
在该过滤器中,您还应该检查目标(哪个文件),检查文件的所有者,然后检查当前用户是否与所有者匹配。
有关过滤器的更多信息,请参见:http://www.oracle.com/technetwork/java/filters-137243.html
另一个有用的资源:http://docs.oracle.com/cd/B14099_19/web.1012/b14017/filters.htm
关于java - 如何仅向一个用户授予对文件的访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19490322/