如何根据 Jhipster 的角色限制 Api 中的访问

DAN*_*DAN 1 java spring jhipster

我正在开发一个 jhipster 项目。如果我有三个角色,比如 A、B 和 C,并且我想将特定 API 的访问权限限制为仅 A 和 B。我如何以其他用户的方式管理 Api 的安全性角色无法访问它?

Dav*_*man 5

根据您使用的 JHipster 应用程序类型,您需要的文件会被调用WebSecurityConfiguration(对于单体MicroserviceSecurityConfiguration应用)或(对于微服务应用程序)。

在那里,在该configure方法中,您将找到默认行

.antMatchers("/api/**").authenticated()
Run Code Online (Sandbox Code Playgroud)

这意味着,您只需要通过身份验证即可访问 /api 前缀后面的任何 url。

要应用一些基于自定义角色的规则,您添加一些

.antMatchers("/api/my-url/").hasRole("A")
Run Code Online (Sandbox Code Playgroud)

在提到的 line或类似方法之前,如 hasAnyRole、hasAuthority 或 access(),用于更复杂的语句

作为替代方案,您可以在具体方法上使用@Secured@PreAuthorize注释,以获得更细粒度的访问控制