【问题标题】:JHipster User Authorization ImplemetationJHipster 用户授权实现
【发布时间】:2021-02-18 10:00:55
【问题描述】:

我想阻止一些用户访问 JHipster 中的某些服务。 如何授权特定用户访问 JHipster 中的 ReST Web 服务?

【问题讨论】:

  • 到目前为止你做了什么?您的身份验证当前如何工作?你的问题很模糊。
  • 欢迎来到 Stack Overflow。请阅读stackoverflow.com/help/how-to-ask 了解如何编写问题的指南。对于初学者: 1. 请格式化您的代码。 2. 在您的问题中添加更多代码,以帮助我们更好地理解它,并让未来的读者从这个问题中受益。 3. 寻找其他可能对您有所帮助的问题。 4. 格式化您的文本,并给我们一个最小的工作示例
  • 查看关于角色/权限的 spring 安全文档

标签: jhipster


【解决方案1】:

要阻止后端访问,请在 web/rest/*resource.java 中的选定方法(rest 入口点)上使用 @Secured 注解。

例子:

@RequestMapping(value = "/data-fields",
    method = RequestMethod.GET,
    produces = MediaType.APPLICATION_JSON_VALUE)
@Timed
@Secured({AuthoritiesConstants.ADMIN})
public List<DataFieldDTO> getAllDataFields() {
    log.debug("REST request to get all DataFields");

    return dataFieldService.findAll();
}

【讨论】:

    【解决方案2】:

    正如 Gaël Marziou 所说,我相信您正在尝试做的是在前端阻止它。如果是这种情况,一种可能的方法是管理“拥有权限”的使用。例如:has-authority="ROLE_ADMIN"

    所以你应该做的恰恰相反,创建一个允许某些用户访问 ReST web 服务的权限

    【讨论】:

      【解决方案3】:

      使用 has-authority 并将您的预期权限设置为 100% 。尝过

      把它写在你的 html 标签 has-authority="ROLE_ADMIN" 或你的预期用户上

      【讨论】:

        【解决方案4】:

        关于 /config/SecurityConfiguration.java

        您可以更改您想要的 api 的访问权限

           .antMatchers("/api/authenticate").permitAll()
           .antMatchers("/api/**").authenticated()
           .antMatchers("/management/**").hasAuthority(AuthoritiesConstants.ADMIN)
           .antMatchers("/auth/*").hasAnyAuthority("ADMIN", "USER")
        

        或者你可以使用 auth.inMemoryAuthentication()

        更多信息请阅读以下链接:

        https://www.baeldung.com/spring-security-expressions

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-02-12
          • 2020-02-03
          • 2018-11-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-05-10
          • 1970-01-01
          相关资源
          最近更新 更多