Skip to content

Commit 4e8f30a

Browse files
author
yutingzeng
committed
修改注释和函数名
1 parent a21c3ad commit 4e8f30a

File tree

2 files changed

+45
-20
lines changed

2 files changed

+45
-20
lines changed

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

Lines changed: 43 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,13 @@ private String hmacsha256(String identifier, long currTime, long expire, String
4747
}
4848
}
4949

50-
private String genSig(String identifier, long expire, byte[] userbuf) {
50+
private String genUserSig(String userid, long expire, byte[] userbuf) {
5151

5252
long currTime = System.currentTimeMillis()/1000;
5353

5454
JSONObject sigDoc = new JSONObject();
5555
sigDoc.put("TLS.ver", "2.0");
56-
sigDoc.put("TLS.identifier", identifier);
56+
sigDoc.put("TLS.identifier", userid);
5757
sigDoc.put("TLS.sdkappid", sdkappid);
5858
sigDoc.put("TLS.expire", expire);
5959
sigDoc.put("TLS.time", currTime);
@@ -63,7 +63,7 @@ private String genSig(String identifier, long expire, byte[] userbuf) {
6363
base64UserBuf = new BASE64Encoder().encode(userbuf);
6464
sigDoc.put("TLS.userbuf", base64UserBuf);
6565
}
66-
String sig = hmacsha256(identifier, currTime, expire, base64UserBuf);
66+
String sig = hmacsha256(userid, currTime, expire, base64UserBuf);
6767
if (sig.length() == 0) {
6868
return "";
6969
}
@@ -79,9 +79,8 @@ private String genSig(String identifier, long expire, byte[] userbuf) {
7979
}
8080
/**用于生成实时音视频(TRTC)业务进房权限加密串,具体用途用法参考TRTC文档:https://cloud.tencent.com/document/product/647/32240
8181
* TRTC业务进房权限加密串需使用用户定义的userbuf
82-
* @brief 生成 userbuf
82+
* 生成 userbuf
8383
* @param account 用户名
84-
* @param dwSdkappid sdkappid
8584
* @param dwAuthID 数字房间号
8685
* @param dwExpTime 过期时间:该权限加密串的过期时间,超时时间内拿到该签名,并且发起进房间操作,时间为有效期
8786
* 实际填入userBuf为:expire,过期时间,当前时间 + 有效期(单位:秒)
@@ -152,19 +151,45 @@ public byte[] genUserBuf(String account ,long dwAuthID, long dwExpTime ,
152151

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

src/test/com/tencentyun/TLSSigAPITest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@ public void after() throws Exception {
2929
@Test
3030
public void testGenSig() {
3131
TLSSigAPIv2 api = new TLSSigAPIv2(1400000000, "5bd2850fff3ecb11d7c805251c51ee463a25727bddc2385f3fa8bfee1bb93b5e");
32-
System.out.print(api.genSig("xiaojun", 180*86400));
32+
System.out.print(api.genUserSig("xiaojun", 180*86400));
3333
}
3434

3535
//使用userbuf生产privatemapkey
3636
@Test
3737
public void testGenSigWithUserBug() {
3838
TLSSigAPIv2 api = new TLSSigAPIv2(1400000000, "5bd2850fff3ecb11d7c805251c51ee463a25727bddc2385f3fa8bfee1bb93b5e");
39-
System.out.println(api.genSigWithUserBuf("xiaojun", 180*8640010000255));
39+
System.out.println(api.genPrivateMapKey("xiaojun", 180*86400, 10000, 255));
4040
}
4141

4242
/**

0 commit comments

Comments
 (0)