Yaml 使用Env变量的Spring云数据流的自定义范围

Yaml 使用Env变量的Spring云数据流的自定义范围,yaml,spring-security-oauth2,spring-cloud-dataflow,scopes,Yaml,Spring Security Oauth2,Spring Cloud Dataflow,Scopes,我试图在CloudFoundry上部署SpringCloudDataFlowServer,并使用角色映射将默认角色映射到我自己的作用域 为了做到这一点,我将遵循将映射oauth作用域设置为true的状态,然后所有7个Spring云数据流角色都应映射到作用域 我注意到您可以使用env对象下的manifest.yml配置上述属性,并对键进行一些修改。如本层次结构所述: spring: cloud: dataflow: security: authorizati

我试图在CloudFoundry上部署SpringCloudDataFlowServer,并使用角色映射将默认角色映射到我自己的作用域

为了做到这一点,我将遵循将映射oauth作用域设置为true的状态,然后所有7个Spring云数据流角色都应映射到作用域

我注意到您可以使用env对象下的manifest.yml配置上述属性,并对键进行一些修改。如本层次结构所述:

spring:
  cloud:
    dataflow:
      security:
        authorization:
          map-oauth-scopes: true                                    
          role-mappings:
            ROLE_CREATE: dataflow.create                            
            ROLE_DEPLOY: dataflow.deploy
            ROLE_DESTROY: dataflow.destoy
            ROLE_MANAGE: dataflow.manage
            ROLE_MODIFY: dataflow.modify
            ROLE_SCHEDULE: dataflow.schedule
            ROLE_VIEW: dataflow.view
可以在manifest.yml中这样表示:

- env:
  SPRING_CLOUD_DATAFLOW_SECURITY_AUTHORIZATION_MAP-OAUTH-SCOPES: true
  SPRING_CLOUD_DATAFLOW_SECURITY_AUTHORIZATION_ROLE-MAPPINGS_ROLE_CREATE: <my-scope>
  ...
-env:
SPRING\u CLOUD\u DATAFLOW\u SECURITY\u AUTHORIZATION\u MAP-OAUTH-SCOPES:true
SPRING\云\数据流\安全\授权\角色映射\角色\创建:
...
映射oauth作用域已正确设置,但角色映射未正确设置。我怀疑is与角色前缀中的下划线有关(例如角色创建),因为env格式的“转换”需要下划线作为层次结构

我错过了什么?如何使用manifest.yml设置角色映射


提前谢谢

好的,所以不确定这是否是你应该怎么做的,不管它是如何工作和容易设置的

在manifest.yml中,添加一个SPRING\u APPLICATION\u JSON条目,并将映射作为JSON传递

applications:
- env:
   ...
    SPRING_PROFILES_DEFAULT: cloud
    SPRING_APPLICATION_JSON: |-
        {
           "spring.cloud.dataflow.security.authorization": {
               "map-oauth-scopes": true,                                  
               "role-mappings": {
                  "ROLE_CREATE": "my.scope.for.create",                        
                  "ROLE_DEPLOY": "my.scope.for.deploy",
                  "ROLE_DESTROY": "my.scope.for.destroy",
                  "ROLE_MANAGE": "my.scope.for.manage",
                  "ROLE_MODIFY": "my.scope.for.modify",
                  "ROLE_SCHEDULE": "my.scope.for.schedule",
                  "ROLE_VIEW": "my.scope.for.view"
               }
            }
        }
显然,所有角色的作用域可以相同,也可以因角色而异,这取决于业务逻辑。 仅确保使用具有范围的用户登录