当前位置: 首页 > 知识库问答 >
问题:

为什么在Azure AD保护的Spring Boot应用程序中称为“APPROLE_Admin”而不是“管理员”

程瑞
2023-03-14

我跟随文章,https://docs.microsoft.com/en-us/azure/developer/java/spring-framework/configure-spring-boot-starter-java-app-with-azure-active-directory并创建了一个应用程序角色

并分配给用户

在spring boot应用程序中,我必须使用“APPROLE\u Admin”而不是“Admin”?为什么?应该只有“Admin”,对吗?

@CrossOrigin(origins = "http://localhost:8080")
@RestController
@RequestMapping("/api")
public class TutorialController {

    @Autowired
    TutorialRepository tutorialRepository;

    @PreAuthorize("hasAuthority('APPROLE_Admin')")
    @GetMapping("/tutorials")

共有1个答案

浦思源
2023-03-14

APPROLE_前缀来自Spring Cloud Azure的默认属性配置。

spring.cloud.azure.active-directory.resource-server.claim-to-authority-prefix-map

配置将用于构建GrantedAuthority的声明,以及GrantedAuthority的字符串值的前缀。默认值为:“scp”→ “SCOPE\”,“角色”→ “APPROLE\uu”。

文档链接

可以使用所需前缀更新属性:

spring:
  cloud:
    azure:
      active-directory:
        resource-server:
          claim-to-authority-prefix-map:
            roles: "" # no prefix
            scp: "MY_SCP_PREFIX_"
 类似资料:
  • 问题内容: 在React教程中,它说 这样做会立即发出警报,而不是在单击按钮时发出警报。 但是,我不明白为什么会这样…任何人都可以为我澄清一下吗?为什么不能将函数调用作为处理程序传递? 问题答案: 当您执行此操作时,将调用该函数并将返回的值()分配给该属性。所以,React看到的是这样说的: 嗯,那不是一个函数,为什么我要添加这样的处理程序? 您要传递的是一个函数,而不是。 因此,您必须做:可以像

  • 问题内容: 我正在解决这个问题,有没有一种方法可以覆盖Java中的类变量? 第36条反对意见是: 如果您看到,请运行。 谁能解释为什么皱眉呢? 问题答案: 这是一个风格上的问题,而不是直接的问题。这表明您没有正确考虑班上正在发生的事情。 考虑一下什么意思: 此变量存在于类级别,在每个实例 中并不单独存在,并且在扩展me的类中没有独立存在 。 考虑一下什么意思: 该变量可以在此类,同一包中的 类以及

  • 问题内容: 我已经在Android代码中使用FloatBuffers一段时间了(从一些opengles教程中复制了它),但是我无法确切地理解此构造是什么以及为什么需要它。 例如,我在许多人的代码和android教程中看到了以下代码(或类似代码): 就我所知,这似乎是冗长和混乱的,我只是说它们只是一个浮点数的包装而已。 问题: 与任何其他类型的float集合或简单数组相反,这种类型的类(ByteBu

  • 问题内容: 听说您应该在样式表中使用em而不是像素来定义尺寸和距离。所以问题是,为什么在CSS中定义样式时应该使用em而不是px?有一个很好的例子可以说明这一点吗? 问题答案: 我问这个问题的原因是,我忘记了如何使用em,因为我在CSS中愉快地编程时已经很久了。人们没有注意到我把这个问题笼罩了,因为我并不是在谈论字体本身的大小。我对如何在页面上的 任何给定块元素 上定义样式更感兴趣。 正如Henr

  • 我碰巧知道,在下面的表达式中,使用将导致无限流,将始终为0。我之所以困惑是因为我认为返回的值没有被使用,即便如此,它也不应该中断之后的增量。

  • 问题内容: 什么是JAX WS拦截器?在哪里可以找到相同的信息! 问题答案: JAX- WS拦截器(也称为处理程序)用于以透明方式编织请求的各个方面。例如,日志记录或请求/响应,向消息添加安全标头,加密,压缩等。单个拦截器可以操纵消息的逻辑有效载荷(内容)或消息的协议,但不能同时进行。 有关它们的入门文档,请参见此处。