java - 如何仅向一个用户授予对文件的访问权限

标签 java security jakarta-ee authorization

我在如何在 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/

相关文章:

java - 解析大的 100mb xml 并将其存储到 sqlite 数据库中

php - 什么时候使用哪种字符串转义方法?

security - 如何将 ACL 与 protected 资源连接起来?

security - Websocket(java ee)如何获取当前用户的角色

java - 删除时出现 "org.hibernate.TransactionException: nested transactions not supported"错误

java - Java 正则表达式线程安全吗?

java - 在不同远程对象之间拆分远程 EJB 功能

jakarta-ee - NetBeans 7.1 Java EE 中没有未经检查的警告

java - 无法将 IBMi 机器与 Spring Data 和 JPA 连接

PHP 在每个页面上包含或复制粘贴 mysql 登录信息?