通过用户标识保护CRUD

时间:2019-01-12 10:03:03

标签: java mongodb spring-data

我在这里获得有关应用程序中安全性实现的一些提示。

我的后端是CRUD。总而言之,那些CRUD终结点可用于2种用户(管理员和用户)。 管理员具有完全访问权限,而用户只能访问自己的资源。 (MongoDB中的每个资源都有userId引用)。

我尝试为每个存储库中的每个方法添加@Query,但是它不起作用:

@Query("{ 'id' : ?#{hasRole('ROLE_ADMIN') ? {} : principal?.id }}")
Page<User> findAllSecured(Pageable page);

实际上,我不确定它是否可以工作(因为无法请求所有对象),如果它可以工作,我希望有一个更高级的解决方案(避免对每个方法重复使用@Query。)。

您对通用解决方案有任何想法吗?

0 个答案:

没有答案