首页 > 解决方案 > 如何使用spring AOP根据授权用户的范围返回对象

问题描述

所以这是我的挑战,我有一个使用 JPA 从数据库返回对象列表的方法。我希望能够使用自定义注释和 Spring AOP 过滤该方法的响应。

一种方法是使用 @Around 注释劫持响应,proceed() 并过滤该函数的响应。但这实施起来很糟糕,而且无法扩展。

那么有没有更好的方法来实际实现这个方面,并且让建议的方法只根据范围返回结果而不更改要建议的方法中的代码?

编辑...

我有一个带有端点的控制器,该端点从数据库中返回人员列表。

@Autowired
TestService service;

@RequestMapping("/get")
@AuthorizeAndFilter
public List<Person> getAll() {
    return service.getall();
}

我希望能够创建一个自定义 @AuthorizeAndFilter 注释并让它按此顺序执行。

  1. 确保 Authenticated 主体有权进行此调用或引发 403 异常。
  2. 它不应返回数据库中的所有人员,而应仅返回与经过身份验证的用户来自同一区域的人员。

标签: jpaspring-securityauthorizationspring-aopaspect

解决方案


推荐阅读