Skip to content

Commit 9c0f8bc

Browse files
committed
Set required JDK version to 1.8, Replaced implementation of Base64 by JDK's one.
1 parent 0c878c7 commit 9c0f8bc

File tree

19 files changed

+170
-82
lines changed

19 files changed

+170
-82
lines changed

build/tmpl/text/changes.txt

+2
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,5 @@ Changes log
88
- Removed deprecated extensions e4, JDBC, JSSLUtils, ROME, SDC, SIP, XDB, XStream.
99
- Deprecated extensions Javamail, Lucene, Nio, Wadl.
1010
- Refreshed copyright headers.
11+
- Upgraded JDK version 1.8.
12+
- Leveraged JDK's version of Base64.

modules/org.restlet.ext.crypto/src/main/java/org/restlet/ext/crypto/CookieAuthenticator.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
package org.restlet.ext.crypto;
2626

2727
import java.security.GeneralSecurityException;
28+
import java.util.Base64;
2829
import java.util.logging.Level;
2930

3031
import org.restlet.Context;
@@ -38,7 +39,6 @@
3839
import org.restlet.data.Method;
3940
import org.restlet.data.Parameter;
4041
import org.restlet.data.Reference;
41-
import org.restlet.engine.util.Base64;
4242
import org.restlet.ext.crypto.internal.CryptoUtils;
4343
import org.restlet.security.ChallengeAuthenticator;
4444

@@ -293,8 +293,8 @@ public String formatCredentials(ChallengeResponse challenge)
293293
sb.append('/');
294294
sb.append(isb);
295295

296-
return Base64.encode(CryptoUtils.encrypt(getEncryptAlgorithm(),
297-
getEncryptSecretKey(), sb.toString()), false);
296+
return Base64.getEncoder().encodeToString(CryptoUtils.encrypt(getEncryptAlgorithm(),
297+
getEncryptSecretKey(), sb.toString()));
298298
}
299299

300300
/**
@@ -544,7 +544,7 @@ protected int logout(Request request, Response response) {
544544
protected ChallengeResponse parseCredentials(String cookieValue) {
545545
try {
546546
// 1) Decode Base64 string
547-
byte[] encrypted = Base64.decode(cookieValue);
547+
byte[] encrypted = Base64.getDecoder().decode(cookieValue);
548548

549549
if (encrypted == null) {
550550
getLogger().warning(

modules/org.restlet.ext.crypto/src/main/java/org/restlet/ext/crypto/DigestUtils.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@
2828
import java.security.InvalidKeyException;
2929
import java.security.MessageDigest;
3030
import java.security.NoSuchAlgorithmException;
31+
import java.util.Base64;
3132

3233
import javax.crypto.Mac;
3334
import javax.crypto.spec.SecretKeySpec;
3435

3536
import org.restlet.data.Digest;
36-
import org.restlet.engine.util.Base64;
3737

3838
/**
3939
* Security data manipulation utilities.
@@ -297,9 +297,9 @@ public static String toSha1(String target) {
297297
public static String toSha1(String target, String charsetName)
298298
throws UnsupportedEncodingException {
299299
try {
300-
return Base64.encode(
300+
return Base64.getEncoder().encodeToString(
301301
MessageDigest.getInstance("SHA1").digest(
302-
target.getBytes(charsetName)), false);
302+
target.getBytes(charsetName)));
303303
} catch (NoSuchAlgorithmException nsae) {
304304
throw new RuntimeException(
305305
"No SHA1 algorithm, unable to compute SHA1");

modules/org.restlet.ext.crypto/src/main/java/org/restlet/ext/crypto/internal/AwsUtils.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
package org.restlet.ext.crypto.internal;
2626

27+
import java.util.Base64;
2728
import java.util.Collections;
2829
import java.util.Date;
2930
import java.util.List;
@@ -40,7 +41,6 @@
4041
import org.restlet.data.Reference;
4142
import org.restlet.engine.header.HeaderConstants;
4243
import org.restlet.engine.io.IoUtils;
43-
import org.restlet.engine.util.Base64;
4444
import org.restlet.engine.util.DateUtils;
4545
import org.restlet.engine.util.SystemUtils;
4646
import org.restlet.ext.crypto.DigestUtils;
@@ -169,9 +169,9 @@ else if (query.contains("?torrent"))
169169
* @return The AWS compatible signature
170170
*/
171171
public static String getHmacSha1Signature(String stringToSign, char[] secret) {
172-
return Base64.encode(
172+
return Base64.getEncoder().encodeToString(
173173
DigestUtils.toHMacSha1(stringToSign,
174-
IoUtils.toByteArray(secret)), false);
174+
IoUtils.toByteArray(secret)));
175175
}
176176

177177
/**
@@ -186,9 +186,9 @@ public static String getHmacSha1Signature(String stringToSign, char[] secret) {
186186
*/
187187
public static String getHmacSha256Signature(String stringToSign,
188188
char[] secret) {
189-
return Base64.encode(
189+
return Base64.getEncoder().encodeToString(
190190
DigestUtils.toHMacSha256(stringToSign,
191-
IoUtils.toByteArray(secret)), false);
191+
IoUtils.toByteArray(secret)));
192192
}
193193

194194
/**

modules/org.restlet.ext.crypto/src/main/java/org/restlet/ext/crypto/internal/CryptoUtils.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@
2626

2727
import java.nio.charset.Charset;
2828
import java.security.GeneralSecurityException;
29+
import java.util.Base64;
2930

3031
import javax.crypto.Cipher;
3132
import javax.crypto.spec.SecretKeySpec;
3233

33-
import org.restlet.engine.util.Base64;
3434
import org.restlet.ext.crypto.DigestUtils;
3535

3636
/**
@@ -94,7 +94,7 @@ public static String decrypt(String algo, byte[] secretKey, byte[] encrypted)
9494
*/
9595
public static String decrypt(String algo, String base64Secret,
9696
byte[] encrypted) throws GeneralSecurityException {
97-
return decrypt(algo, Base64.decode(base64Secret), encrypted);
97+
return decrypt(algo, Base64.getDecoder().decode(base64Secret), encrypted);
9898
}
9999

100100
/**
@@ -148,7 +148,7 @@ public static byte[] encrypt(String algo, byte[] secretKey, String content)
148148
*/
149149
public static byte[] encrypt(String algo, String base64Secret,
150150
String content) throws GeneralSecurityException {
151-
return encrypt(algo, Base64.decode(base64Secret), content);
151+
return encrypt(algo, Base64.getDecoder().decode(base64Secret), content);
152152
}
153153

154154
/**
@@ -165,9 +165,9 @@ public static byte[] encrypt(String algo, String base64Secret,
165165
*/
166166
public static String makeNonce(String secretKey) {
167167
final long currentTimeMS = System.currentTimeMillis();
168-
return Base64.encode(
168+
return Base64.getEncoder().encodeToString(
169169
(currentTimeMS + ":" + DigestUtils.toMd5(currentTimeMS + ":"
170-
+ secretKey)).getBytes(), true);
170+
+ secretKey)).getBytes());
171171
}
172172

173173
/**

modules/org.restlet.ext.crypto/src/main/java/org/restlet/ext/crypto/internal/HttpAzureSharedKeyHelper.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
package org.restlet.ext.crypto.internal;
2626

27+
import java.util.Base64;
2728
import java.util.Date;
2829
import java.util.Iterator;
2930
import java.util.SortedMap;
@@ -39,8 +40,8 @@
3940
import org.restlet.data.Reference;
4041
import org.restlet.engine.header.ChallengeWriter;
4142
import org.restlet.engine.header.HeaderConstants;
43+
import org.restlet.engine.io.IoUtils;
4244
import org.restlet.engine.security.AuthenticatorHelper;
43-
import org.restlet.engine.util.Base64;
4445
import org.restlet.engine.util.DateUtils;
4546
import org.restlet.engine.util.SystemUtils;
4647
import org.restlet.ext.crypto.DigestUtils;
@@ -199,8 +200,8 @@ public void formatResponse(ChallengeWriter cw, ChallengeResponse challenge,
199200
// Append the SharedKey credentials
200201
cw.append(challenge.getIdentifier())
201202
.append(':')
202-
.append(Base64.encode(
203+
.append(Base64.getEncoder().encodeToString(
203204
DigestUtils.toHMacSha256(rest.toString(),
204-
Base64.decode(challenge.getSecret())), true));
205+
Base64.getDecoder().decode(IoUtils.toByteArray(challenge.getSecret())))));
205206
}
206207
}

modules/org.restlet.ext.crypto/src/main/java/org/restlet/ext/crypto/internal/HttpAzureSharedKeyLiteHelper.java

+6-5
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@
2424

2525
package org.restlet.ext.crypto.internal;
2626

27-
import java.util.Date;
28-
2927
import org.restlet.Request;
3028
import org.restlet.data.ChallengeResponse;
3129
import org.restlet.data.ChallengeScheme;
@@ -35,12 +33,15 @@
3533
import org.restlet.data.Reference;
3634
import org.restlet.engine.header.ChallengeWriter;
3735
import org.restlet.engine.header.HeaderConstants;
36+
import org.restlet.engine.io.IoUtils;
3837
import org.restlet.engine.security.AuthenticatorHelper;
39-
import org.restlet.engine.util.Base64;
4038
import org.restlet.engine.util.DateUtils;
4139
import org.restlet.ext.crypto.DigestUtils;
4240
import org.restlet.util.Series;
4341

42+
import java.util.Base64;
43+
import java.util.Date;
44+
4445
/**
4546
* Implements the Shared Key Lite authentication for Azure services. This
4647
* concerns Table storage on Azure Storage.<br>
@@ -113,8 +114,8 @@ public void formatResponse(ChallengeWriter cw, ChallengeResponse challenge,
113114
// Append the SharedKey credentials
114115
cw.append(challenge.getIdentifier())
115116
.append(':')
116-
.append(Base64.encode(
117+
.append(Base64.getEncoder().encodeToString(
117118
DigestUtils.toHMacSha256(rest.toString(),
118-
Base64.decode(challenge.getSecret())), true));
119+
Base64.getDecoder().decode(IoUtils.toByteArray(challenge.getSecret())))));
119120
}
120121
}

modules/org.restlet.ext.crypto/src/main/java/org/restlet/ext/crypto/internal/HttpDigestHelper.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
package org.restlet.ext.crypto.internal;
2626

2727
import java.io.IOException;
28+
import java.util.Base64;
2829
import java.util.logging.Level;
2930

3031
import org.restlet.Context;
@@ -42,7 +43,6 @@
4243
import org.restlet.engine.header.HeaderUtils;
4344
import org.restlet.engine.security.AuthenticatorHelper;
4445
import org.restlet.engine.security.AuthenticatorUtils;
45-
import org.restlet.engine.util.Base64;
4646
import org.restlet.ext.crypto.DigestUtils;
4747
import org.restlet.util.Series;
4848

@@ -74,7 +74,7 @@ public class HttpDigestHelper extends AuthenticatorHelper {
7474
public static boolean isNonceValid(String nonce, String secretKey,
7575
long lifespan) throws Exception {
7676
try {
77-
String decodedNonce = new String(Base64.decode(nonce));
77+
String decodedNonce = new String(Base64.getDecoder().decode(nonce));
7878
long nonceTimeMS = Long.parseLong(decodedNonce.substring(0,
7979
decodedNonce.indexOf(':')));
8080

modules/org.restlet.ext.oauth/src/main/java/org/restlet/ext/oauth/OAuthProxy.java

+9-10
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,6 @@
2424

2525
package org.restlet.ext.oauth;
2626

27-
import java.io.IOException;
28-
import java.security.NoSuchAlgorithmException;
29-
import java.security.SecureRandom;
30-
import java.util.ArrayList;
31-
import java.util.List;
32-
import java.util.UUID;
33-
import java.util.logging.Level;
34-
3527
import org.json.JSONException;
3628
import org.restlet.Context;
3729
import org.restlet.Request;
@@ -43,13 +35,20 @@
4335
import org.restlet.data.MediaType;
4436
import org.restlet.data.Reference;
4537
import org.restlet.data.Status;
46-
import org.restlet.engine.util.Base64;
4738
import org.restlet.engine.util.StringUtils;
4839
import org.restlet.ext.oauth.internal.Token;
4940
import org.restlet.representation.Representation;
5041
import org.restlet.representation.StringRepresentation;
5142
import org.restlet.routing.Filter;
5243

44+
import java.io.IOException;
45+
import java.security.NoSuchAlgorithmException;
46+
import java.security.SecureRandom;
47+
import java.util.ArrayList;
48+
import java.util.List;
49+
import java.util.UUID;
50+
import java.util.logging.Level;
51+
5352
/**
5453
* A restlet filter for initiating a web server flow or comparable to OAuth 2.0
5554
* 3-legged authorization.
@@ -424,7 +423,7 @@ private String setupState(Response response) {
424423

425424
byte[] secret = new byte[20];
426425
random.nextBytes(secret);
427-
String state = Base64.encode(secret, false);
426+
String state = java.util.Base64.getEncoder().encodeToString(secret);
428427

429428
CookieSetting cs = new CookieSetting("_state", sessionId);
430429
response.getCookieSettings().add(cs);

modules/org.restlet.ext.oauth/src/main/java/org/restlet/ext/oauth/internal/AbstractClientManager.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,19 @@
2424

2525
package org.restlet.ext.oauth.internal;
2626

27+
import org.restlet.ext.oauth.GrantType;
28+
import org.restlet.ext.oauth.ResponseType;
29+
import org.restlet.ext.oauth.internal.Client.ClientType;
30+
2731
import java.security.NoSuchAlgorithmException;
2832
import java.security.SecureRandom;
2933
import java.util.Arrays;
34+
import java.util.Base64;
3035
import java.util.EnumMap;
3136
import java.util.HashMap;
3237
import java.util.Map;
3338
import java.util.UUID;
3439

35-
import org.restlet.engine.util.Base64;
36-
import org.restlet.ext.oauth.GrantType;
37-
import org.restlet.ext.oauth.ResponseType;
38-
import org.restlet.ext.oauth.internal.Client.ClientType;
39-
4040
/**
4141
*
4242
* @author Shotaro Uchida <[email protected]>
@@ -105,7 +105,7 @@ public Client createClient(ClientType clientType, String[] redirectURIs, Map<Str
105105
}
106106
byte[] secret = new byte[20];
107107
random.nextBytes(secret);
108-
clientSecret = Base64.encode(secret, false).toCharArray();
108+
clientSecret = Base64.getEncoder().encodeToString(secret).toCharArray();
109109
}
110110

111111
return createClient(clientId, clientSecret, clientType, redirectURIs, properties);

modules/org.restlet.ext.oauth/src/main/java/org/restlet/ext/oauth/internal/CryptoUtils.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@
2525
package org.restlet.ext.oauth.internal;
2626

2727
import java.security.GeneralSecurityException;
28+
import java.util.Base64;
2829

2930
import javax.crypto.Cipher;
3031
import javax.crypto.spec.SecretKeySpec;
3132

32-
import org.restlet.engine.util.Base64;
3333
import org.restlet.ext.crypto.DigestUtils;
3434

3535
/**
@@ -93,7 +93,7 @@ public static String decrypt(String algo, byte[] secretKey, byte[] encrypted)
9393
*/
9494
public static String decrypt(String algo, String base64Secret,
9595
byte[] encrypted) throws GeneralSecurityException {
96-
return decrypt(algo, Base64.decode(base64Secret), encrypted);
96+
return decrypt(algo, Base64.getDecoder().decode(base64Secret), encrypted);
9797
}
9898

9999
/**
@@ -147,7 +147,7 @@ public static byte[] encrypt(String algo, byte[] secretKey, String content)
147147
*/
148148
public static byte[] encrypt(String algo, String base64Secret,
149149
String content) throws GeneralSecurityException {
150-
return encrypt(algo, Base64.decode(base64Secret), content);
150+
return encrypt(algo, Base64.getDecoder().decode(base64Secret), content);
151151
}
152152

153153
/**
@@ -164,9 +164,9 @@ public static byte[] encrypt(String algo, String base64Secret,
164164
*/
165165
public static String makeNonce(String secretKey) {
166166
final long currentTimeMS = System.currentTimeMillis();
167-
return Base64.encode(
167+
return Base64.getEncoder().encodeToString(
168168
(currentTimeMS + ":" + DigestUtils.toMd5(currentTimeMS + ":"
169-
+ secretKey)).getBytes(), true);
169+
+ secretKey)).getBytes());
170170
}
171171

172172
/**

0 commit comments

Comments
 (0)