IdsManager Server JAVA SDK

说明

此文档是JAVA方式接入IDaaS权限系统的SDK使用文档。

使用

下载SDK包

请下载:权限SDK

新建Client

Client client = new Client(ClientConfig.builder()
                .host("http://localhost")
                .port("80")
                .build());

Client参数说明

参数

类型

默认值

说明

enableRateLimit

Boolean

false

开启限流功能

limitTimesPerSecond

Integer

300

每秒限流次数 (QPS),最大不能设置超过500/s,目前支持限流的接口见 {@link ApiPathEnum.limitable}

enableRetry

Boolean

false

开启重试功能

maxAttempts

Integer

3

最大重试次数

delay

Long

1000

重试延迟时间,单位:毫秒

multiplier

Integer

延迟计算时间

enableCache

Boolean

false

开启缓存功能,目前支持开启缓存的接口见 {@link ApiPathEnum.cacheable

maximumCacheSize

Integer

2000

最大缓存数量

expireAfterWrite

Long

2400000

写入缓存后过期时间,单位:毫秒

host

String

IDaas service host

port

String

IDaas service port

httpConnectTimeout

Integer

5000

HTTP连接超时时间,单位:毫秒

httpPoolMaxTotal

Integer

300

HTTP连接池最大连接数

httpPoolMaxIdle

Integer

5

HTTP连接池最大空闲连接数

httpReadTimeout

Integer

30000

HTTP读取超时时间,单位:毫秒

httpWriteTimeout

Integer

30000

HTTP写入超时时间,单位:毫秒

方法调用

获取AccessToken

说明:所有的权限系统相关的接口,都是受保护的资源。只有通过本接口获取到 access_token,才能继续调用后续接口。

请求参数

参数

类型

必须

示例值

描述

client_id

string

78d8be99ef30197c31888f5d2d1390a6pHn71******

从权限系统详情中获取到的 AppKey

client_secret

string

96csUmei1g0tL629ufrVMZviFie7NWBOnGYs******

从权限系统详情中获取到的 AppSecret

grant_type

string

固定值:client_credentials

scope

string

固定值:read

返回参数

参数

类型

示例值

描述

access_token

string

bd3a80ca-24c3-4da8-836f-9efcb2c52c4b

调用接口的令牌

token_type

string

Bearer

固定值

expires_in

string

43199

access_token 过期时间,单位为秒。7200 秒为 2 小时。

scope

Array

[“read”]

固定值

示例
@org.junit.Test
public void testOAuthToken() {
    OAuthTokenRequest request = new OAuthTokenRequest()
            .setClient_id("6abe2e5de7b8e294f73b9bd211bce8445nLWSxxxxx")
            .setClient_secret("9OB2m25jUEQq1A72dWIl2pNigy09ryxjlHxxxxx")
            .setGrant_type("client_credentials")
            .setScope("read");
    OpenApiResponse<OAuthTokenResponse> response = client.getAccessToken(request);
    System.out.println(JsonUtil.toJson(response));
}

结果:

{
    "data": {
        "access_token": "AT71828ec3261c1195a72bf5610f9bd71acoXxxxxxx",
        "token_type": "bearer",
        "expires_in": "7199",
        "scope": [
            "read"
        ]
    },
    "success": true,
    "code": 200,
    "timeCost": 1099,
    "isCacheHit": false
}

验证AccessToken

说明:验证用户的 accessToken 是否失效或已过期。

请求参数

参数

类型

必须

示例值

描述

accessToken

string

bd3a80ca-24c3-4da8-836f-9efcb2c52c4b

用户的 accessToken 值

返回参数

参数

类型

示例值

描述

errorCode

Int

错误码

错误码:0 代表 accessToken 正常,301:错误的 accessToken, 305:请求参数检查失败

示例
@org.junit.Test
public void testValidateAccessToken() {
    OAuthTokenValidationRequest request = new OAuthTokenValidationRequest().setAccessToken(accessToken);
    GlobalHeader globalHeader = new GlobalHeader()
            .setAccess_token(accessToken);
    OpenApiResponse<OAuthTokenValidationResponse> response = client.validateAccessToken(request, globalHeader);
    System.out.println(JsonUtil.toJson(response));
}

结果:

{
    "data": {
        "errorCode": 0
    },
    "success": true,
    "code": 200,
    "timeCost": 1095,
    "isCacheHit": false
}

获取权限详情

说明:获取权限系统的基本信息。

请求参数

参数

类型

必须

示例值

描述

access_token

string

bd3a80ca-24c3-4da8-836f-9efcb2c52c4b

psId

string

Fgh9sKSS

系统id,详情处可见

返回参数

参数

类型

示例值

描述

uuid

string

bd3a80ca-24c3-4da8-836f-9efcb2c52c4b

权限系统唯一标识

createTime

string

2019-09-14 13:54

权限系统创建时间

archived

boolean

false

逻辑删除,false代表正常,true代表已删除

psId

string

AbcaPSKkss

权限系统id

name

string

43199

权限系统名称

creator

string

admin

权限系统创建人

enabled

boolean

true

是否已启用,true代表启用,false代表禁用

remark

string

测试sdk

权限系统描述

示例
@org.junit.Test
public void testGetPsDetail() {
    PSDetailRequest psDetailRequest = new PSDetailRequest()
            .setPsId("ENWnhbxxxP");
    GlobalHeader globalHeader = new GlobalHeader()
            .setAccess_token(accessToken);
    OpenApiResponse<PSDetailResponse> response = client.getPSDetails(psDetailRequest, globalHeader);
    System.out.println(JsonUtil.toJson(response));
}

结果:

{
    "data": {
        "uuid": "4a55707757aa821e15282acc47c9ca479qwwur4FrM8",
        "createTime": "2024-08-01 09:37",
        "archived": false,
        "psId": "nT1535wTeM",
        "name": "测试SDK",
        "remark": "",
        "creator": "test",
        "enabled": true
    },
    "success": true,
    "requestId": "1723172446339$0cde13ec-b48f-ff8d-8aba-e56e7eaddfcf",
    "code": "200",
    "timeCost": 1363,
    "isCacheHit": false
}

获取权限系统的所有角色(分页)

说明:获取指定权限系统下的角色信息。

请求参数

参数

类型

必须

示例值

描述

access_token

string

bd3a80ca-24c3-4da8-836f-9efcb2c52c4b

currentPage

int

1

查询第几页的数据,从 1 开始

pageSize

int

10

每页查询多少条目,不填写默认10条

psId

String

hU2czV4pMR

权限系统id

返回参数

参数

类型

示例值

描述

List

Array

见下面LIST表

currentPage

int

1

当前页数,从 1 开始

totalSize

int

2

总角色数量

pageSize

int

10

一页包含的角色数量

psId

string

hU2czV4pMR

当前 PS 系统 id

list 表:

参数

类型

示例值

描述

uuid

string

4c9b9f14e82a5d4978d5ed229ec1ae4d6912xmCXA1l

角色唯一标识(角色外部id)

name

string

测试角色

角色名,同一个权限系统内,角色名是唯一的,最长64字符,不能为空

permissionValue

string

test_role

角色的权限值

remark

string

admin

描述

enabled

boolean

true

是否已启用

示例
@org.junit.Test
public void testGetPsAllRoles() {
    PSAllRoleRequest psAllRoleRequest = new PSAllRoleRequest()
            .setPsId("ENWnhbpnWP");
    GlobalHeader globalHeader = new GlobalHeader()
            .setAccess_token(accessToken);
    OpenApiResponse<PSAllRoleResponse> response = client.getPSAllRoles(psAllRoleRequest, globalHeader);
    System.out.println(JsonUtil.toJson(response));
}

结果:

{
    "data": {
        "psId": "nT1535wTeM",
        "list": [
            {
                "uuid": "cfe4b413ef2bd0181ba55c0dcd367817Lrv121reKE1",
                "name": "测试6660697e211a-4c88-4233-93a1-6b90addf7283",
                "permissionValue": "test_rolebdce00ad-95eb-4f28-82d6-b60e07de281c",
                "remark": "这是一个测试角色20240807",
                "enabled": true
            },
            {
                "uuid": "0b307dd22103aedd9cf0e18c1be2a7dcTFfkuYG6v69",
                "name": "测试666095d3c3cf-f653-4bb8-9521-575e79edcbb5",
                "permissionValue": "test_rolead7457fb-aa2e-4092-832f-e5c17fd5450c",
                "remark": "这是一个测试角色20240807",
                "enabled": true
            },
            {
                "uuid": "3cb48852f9ad76c19e43276596cf90b51f6giWoyT74",
                "name": "测试3000527222b9-d1b3-4e96-a78f-ce8fe25188cd",
                "permissionValue": "test_rolee360540f-5af2-43a5-84e0-515c83cf5a1e",
                "remark": "这是一个测试角色20240807",
                "enabled": true
            },
            {
                "uuid": "24e8c0d803dc3b8b509c38067c4f8ff2ae3RFLzfXzC",
                "name": "测试角色Up24_e1b6e943-9097-4a96-8f56-fa2afc37a5d7",
                "permissionValue": "test_role_up48d542f1-ac48-4183-8ae8-fada24d52a78",
                "remark": "20240807",
                "enabled": false
            },
            {
                "uuid": "f41bf03b625cf4f8a46b283456705a7aaV5oj31tRF8",
                "name": "测试角色7b2ddb1d-8d86-4c81-b968-3eae248fa9ec",
                "permissionValue": "test_role6c69b445-a958-4845-ac02-d6edc8bd4955",
                "remark": "这是一个测试角色20240807",
                "enabled": true
            },
            {
                "uuid": "09dc5c5bad8f2918327fbf77c04eaf63GogRL6dfvvN",
                "name": "测试角色b1669f7b-19ab-4f35-a0af-bdcb021acc36",
                "permissionValue": "test_role7e17915a-6f53-4e9a-8925-a92e5becdb37",
                "remark": "这是一个测试角色",
                "enabled": true
            }
        ],
        "totalSize": 6,
        "currentPage": 1,
        "pageSize": 10
    },
    "success": true,
    "requestId": "1723173603087$bbea5f1c-3edd-8442-ead0-09199af905bc",
    "code": "200",
    "timeCost": 1673,
    "isCacheHit": false
}

新增角色

说明:向当前的权限系统中新增一个角色。

请求参数

参数

类型

必须

示例值

描述

access_token

string

bd3a80ca-24c3-4da8-836f-9efcb2c52c4b

name

string

测试角色

角色名,同一个权限系统内,角色名是唯一的,最长64字符,不能为空

permissionValue

string

test_role

角色的权限值,统一个权限系统内,角色的权限值是唯一的,最长64字符,

只能包含字母数字和“-”或者“_”,不能为空

enabled

boolean

true

是否启用角色

psId

String

hU2czV4pMR

PS系统id

remark

String

这是一个测试使用的角色

角色描述信息,最长255字符,可以为空

返回参数

参数

类型

示例值

描述

roleUuid

string

447fed833d8739ecb1caf6f38af14e65tthuiDBac88

新生成的角色 全局唯一标识

示例
@org.junit.Test
public void testCreatePSRole() {
    PSRoleCreateRequest request = new PSRoleCreateRequest()
            .setName("测试角色" + UUID.randomUUID())
            .setPermissionValue("test_role" + UUID.randomUUID())
            .setEnabled(true)
            .setRemark("这是一个测试角色")
            .setPsId("ENWnhbpnWP");
    GlobalHeader globalHeader = new GlobalHeader()
            .setAccess_token(accessToken);
    OpenApiResponse<PSRoleCreateResponse> response = client.createPSRole(request, globalHeader);
    System.out.println(JsonUtil.toJson(response));
}

结果:

{
    "data": {
        "roleUuid": "74e98cff081f4a5c6eacc66e64f0b82eMLAeM9tnrPN"
    },
    "success": true,
    "requestId": "1722933589805$0a48b113-ddac-e3d9-bebc-0d717d49453e",
    "code": 200,
    "timeCost": 471,
    "isCacheHit": false
}

编辑角色

说明:修改一个现有的角色

请求参数

参数

类型

必须

示例值

描述

access_token

string

bd3a80ca-24c3-4da8-836f-9efcb2c52c4b

uuid

string

447fed833d8739ecb1caf

待修改的角色全局唯一标识,角色外部id,必填

name

string

测试角色

角色名,同一个权限系统内,角色名是唯一的,最长64字符,如果为空则代表不修改

permissionValue

string

test_role

角色的权限值,统一个权限系统内,角色的权限值是唯一的,最长64字符,

只能包含字母数字和“-”或者“_”,如果为空则代表不修改

enabled

boolean

true

是否启用角色

psId

String

hU2czV4pMR

PS系统id

remark

String

这是一个测试使用的角色

角色描述信息,最长255字符,可以为空

返回参数

示例
    @org.junit.Test
    public void testUpdatePSRole() {
        PSRoleUpdateRequest request = new PSRoleUpdateRequest()
                .setUuid("f41bf03b625cf4f8a46b283456705a7aaV5oj31tRF8")
                .setName("测试角色Up24_" + UUID.randomUUID())
                .setEnabled(false)
                .setPermissionValue("test_role_up" + UUID.randomUUID())
                .setRemark("20240807")
                .setPsId(psId);
        GlobalHeader globalHeader = new GlobalHeader()
                .setAccess_token(accessToken);
        OpenApiResponse<PSRoleUpdateResponse> response = client.updatePSRole(request, globalHeader);
        System.out.println(JsonUtil.toJson(response));
    }

结果:

{
    "data": {

    },
    "success": true,
    "requestId": "1723013054508$8297bc5a-1efb-9558-5d27-75646cc32477",
    "code": 200,
    "timeCost": 357,
    "isCacheHit": false
}

删除角色

说明:根据角色uuid删除角色(仅仅能删除禁用的角色)

请求参数

参数

类型

必须

示例值

描述

access_token

string

bd3a80ca-24c3-4da8-836f-9efcb2c52c4b

uuid

string

447fed833d8739ecb1caf6f38af14e65tthuiDBac88

待删除的角色全局唯一标识,角色外部id

返回参数

示例
    @org.junit.Test
    public void testDeletePSRole() {
        PSRoleDeleteRequest request = new PSRoleDeleteRequest()
                .setUuid("ece64c4ab05eaf084fe13c2c220bb92dL02HRGDPb4x");
        GlobalHeader globalHeader = new GlobalHeader()
                .setAccess_token(accessToken);
        OpenApiResponse<PSRoleDeleteResponse> response = client.deletePSRole(request, globalHeader);
        System.out.println(JsonUtil.toJson(response));
    }

结果:

{
    "success": true,
    "requestId": "1723014637077$b85d46cd-917b-9982-fcc0-2585197f0e7d",
    "code": 200,
    "timeCost": 939,
    "isCacheHit": false
}

获取权限系统的资源(分页)

说明:获取权限系统的资源(分页),支持通过父级查询子级

请求参数

参数

类型

必须

示例值

描述

access_token

string

bd3a80ca-24c3-4da8-836f-9efcb2c52c4b

currentPage

int

1

查询第几页的数据,从 1 开始

pageSize

int

10

每页查询多少条目,不填写默认10条

psId

String

hU2czV4pMR

PS系统id

parentPermissionUuid

String

1dd90f467e3b3d7662e54ca9f3cfa6fa1d3ojutCdNA

父级资源uuid

searchVal

String

permission

搜索权限名称或权限值关键字,右模糊查询

返回参数

参数

类型

示例值

描述

List

Array

见下面LIST表

currentPage

int

1

当前页数,从 1 开始

totalSize

int

2

总角色数量

pageSize

int

10

一页包含的角色数量

psId

string

hU2czV4pMR

当前 PS 系统 id

list 表:

参数

类型

示例值

描述

uuid

string

4c9b9f14e82a5d4978d5ed229ec1ae4d6912xmCXA1l

权限全局唯一标识

name

string

permission_name

权限资源名称

permissionValue

string

permission_value

权限资源值

remark

string

admin

描述

relationUrl

string

http:?/your-domain.co

displayOrder

long

99

creator

string

test

创建账户名

enterpriseUuid

string

1228c04ba88eb0bf9b6ac73ca662981c4MeFW4wy66B

公司uuid

psSystemUuid

string

4a55707757aa821e15282acc47c9ca479qwwur4FrM8

权限系统uuid

parentPermissionUuid

string

677f5f6f1fa474403505423d6b9685d5ph6TlIFmPte

父级权限资源uuid

defaultPermission

boolean

false

是否为默认的PS权限

groupId

string

-

对默认权限资源进行分组

thirdPermission

boolean

false

是否为三级权限

imported

boolean

false

是否是导入的权限资源

parentPermissionExternalId

string

677f5f6f1fa474403505423d6b9685d5ph6TlIFmPte

父级的外部ID

externalId

string

7241f8c9c04d6f9f55635a6d4dd7ac24E298PKegwEr

外部ID

type

string

menu

类型

directory

string

test02

权限资源路径

isParent

boolean

false

是否是父级权限资源

createTime

string

2024-08-07 15:18

创建时间

archived

boolean

false

逻辑删除标识

示例
    @org.junit.Test
    public void testGetPSPermissionPaginated() {
        PSPermissionPaginatedRequest request = new PSPermissionPaginatedRequest()
                .setCurrentPage(1)
                .setPageSize(10)
                .setPsId(psId);
        GlobalHeader globalHeader = new GlobalHeader()
                .setAccess_token(accessToken);
        OpenApiResponse<PSPermissionPaginatedResponse> response = client.getPSPermissionPaginated(request, globalHeader);
        System.out.println(JsonUtil.toJson(response));
    }

结果:

{
    "data": {
        "list": [
            {
                "uuid": "72207d1c33c3b15761fc4c5fee82a621cmGSZzsnun6",
                "createTime": "2024-08-07 16:22",
                "archived": false,
                "name": "测试权限567-e4afb803-60c5-40a3-8da4-ab30b8d05e75",
                "permissionValue": "test_permissione3a92788-fae1-4cb1-8b60-1208402ab45c",
                "remark": "20240807",
                "enterpriseUuid": "1228c04ba88eb0bf9b6ac73ca662981c4MeFW4wy66B",
                "psSystemUuid": "4a55707757aa821e15282acc47c9ca479qwwur4FrM8",
                "defaultPermission": false,
                "thirdPermission": false,
                "imported": false,
                "externalId": "72207d1c33c3b15761fc4c5fee82a621cmGSZzsnun6",
                "type": "menu",
                "displayOrder": 0,
                "directory": " / ",
                "isParent": false
            }
        ],
        "totalSize": 1,
        "currentPage": 1,
        "pageSize": 10
    },
    "success": true,
    "requestId": "1723119854271$3aba5c54-da9b-b655-2f5e-16bdc5a4286c",
    "code": "200",
    "timeCost": 1311,
    "isCacheHit": false
}

新增权限

说明:向当前的权限系统中新增一个权限。 IDaaS 权限系统可以维持一个属性接口,所以可以通过 parentUuid 参数指定父级权限。

请求参数

参数

类型

必须

示例值

描述

access_token

string

bd3a80ca-24c3-4da8-836f-9efcb2c52c4b

name

string

测试权限

权限名,最长64字符,不可为空

permissionValue

string

demo_permission

权限的权限值,同一个权限系统内唯一,最长64个字符,不可为空

type

string

menu

menu(菜单类权限),button(按钮型权限),api(接口类型),other(其他类型),data (数据类型)

psId

string

hU2czV4pMR

PS系统id

parentUuid

string

9b63a96ee5aa800641b5a4

父级权限全局唯一标识,可填资源外部id,可以为null或者空字符串,null或者空字符串代表顶级的权限

parentValue

string

test1

父级权限资源值,parentValue和parentUuid选用其一,当parentUuid为空时才会使用parentValue

remark

string

这是一个测试使用的权限

权限描述信息,可以为空,最长1024字符

relationUrl

string

http:?/your-domain.co

资源URL,可以为空,最长1024字符

clientToken

string

Kqji1upjakhjdihq3e

IDaaS 幂等机制字段,由调用方自动随机生成,标识一次请求操作。

displayOrder

long

99

显示顺序,可以为空,只能为非负数字

返回参数

参数

类型

示例值

描述

permissionUuid

string

7dabd9e92a175781072c265aeccfc0f6nmYAtFqciZ8

新生成的 全局唯一标识

示例
    @org.junit.Test
    public void testCreatePSPermission() {
        PSPermissionCreateRequest request = new PSPermissionCreateRequest()
                .setName("测试权限20240807-" + UUID.randomUUID())
                .setPermissionValue("test_permission" + UUID.randomUUID())
                .setType("menu")
                .setRemark("20240807")
                .setPsId(psId);
        GlobalHeader globalHeader = new GlobalHeader()
                .setAccess_token(accessToken);
        OpenApiResponse<PSPermissionCreateResponse> response = client.createPSPermission(request, globalHeader);
        System.out.println(JsonUtil.toJson(response));
    }

结果:

{
    "data": {
        "permissionUuid": "afc43858abad1c42bde8af87acccfd7dZvSbZU1VqTQ"
    },
    "success": true,
    "requestId": "1723015424248$bd37b520-0a3b-5896-34c1-2db5058af9cc",
    "code": 200,
    "timeCost": 286,
    "isCacheHit": false
}

编辑权限

说明:编辑当前的权限系统中一个权限

请求参数

参数

类型

必须

示例值

描述

access_token

string

bd3a80ca-24c3-4da8-836f-9efcb2c52c4b

uuid

string

9b63a96ee5aa800641b5a4a

待编辑的权限全局唯一标识,资源外部id

name

string

测试权限

权限名,最长64字符,为空代表不修改

permissionValue

string

demo_permission

权限的权限值,同一个权限系统内唯一,最长64个字符,为空代表不修改

type

string

menu

非数据类型:menu(菜单类权限),button(按钮型权限),api(接口类型),other(其他类型);数据类型:data (数据类型);数据类型不允许修改类型,非数据类型不能修改为数据类型

remark

string

这是一个测试使用的权限

权限描述信息,可以为空,最长1024字符

relationUrl

string

http:?/your-domain.co

资源URL,可以为空,最长1024字符

parentUuid

string

9b63a96ee5aa800641b5a4

父级权限全局唯一标识,资源外部id,为 null 代表不修改,为空字符传代表 修改为顶级节点

parentValue

string

test1

父级权限资源值,parentValue和parentUuid选用其一,当parentUuid为空时才会使用parentValue

displayOrder

long

99

显示顺序,可以为空,只能为非负数字

返回参数

示例
    @org.junit.Test
    public void testUpdatePSPermission() {
        PSPermissionUpdateRequest request = new PSPermissionUpdateRequest()
                .setUuid("afc43858abad1c42bde8af87acccfd7dZvSbZU1VqTQ")
                .setName("permission-update-" + UUID.randomUUID())
                .setPermissionValue("test_update_permission" + UUID.randomUUID())
                .setType("menu")
                .setRemark("这是一个测试权限987_update")
                .setPsId(psId);
        GlobalHeader globalHeader = new GlobalHeader()
                .setAccess_token(accessToken);
        OpenApiResponse<PSPermissionUpdateResponse> response = client.updatePSPermission(request, globalHeader);
        System.out.println(JsonUtil.toJson(response));
    }

结果:

{
    "success": true,
    "requestId": "1723015628526$2278c338-e709-d471-8b1a-6d1719227b77",
    "code": 200,
    "timeCost": 286,
    "isCacheHit": false
}

删除权限

说明:删除一个现有权限。注意,当拥有子权限时,不可直接删除。

请求参数

参数

类型

必须

示例值

描述

access_token

string

bd3a80ca-24c3-4da8-836f-9efcb2c52c4b

uuid

string

9b63a96ee5aa800641b5a4a

待删除的角色全局唯一标识,资源外部id

返回参数

示例
@org.junit.Test
public void testDeletePSPermission() {
    PSPermissionDeleteRequest request = new PSPermissionDeleteRequest()
    .setUuid("677f5f6f1fa474403505423d6b9685d5ph6TlIFmPte");
    GlobalHeader globalHeader = new GlobalHeader()
    .setAccess_token(accessToken);
    OpenApiResponse<PSPermissionDeleteResponse> response = client.deletePSPermission(request, globalHeader);
    System.out.println(JsonUtil.toJson(response));
}
{
  "success": true,
  "requestId": "1723015853481$af80a8f0-5f71-059e-64eb-51eb4cc878f3",
  "code": 200,
  "timeCost": 955,
  "isCacheHit": false
}

获取指定角色的已关联权限(分页)

说明:获取指定角色的所有已关联权限

请求参数

参数

类型

必须

示例值

描述

access_token

string

bd3a80ca-24c3-4da8-836f-9efcb2c52c4b

roleUuid

String

447fed833d8739ecb1caf6f38af14e65tthuiDBac88

指定角色 全局唯一标识,角色外部id

currentPage

int

1

当前返回页数,从 1 开始

pageSize

int

10

每页数量

psId

String

KSJDJSKkk

系统id,详情处可见

返回参数

参数

类型

示例值

描述

List

Array

见下面LIST表

角色列表

creator

string

Admin

创建人

currentPage

number

1

当前页数,从 1 开始

totalSize

number

2

总角色数量

totalSize

int

2

总角色数量

pageSize

number

10

一页包含的角色数量

psId

string

hU2czV4pMR

当前 PS 系统 id

List 表:

参数

类型

示例值

描述

uuid

string

4c9b9f14e82a5d4978d5ed229ec1ae4d6912xmCXA1l

权限 uuid

parentPermissionUuid

string

978d5ed229ec1ae4d6912xmCXA1l4c9b9f14e82a5d4

父级权限的 uuid

name

string

测试权限

access_token 过期时间,单位为秒。7200 秒为 2 小时。

permissionValue

string

test_permission

权限的权限值

remark

string

这是一个新的测试权限。

描述

type

boolean

menu

是否已启用

relationUrl

string

http://www.your-domain.com

资源URL

dataAccessRules

Array

{“uuid”:””,”type”:””,”accessRule”:””}

数据访问权限,当前版本集合值可能为空暂不支持

示例
@org.junit.Test
public void testGetPSRolePermissions() {
    PSRolePermissionsRequest request = new PSRolePermissionsRequest()
    .setCurrentPage(1)
    .setPageSize(10)
    .setPsId(psId)
    .setRoleUuid("3cb48852f9ad76c19e43276596cf90b51f6giWoyT74");
    GlobalHeader globalHeader = new GlobalHeader()
    .setAccess_token(accessToken);
    OpenApiResponse<PSRolePermissionsPaginatedResponse> response = client.getPSRolePermissions(request, globalHeader);
    System.out.println(JsonUtil.toJson(response));
}

结果:

{
  "data": {
    "psId": "nT1535wTeM",
    "roleUuid": "3cb48852f9ad76c19e43276596cf90b51f6giWoyT74",
    "list": [
      {
        "uuid": "677f5f6f1fa474403505423d6b9685d5ph6TlIFmPte",
        "name": "test012",
        "permissionValue": "test012",
        "type": "menu"
      },
      {
        "uuid": "7241f8c9c04d6f9f55635a6d4dd7ac24E298PKegwEr",
        "parentPermissionUuid": "677f5f6f1fa474403505423d6b9685d5ph6TlIFmPte",
        "name": "test013",
        "permissionValue": "test013",
        "type": "menu"
      }
    ],
    "totalSize": 2,
    "currentPage": 1,
    "pageSize": 10
  },
  "success": true,
  "requestId": "1723018094704$24c7d0e1-cae1-7901-b9cb-b94bd415d1ab",
  "code": 200,
  "timeCost": 626,
  "isCacheHit": false
}

把权限关联到角色

说明:建立权限和角色之间的关联关系。

请求参数

access_token

string

bd3a80ca-24c3-4da8-836f-9efcb2c52c4b

roleUuid

String

447fed833d8739ecb1caf6f38af1

指定角色 全局唯一标识,角色外部id

attachedPermissionUuidCollection

Array

[“tyG8nUWw”]

想要新增权限 全局唯一标识数组,资源外部id

detachedPermissionUuidCollection

Array

[“tyG8nUWw”]

想要取消权限 全局唯一标识数组,资源外部id

返回参数

示例
@org.junit.Test
public void testPSRoleModifyPermissions() {
    PSRoleModifyPermissionsRequest request = new PSRoleModifyPermissionsRequest()
    .setRoleUuid("0b307dd22103aedd9cf0e18c1be2a7dcTFfkuYG6v69")
    .setAttachedPermissionUuidCollection(Arrays.asList("72207d1c33c3b15761fc4c5fee82a621cmGSZzsnun6"));
    GlobalHeader globalHeader = new GlobalHeader()
    .setAccess_token(accessToken);
    OpenApiResponse<PSRoleModifyPermissionsResponse> response = client.psRoleModifyPermissions(request, globalHeader);
    System.out.println(JsonUtil.toJson(response));
}

结果:

{
  "success": true,
  "requestId": "1723018978517$acec547f-a6c0-4664-1308-5e6a0a2c6de1",
  "code": 200,
  "timeCost": 642,
  "isCacheHit": false
}

资源授权给实体

说明:将资源授权给实体。

请求参数

请求参数

参数

类型

必须

示例值

描述

entityUuid

string

bd3a80ca-24c3-4da8-836f-9efcb2c52c4b

实体uuid,例如用户uuid

entityExternalId

string

d70f635dff6c07f022c387520e552459tval7L7X6cF

实体外部id,例如用户外部id,entityUuid和entityExternalId二者必填其一

entityType

String

UD_ACCOUNT

实体类型:UD_ACCOUNT(账户)、ORGANIZATION_UNIT(组织机构)、UD_GROUP(组)、ATTRIBUTE_CLASS(分类)

psId

String

SAFJASJk

系统id,详情处可见

forwardAddPrivilegeUuidCollection

Array

见下面privilegeUuidCollection表

正向添加权限列表

forwardRemovePrivilegeUuidCollection

Array

见下面privilegeUuidCollection表

正向取消权限列表

reverseAddPrivilegeUuidCollection

Array

见下面privilegeUuidCollection表

反向添加权限列表

reverseRemovePrivilegeUuidCollection

Array

见下面privilegeUuidCollection表

反向取消权限列表

forwardAddDataItemOperation

Array

见下面dataItemOperation表

正向添加数据权限操作列表

forwardRemoveDataItemOperation

Array

见下面dataItemOperation表

正向取消数据权限操作列表

reverseAddDataItemOperation

Array

见下面dataItemOperation表

反向添加数据权限操作列表

reverseRemoveDataItemOperation

Array

见下面dataItemOperation表

反向取消数据权限操作列表

privilegeUuidCollection 表:

参数

类型

必须

示例值

描述

privilegeType

string

PS_PERMISSION

权限类型

authorizations

Array

[{“privilegeUuid”:“72207d1c33c3b15761fc4c5fee82a621cmGSZzsnun6”}]

权限列表

└privilegeUuid

string

9736d72a5f60d290bf36992457fba89575ggd7Hwm2Z

权限uuid

dataItemOperation 表:

参数

类型

必须

示例值

描述

psPrivilegeUuid

string

a60e86e4aa1e2d1a52363fe72131c422exG6MhAlrqb

数据权限的权限uuid

psDataModuleValue

string

xxxx

数据权限模型值

attachedPSDataOperationValueCollection

Array

[“xxx1”,“xxx2”]

操作类型值列表,如果是取消授权使用detachedPSDataOperationValueCollection

返回参数

无。

示例
@org.junit.Test
public void testPSUpdateEntityPrivilege() {
    PSEntityPrivilegeUpdateRequest request = new PSEntityPrivilegeUpdateRequest()
    .setEntityType(PSEntityType.UD_ACCOUNT)
    .setEntityUuid("a7f0086f40ef70f3cea996810c7d3fc4KNJvf8FGPg6")
    .setPsId(psId)
    .setForwardAddPrivilegeUuidCollection(
        Collections.singletonList(new PSEntityPrivilegeUpdateRequest.BFFEntityAuthorizationPrivilegeAddDto().setPrivilegeType("PS_PERMISSION").setAuthorizations(
            Collections.singletonList(new PSEntityPrivilegeUpdateRequest.BFFEntityAuthorizationDto().setPrivilegeUuid("677f5f6f1fa474403505423d6b9685d5ph6TlIFmPte"))))
    );
    GlobalHeader globalHeader = new GlobalHeader()
    .setAccess_token(accessToken);
    OpenApiResponse<PSEntityPrivilegeUpdateResponse> response = client.psUpdateEntityPrivilege(request, globalHeader);
    System.out.println(JsonUtil.toJson(response));
}

结果:

{
    "success": true,
    "requestId": "1723118602927$6200b61c-8934-3c48-952d-f5b9a582232c",
    "code": "200",
    "timeCost": 1730,
    "isCacheHit": false
}

~~查询已授权列表~~

返回值代码中没有固定的dto,用的是List。 说明:

请求参数

参数

类型

必须

示例值

描述

access_token

string

bd3a80ca-24c3-4da8-836f-9efcb2c52c4b

psId

String

SAFJASJk

系统id,详情处可见

entityType

String

UD_ACCOUNT

实体类型:UD_ACCOUNT(账户)、ORGANIZATION_UNIT(组织机构)、UD_GROUP(组)、ATTRIBUTE_CLASS(分类)

entityUuid

String

f7cd1f3ae7edfe52c1c674001026364aacfs4HtB0Oz

实体uuid,例如用户uuid

entityExternalId

string

d70f635dff6c07f022c387520e552459tval7L7X6cF

实体外部id,例如用户外部id,entityUuid和entityExternalId二者必填其一

privilegeType

String

PS_PERMISSION

权限类型,自建系统默认填PS_PERMISSION,查询数据权限时需要填数据权限值

includeInherited

String

true

是否查询继承权限

limitPrivilegeUuidCollection

Array

限制只查询部分资源

dataModulePrivilegeUuid

Array

c1c6526364aacfs4H7400102f7cd1f3ae7edfetB0Oz

数据权限uuid

返回参数

参数

类型

示例值

描述

type

String

menu

类型,menu,button等,如果是data是数据权限

permissionUuid

String

978d5ed229ec1ae4d6912xmCXA1l4c9b9f14e82a5d4

权限列表

permissionName

string

app

权限名称

privilegeType

string

PS_PERMISSION

权限类型

psDataModuleUuid

string

8d1cff94a8d7a291b5625b466c12319duf0wQUNno3E

数据权限uuid

checkStatus

string

8d1cff94a8d7a291b5625b466c12319duf0wQUNno3E

权限状态

psDataModuleValue

string

数据权限值

operationName

string

新增

操作名称

operationValue

string

ADD

操作值

uuid

string

8d1cff94a8d7a291b5625b466c12319duf0wQUNno3E

操作uuid

示例
    @org.junit.Test
    public void testPSListEntityPrivilege() {
        PSEntityPrivilegeListRequest request = new PSEntityPrivilegeListRequest()
                .setPsId(psId)
                .setEntityUuid("a7f0086f40ef70f3cea996810c7d3fc4KNJvf8FGPg6")
                .setEntityType(PSEntityType.UD_ACCOUNT)
                .setPrivilegeType("PS_PERMISSION");
        GlobalHeader globalHeader = new GlobalHeader()
                .setAccess_token(accessToken);
        OpenApiResponse<PSEntityPrivilegeListResponse> response = client.psListEntityPrivilege(request, globalHeader);
        System.out.println(JsonUtil.toJson(response));
    }

结果:

{
    "data": {
        "list": [
            {
                "parent": false,
                "permissionUuid": "7241f8c9c04d6f9f55635a6d4dd7ac24E298PKegwEr",
                "displayOrder": 1,
                "type": "menu",
                "checkStatus": "ALLOW",
                "parentPermissionUuid": "677f5f6f1fa474403505423d6b9685d5ph6TlIFmPte",
                "psSystemUuid": "4a55707757aa821e15282acc47c9ca479qwwur4FrM8",
                "containsInheritance": false,
                "psDataModuleUuid": "",
                "checked": false,
                "psDataModuleValue": "",
                "privilegeType": "test013",
                "open": false,
                "permissionName": "test013"
            }
        ]
    },
    "success": true,
    "requestId": "1723117906568$c4fd9ca4-409d-22c9-3d4f-92fb78767ba3",
    "code": "200",
    "timeCost": 2505,
    "isCacheHit": false
}

获取角色所有已授权用户(分页)

说明:获取当前角色所有已经授权的用户列表

请求参数

参数

类型

必须

示例值

描述

access_token

string

bd3a80ca-24c3-4da8-836f-9efcb2c52c4b

roleUuid

String

447fed833d8739ecb1caf6f38af14e65tthuiDBac88

指定角色全局唯一标识,角色外部id

currentPage

int

1

当前返回页数,从 1 开始

pageSize

int

10

每页数量

psId

String

SAFJASJk

系统id,详情处可见

返回参数

list

Array

角色列表

└udAccountUuid

string

978d5ed229ec1ae4d6912xmCXA1l4c9b9f14e82a5d4

IDaaS 系统内 UDAccount 的全局唯一标识

└username

string

michael

用户名

└displayName

string

Michael Dis

显示名称

perPageSize

number

10

当前请求一页几条数据参数反馈

totalSize

number

2

总角色数量

psId

string

XuJNOLtDam

当前 PS 系统 id

roleUuid

string

b661f136fbde1c895b44eda7111ab458s736vCvD8aB

当前角色 uuid

currentPage

number

1

当前页数,从 1 开始

pageSize

number

10

一页包含的角色数量

示例
@org.junit.Test
public void testPSRoleUsers() {
    PSRoleUsersRequest request = new PSRoleUsersRequest()
    .setCurrentPage(1)
    .setPageSize(10)
    .setPsId(psId)
    .setRoleUuid("09dc5c5bad8f2918327fbf77c04eaf63GogRL6dfvvN");
    GlobalHeader globalHeader = new GlobalHeader()
    .setAccess_token(accessToken);
    OpenApiResponse<PSRoleUsersResponse> response = client.psRoleUsers(request, globalHeader);
    System.out.println(JsonUtil.toJson(response));
}

结果:

{
  "data": {
    "list": [
      {
        "udAccountUuid": "58dc9bf5f38d04bb1466d3d0387ccd58dUPu3KCl26F",
        "username": "luowengang",
        "displayName": "luowengang1",
        "externalId": "1835089752187545102"
      }
    ],
    "currentPage": 1,
    "totalSize": 1,
    "pageSize": 10,
    "perPageSize": 0
  },
  "success": true,
  "requestId": "1723188853276$01a5156d-f5ea-ca26-82ac-20acdee8f9b7",
  "code": "200",
  "timeCost": 1379,
  "isCacheHit": false
}

获取权限系统指定用户的角色和权限

说明:获取用户已授权的角色和权限。

请求参数

参数

类型

必须

示例值

描述

access_token

string

bd3a80ca-24c3-4da8-836f-9efcb2c52c4b

username

String

Zhangsan

指定的用户名

psId

String

SAFJASJk

系统id,详情处可见

返回参数

返回参数

参数

类型

示例值

描述

permissions

List

管理的权限列表

roles

List

管理的角色列表

PSPermissionAPIDto:

参数

类型

示例值

描述

uuid

string

978d5ed229ec1ae4d6912xmCXA1l4c9b9f14e82a5d4

IDaaS 系统内 权限的全局唯一标识

parentPermissionUuid

String

978d5ed229ec1ae4d6912xmCXA1l4c9b9f14e82a123

父级权限uuid

name

string

Add用户

权限名称

remark

string

Add user test

备注

relationUrl

string

http://your-domain.com

资源URL

permissionValue

string

ADD

权限值

type

string

Menu

类型,menu,button等

dataAccessRules

List

规则

PSDataAccessRuleAPIDto:

参数

类型

示例值

描述

accessRule

String

规则

uuid

string

978d5ed229ec1ae4d6912xmCXA1l4c9b9f14e82a5d4

IDaaS 系统内 权限的全局唯一标识

type

string

规则类型

BFFPSRoleDto:

参数

类型

示例值

描述

systemUuid

String

978d5ed229ec1ae4d6912xmCXA1l4c9b9f14e82a123

系统uuid

roleUuid

string

978d5ed229ec1ae4d6912xmCXA1l4c9b9f14e82a5d4

角色uuid

roleName

string

Add用户

角色名称

permissionValue

string

ADD

权限值

remark

string

备注

备注

checkStatus

string

NULL

当前授权状态

containsInheritance

boolean

false

是否包含继承

roleNameCode

string

测试角色

国际化code

示例
@org.junit.Test
public void testPSUserRolePermissions() {
    PSUserRolePermissionsRequest request = new PSUserRolePermissionsRequest()
    .setPsId(psId)
    .setUsername("luowengang");
    GlobalHeader globalHeader = new GlobalHeader()
    .setAccess_token(accessToken);
    OpenApiResponse<PSUserRolePermissionsResponse> response = client.psUserRolePermissions(request, globalHeader);
    System.out.println(JsonUtil.toJson(response));
}

结果:

{
    "data": {
        "rolePermissions": [

        ],
        "permissions": [
            {
                "uuid": "677f5f6f1fa474403505423d6b9685d5ph6TlIFmPte",
                "name": "test012",
                "permissionValue": "test012",
                "type": "menu"
            }
        ],
        "roles": [
            {
                "roleUuid": "09dc5c5bad8f2918327fbf77c04eaf63GogRL6dfvvN",
                "roleName": "测试角色b1669f7b-19ab-4f35-a0af-bdcb021acc36",
                "systemUuid": "4a55707757aa821e15282acc47c9ca479qwwur4FrM8",
                "permissionValue": "test_role7e17915a-6f53-4e9a-8925-a92e5becdb37",
                "remark": "这是一个测试角色"
            }
        ]
    },
    "success": true,
    "requestId": "1723115092863$d947f74e-76ea-9495-3d72-9259e17f2d19",
    "code": "200",
    "timeCost": 2120,
    "isCacheHit": false
}

判断用户是否有角色

说明:判断用户是否拥有某角色

请求参数

参数

类型

必须

示例值

描述

access_token

string

bd3a80ca-24c3-4da8-836f-9efcb2c52c4b

roleUuid

String

540cf6e8b05b09b3938f865b33ab30d1

指定角色全局唯一标识,可填角色uuid或角色外部id,roleUuid和roleValue二者必填其一

roleValue

String

role_value

角色值,roleUuid和roleValue二者必填其一

username

String

michael

指定账号的账户名

psId

String

SAFJASJk

系统id,详情处可见

返回参数

boolean类型。

示例
@org.junit.Test
public void testCheckUserPsHasRole() {
    PSUserHasRoleCheckRequest request = new PSUserHasRoleCheckRequest()
    .setPsId("TWMgMT5yHt")
    .setUsername("123323")
    .setRoleUuid("9d5e0510ce017c16b280dc07189a29bdDoPKIR64v9t");
    GlobalHeader globalHeader = new GlobalHeader()
    .setAccess_token(accessToken);
    OpenApiResponse<Boolean> response = client.checkUserPsHasRole(request, globalHeader);
    System.out.println(JsonUtil.toJson(response));
}

结果:

{
  "data": true,
  "success": true,
  "requestId": "1723114874143$9228947f-51c8-180d-c512-4226a0475b59",
  "code": "200",
  "timeCost": 1300,
  "isCacheHit": false
}

根据权限uuid判断用户是否有权限

说明:判断用户是否拥有某权限

请求参数

参数

类型

必须

示例值

描述

access_token

string

bd3a80ca-24c3-4da8-836f-9efcb2c52c4b

permissionUuid

String

447fed833d8739ecb1caf6f38af14e65tthuiDBac88

指定权限全局唯一标识

username

String

michael

指定账号的用户名

psId

String

ASFjasds

系统id,系统详情处可见

返回参数

boolean类型。

示例
@org.junit.Test
public void testCheckUserPsHasPermission() {
    PSUserHasPermissionCheckRequest request = new PSUserHasPermissionCheckRequest()
    .setPsId(psId)
    .setUsername("test01")
    .setPermissionUuid("7241f8c9c04d6f9f55635a6d4dd7ac24E298PKegwEr");
    GlobalHeader globalHeader = new GlobalHeader()
    .setAccess_token(accessToken);
    OpenApiResponse<Boolean> response = client.checkUserPsHasPermission(request, globalHeader);
    System.out.println(JsonUtil.toJson(response));

}

结果:

{
    "data": false,
    "success": true,
    "requestId": "1723114657972$4a86496f-de99-87da-3d94-6fdc8d8b07e4",
    "code": "200",
    "timeCost": 1492,
    "isCacheHit": false
}