Skip to content

Commit db093b1

Browse files
author
yutingzeng
committed
修改函数位置,删除userbuf的注释
1 parent 9e6dd71 commit db093b1

File tree

1 file changed

+44
-55
lines changed

1 file changed

+44
-55
lines changed

src/main/java/com/tencentyun/TLSSigAPIv2.java

Lines changed: 44 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,50 @@ public TLSSigAPIv2(long sdkappid, String key) {
2525
this.key = key;
2626
}
2727

28+
/**
29+
* 【功能说明】用于签发 TRTC 和 IM 服务中必须要使用的 UserSig 鉴权票据
30+
* <p>
31+
* 【参数说明】
32+
*
33+
* @param userid - 用户id,限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。
34+
* @param expire - UserSig 票据的过期时间,单位是秒,比如 86400 代表生成的 UserSig 票据在一天后就无法再使用了。
35+
* @return usersig -生成的签名
36+
*/
37+
public String genUserSig(String userid, long expire) {
38+
return genUserSig(userid, expire, null);
39+
}
40+
41+
/**
42+
* 【功能说明】
43+
* 用于签发 TRTC 进房参数中可选的 PrivateMapKey 权限票据。
44+
* PrivateMapKey 需要跟 UserSig 一起使用,但 PrivateMapKey 比 UserSig 有更强的权限控制能力:
45+
* - UserSig 只能控制某个 UserID 有无使用 TRTC 服务的权限,只要 UserSig 正确,其对应的 UserID 可以进出任意房间。
46+
* - PrivateMapKey 则是将 UserID 的权限控制的更加严格,包括能不能进入某个房间,能不能在该房间里上行音视频等等。
47+
* 如果要开启 PrivateMapKey 严格权限位校验,需要在【实时音视频控制台】/【应用管理】/【应用信息】中打开“启动权限密钥”开关。
48+
* <p>
49+
* 【参数说明】
50+
*
51+
* @param userid - 用户id,限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。
52+
* @param expire - PrivateMapKey 票据的过期时间,单位是秒,比如 86400 生成的 PrivateMapKey 票据在一天后就无法再使用了。
53+
* @param roomid - 房间号,用于指定该 userid 可以进入的房间号
54+
* @param privilegeMap - 权限位,使用了一个字节中的 8 个比特位,分别代表八个具体的功能权限开关:
55+
* - 第 1 位:0000 0001 = 1,创建房间的权限
56+
* - 第 2 位:0000 0010 = 2,加入房间的权限
57+
* - 第 3 位:0000 0100 = 4,发送语音的权限
58+
* - 第 4 位:0000 1000 = 8,接收语音的权限
59+
* - 第 5 位:0001 0000 = 16,发送视频的权限
60+
* - 第 6 位:0010 0000 = 32,接收视频的权限
61+
* - 第 7 位:0100 0000 = 64,发送辅路(也就是屏幕分享)视频的权限
62+
* - 第 8 位:1000 0000 = 200,接收辅路(也就是屏幕分享)视频的权限
63+
* - privilegeMap == 1111 1111 == 255 代表该 userid 在该 roomid 房间内的所有功能权限。
64+
* - privilegeMap == 0010 1010 == 42 代表该 userid 拥有加入房间和接收音视频数据的权限,但不具备其他权限。
65+
* @return usersig - 生成带userbuf的签名
66+
*/
67+
public String genPrivateMapKey(String userid, long expire, long roomid, long privilegeMap) {
68+
byte[] userbuf = genUserBuf(userid, roomid, expire, privilegeMap, 0); //生成userbuf
69+
return genUserSig(userid, expire, userbuf);
70+
}
71+
2872
private String hmacsha256(String identifier, long currTime, long expire, String base64Userbuf) {
2973
String contentToBeSigned = "TLS.identifier:" + identifier + "\n"
3074
+ "TLS.sdkappid:" + sdkappid + "\n"
@@ -80,19 +124,6 @@ private String genUserSig(String userid, long expire, byte[] userbuf) {
80124
0, compressedBytesLength)))).replaceAll("\\s*", "");
81125
}
82126

83-
/**
84-
* 用于生成实时音视频(TRTC)业务进房权限加密串,具体用途用法参考TRTC文档:https://cloud.tencent.com/document/product/647/32240
85-
* TRTC业务进房权限加密串需使用用户定义的userbuf
86-
* 生成 userbuf
87-
*
88-
* @param account 用户名
89-
* @param dwAuthID 数字房间号
90-
* @param dwExpTime 过期时间:该权限加密串的过期时间,超时时间内拿到该签名,并且发起进房间操作,时间为有效期
91-
* 实际填入userBuf为:expire,过期时间,当前时间 + 有效期(单位:秒)
92-
* @param dwPrivilegeMap 用户权限,255表示所有权限,主播0xff,观众0xab
93-
* @param dwAccountType 用户类型,默认为0
94-
* @return byte[] userbuf
95-
*/
96127
public byte[] genUserBuf(String account, long dwAuthID, long dwExpTime,
97128
long dwPrivilegeMap, long dwAccountType) {
98129
//视频校验位需要用到的字段,按照网络字节序放入buf中
@@ -156,46 +187,4 @@ public byte[] genUserBuf(String account, long dwAuthID, long dwExpTime,
156187

157188
return userbuf;
158189
}
159-
160-
/**
161-
* 【功能说明】用于签发 TRTC 和 IM 服务中必须要使用的 UserSig 鉴权票据
162-
*
163-
* 【参数说明】
164-
* @param userid - 用户id,限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。
165-
* @param expire - UserSig 票据的过期时间,单位是秒,比如 86400 代表生成的 UserSig 票据在一天后就无法再使用了。
166-
* @return usersig -生成的签名
167-
*/
168-
public String genUserSig(String userid, long expire) {
169-
return genUserSig(userid, expire, null);
170-
}
171-
172-
/**
173-
* 【功能说明】
174-
* 用于签发 TRTC 进房参数中可选的 PrivateMapKey 权限票据。
175-
* PrivateMapKey 需要跟 UserSig 一起使用,但 PrivateMapKey 比 UserSig 有更强的权限控制能力:
176-
* - UserSig 只能控制某个 UserID 有无使用 TRTC 服务的权限,只要 UserSig 正确,其对应的 UserID 可以进出任意房间。
177-
* - PrivateMapKey 则是将 UserID 的权限控制的更加严格,包括能不能进入某个房间,能不能在该房间里上行音视频等等。
178-
* 如果要开启 PrivateMapKey 严格权限位校验,需要在【实时音视频控制台】/【应用管理】/【应用信息】中打开“启动权限密钥”开关。
179-
*
180-
* 【参数说明】
181-
* @param userid - 用户id,限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。
182-
* @param expire - PrivateMapKey 票据的过期时间,单位是秒,比如 86400 生成的 PrivateMapKey 票据在一天后就无法再使用了。
183-
* @param roomid - 房间号,用于指定该 userid 可以进入的房间号
184-
* @param privilegeMap - 权限位,使用了一个字节中的 8 个比特位,分别代表八个具体的功能权限开关:
185-
* - 第 1 位:0000 0001 = 1,创建房间的权限
186-
* - 第 2 位:0000 0010 = 2,加入房间的权限
187-
* - 第 3 位:0000 0100 = 4,发送语音的权限
188-
* - 第 4 位:0000 1000 = 8,接收语音的权限
189-
* - 第 5 位:0001 0000 = 16,发送视频的权限
190-
* - 第 6 位:0010 0000 = 32,接收视频的权限
191-
* - 第 7 位:0100 0000 = 64,发送辅路(也就是屏幕分享)视频的权限
192-
* - 第 8 位:1000 0000 = 200,接收辅路(也就是屏幕分享)视频的权限
193-
* - privilegeMap == 1111 1111 == 255 代表该 userid 在该 roomid 房间内的所有功能权限。
194-
* - privilegeMap == 0010 1010 == 42 代表该 userid 拥有加入房间和接收音视频数据的权限,但不具备其他权限。
195-
* @return usersig - 生成带userbuf的签名
196-
*/
197-
public String genPrivateMapKey(String userid, long expire, long roomid, long privilegeMap) {
198-
byte[] userbuf = genUserBuf(userid, roomid, expire, privilegeMap, 0); //生成userbuf
199-
return genUserSig(userid, expire, userbuf);
200-
}
201190
}

0 commit comments

Comments
 (0)