我甚至不知道这个问题标题是否正确 - 如果没有,请原谅。我有这样的问题:
我的网络应用程序只能由登录用户访问。每个用户都表示为Value()
实体,保存在数据库中。
还有一些其他实体类:User
,A
,B
...也保存在数据库中。类C
,A
...的每个对象都可以由任何用户创建。
但是B
不应该看到由user1
创建的对象。
问题:
如何进行此类访问控制?
我天真的主意:
我可以为每个实体类添加user2
属性(在DB表的情况下为列)。在对象创建期间,此属性将获取当前用户ID。到目前为止,对我来说还可以。但是我必须将当前用户添加到每个数据库选择。这在某种程度上是有问题的。
例如,使用Spring JPA而不是:
User
我必须使用:
public interface MessageRepository extends JpaRepository<Message, Long> {
List<Message> findByReceiveDateBetween(Date from, Date to);
}
我的应用程序是用Java编写的。
如何进行此类访问控制?
答案 0 :(得分:0)
您肯定需要在数据库级别使用其创建者的ID标记每个实体。