Skip to content

Commit b600843

Browse files
committed
构建兼容性升级到 jdk 1.8
1 parent 7c051d1 commit b600843

File tree

6 files changed

+17
-49
lines changed

6 files changed

+17
-49
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
### gradle
1717
```
1818
dependencies {
19-
compile 'com.github.tencentyun:tls-sig-api-v2:1.1'
19+
compile 'com.github.tencentyun:tls-sig-api-v2:2.0'
2020
}
2121
```
2222

@@ -32,4 +32,4 @@ import com.tencentyun.TLSSigAPIv2;
3232

3333
TLSSigAPIv2 api = new TLSSigAPIv2(1400000000, "5bd2850fff3ecb11d7c805251c51ee463a25727bddc2385f3fa8bfee1bb93b5e");
3434
System.out.print(api.genSig("xiaojun", 180*86400));
35-
```
35+
```

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ dependencies {
1313
testCompile group: 'junit', name: 'junit', version: '4.12'
1414
}
1515

16-
sourceCompatibility = 1.6
17-
version = '1.2'
16+
sourceCompatibility = 1.8
17+
version = '2.0'
1818
group = "com.github.tencentyun"
1919
archivesBaseName = "tls-sig-api-v2"
2020
tasks.withType(JavaCompile) {
Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
11
package com.tencentyun;
22

3-
// 使用旧版本 base64 编解码实现增强兼容性
4-
5-
import sun.misc.BASE64Encoder;
6-
import sun.misc.BASE64Decoder;
7-
8-
import java.io.IOException;
3+
import java.util.Base64;
94

105
public class Base64URL {
116
public static byte[] base64EncodeUrl(byte[] input) {
12-
byte[] base64 = new BASE64Encoder().encode(input).getBytes();
7+
byte[] base64 = Base64.getEncoder().encode(input);
138
for (int i = 0; i < base64.length; ++i)
149
switch (base64[i]) {
1510
case '+':
@@ -26,23 +21,4 @@ public static byte[] base64EncodeUrl(byte[] input) {
2621
}
2722
return base64;
2823
}
29-
30-
public static byte[] base64DecodeUrl(byte[] input) throws IOException {
31-
byte[] base64 = input.clone();
32-
for (int i = 0; i < base64.length; ++i)
33-
switch (base64[i]) {
34-
case '*':
35-
base64[i] = '+';
36-
break;
37-
case '-':
38-
base64[i] = '/';
39-
break;
40-
case '_':
41-
base64[i] = '=';
42-
break;
43-
default:
44-
break;
45-
}
46-
return new BASE64Decoder().decodeBuffer(new String(base64));
47-
}
4824
}

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

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
11
package com.tencentyun;
22

3-
// 使用旧版本 base64 编解码实现增强兼容性
4-
5-
import sun.misc.BASE64Encoder;
6-
7-
import java.io.UnsupportedEncodingException;
3+
import java.nio.charset.StandardCharsets;
4+
import java.util.Base64;
85
import java.security.*;
9-
import java.nio.charset.Charset;
106

117
import java.util.Arrays;
128
import java.util.zip.Deflater;
@@ -109,17 +105,13 @@ private String hmacsha256(String identifier, long currTime, long expire, String
109105
contentToBeSigned += "TLS.userbuf:" + base64Userbuf + "\n";
110106
}
111107
try {
112-
byte[] byteKey = key.getBytes("UTF-8");
108+
byte[] byteKey = key.getBytes(StandardCharsets.UTF_8);
113109
Mac hmac = Mac.getInstance("HmacSHA256");
114110
SecretKeySpec keySpec = new SecretKeySpec(byteKey, "HmacSHA256");
115111
hmac.init(keySpec);
116-
byte[] byteSig = hmac.doFinal(contentToBeSigned.getBytes("UTF-8"));
117-
return (new BASE64Encoder().encode(byteSig)).replaceAll("\\s*", "");
118-
} catch (UnsupportedEncodingException e) {
119-
return "";
120-
} catch (NoSuchAlgorithmException e) {
121-
return "";
122-
} catch (InvalidKeyException e) {
112+
byte[] byteSig = hmac.doFinal(contentToBeSigned.getBytes(StandardCharsets.UTF_8));
113+
return (Base64.getEncoder().encodeToString(byteSig)).replaceAll("\\s*", "");
114+
} catch (NoSuchAlgorithmException | InvalidKeyException e) {
123115
return "";
124116
}
125117
}
@@ -137,7 +129,7 @@ private String genUserSig(String userid, long expire, byte[] userbuf) {
137129

138130
String base64UserBuf = null;
139131
if (null != userbuf) {
140-
base64UserBuf = new BASE64Encoder().encode(userbuf);
132+
base64UserBuf = Base64.getEncoder().encodeToString(userbuf).replaceAll("\\s*", "");
141133
sigDoc.put("TLS.userbuf", base64UserBuf);
142134
}
143135
String sig = hmacsha256(userid, currTime, expire, base64UserBuf);
@@ -146,7 +138,7 @@ private String genUserSig(String userid, long expire, byte[] userbuf) {
146138
}
147139
sigDoc.put("TLS.sig", sig);
148140
Deflater compressor = new Deflater();
149-
compressor.setInput(sigDoc.toString().getBytes(Charset.forName("UTF-8")));
141+
compressor.setInput(sigDoc.toString().getBytes(StandardCharsets.UTF_8));
150142
compressor.finish();
151143
byte[] compressedBytes = new byte[2048];
152144
int compressedBytesLength = compressor.deflate(compressedBytes);

src/test/com/tencentyun/TLSSigAPITest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,14 @@ public void testGenSig() {
3232

3333
//使用userbuf生产privatemapkey
3434
@Test
35-
public void testGenSigWithUserBug() {
35+
public void testGenSigWithUserBuf() {
3636
TLSSigAPIv2 api = new TLSSigAPIv2(1400000000, "5bd2850fff3ecb11d7c805251c51ee463a25727bddc2385f3fa8bfee1bb93b5e");
3737
System.out.println(api.genPrivateMapKey("xiaojun", 180 * 86400, 10000, 255));
3838
}
3939

4040
//使用userbuf和字符串房间号生产privatemapkey
4141
@Test
42-
public void testGenSigWithUserBug1() {
42+
public void testGenSigWithUserBuf1() {
4343
TLSSigAPIv2 api = new TLSSigAPIv2(1400000000, "5bd2850fff3ecb11d7c805251c51ee463a25727bddc2385f3fa8bfee1bb93b5e");
4444
System.out.println(api.genPrivateMapKeyWithStringRoomID("xiaojun", 180 * 86400, "100000000", 255));
4545
}

user_build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ dependencies {
1212
testCompile group: 'junit', name: 'junit', version: '4.12'
1313
}
1414

15-
sourceCompatibility = 1.6
15+
sourceCompatibility = 1.8
1616
group = "com.github.tencentyun"
1717
archivesBaseName = "tls-sig-api-v2"
1818
tasks.withType(JavaCompile) {

0 commit comments

Comments
 (0)