javaspring多urlMap值

lx0bsm1f  于 2021-07-22  发布在  Java
关注(0)|答案(0)|浏览(254)

我一直在尝试实现一个通用接口来支持多个访问控制。目前,我有以下控制器:

@RequestMapping(path = "/api")
public interface MyController {

  @GetMapping(value = {"/public/workers/name/{workerString}"})
  ResponseEntity<T> searchByName(@PathVariable String workerString);

  @GetMapping("/hr/worker/general/{id}")
  ResponseEntity<T> general(@PathVariable int id);

}

我有一个拦截器,它捕获请求并检查用户是否具有“hr”权限。现在我需要添加另一个场景,用户可以拥有“hd”权限,并且可以执行相同的过程。简单的解决方案是执行以下操作:

@GetMapping(value={"/hr/worker/general/{id}","/hd/worker/general/{id}"})
 ResponseEntity<T> general(@PathVariable int id);

还有我的 interceptor 将根据url以常规方式检查用户是否具有权限。
我的问题是可伸缩性。如果明天我必须添加其他类型的权限怎么办?”嗯“hs”等等。。我不想在Map中添加更多的URL。这样做可能吗

@GetMapping("/{permission}/worker/general/{id}")
 ResponseEntity<T> general(@PathVariable int id);

显然这不起作用,因为我必须使用声明的path变量。这里有什么替代方案,什么是好的做法?
我会很感激你的任何想法或帮助。谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题