1.3. 自定义角色和权限
您可以在 Data Grid 配置中自定义授权设置,以使用带有不同角色和权限组合的角色映射程序。
流程
- 在 Cache Manager 配置中声明一个角色映射程序以及一组自定义角色和权限。
- 配置缓存的授权,以限制基于用户角色的访问。
自定义角色和权限配置
XML
<infinispan> <cache-container name="custom-authorization"> <security> <authorization> <!-- Declare a role mapper that associates a security principal to each role. --> <identity-role-mapper /> <!-- Specify user roles and corresponding permissions. --> <role name="admin" permissions="ALL" /> <role name="reader" permissions="READ" /> <role name="writer" permissions="WRITE" /> <role name="supervisor" permissions="READ WRITE EXEC"/> </authorization> </security> </cache-container> </infinispan>
<infinispan>
<cache-container name="custom-authorization">
<security>
<authorization>
<!-- Declare a role mapper that associates a security principal
to each role. -->
<identity-role-mapper />
<!-- Specify user roles and corresponding permissions. -->
<role name="admin" permissions="ALL" />
<role name="reader" permissions="READ" />
<role name="writer" permissions="WRITE" />
<role name="supervisor" permissions="READ WRITE EXEC"/>
</authorization>
</security>
</cache-container>
</infinispan>
JSON
{ "infinispan" : { "cache-container" : { "name" : "custom-authorization", "security" : { "authorization" : { "identity-role-mapper" : null, "roles" : { "reader" : { "role" : { "permissions" : "READ" } }, "admin" : { "role" : { "permissions" : "ALL" } }, "writer" : { "role" : { "permissions" : "WRITE" } }, "supervisor" : { "role" : { "permissions" : "READ WRITE EXEC" } } } } } } } }
{
"infinispan" : {
"cache-container" : {
"name" : "custom-authorization",
"security" : {
"authorization" : {
"identity-role-mapper" : null,
"roles" : {
"reader" : {
"role" : {
"permissions" : "READ"
}
},
"admin" : {
"role" : {
"permissions" : "ALL"
}
},
"writer" : {
"role" : {
"permissions" : "WRITE"
}
},
"supervisor" : {
"role" : {
"permissions" : "READ WRITE EXEC"
}
}
}
}
}
}
}
}
YAML
infinispan: cacheContainer: name: "custom-authorization" security: authorization: identityRoleMapper: "null" roles: reader: role: permissions: - "READ" admin: role: permissions: - "ALL" writer: role: permissions: - "WRITE" supervisor: role: permissions: - "READ" - "WRITE" - "EXEC"
infinispan:
cacheContainer:
name: "custom-authorization"
security:
authorization:
identityRoleMapper: "null"
roles:
reader:
role:
permissions:
- "READ"
admin:
role:
permissions:
- "ALL"
writer:
role:
permissions:
- "WRITE"
supervisor:
role:
permissions:
- "READ"
- "WRITE"
- "EXEC"