Skip to content

Commit e761240

Browse files
authored
adapt to core StringUtils (openhab#15784)
Signed-off-by: Leo Siepel <[email protected]>
1 parent ab5ebbc commit e761240

File tree

3 files changed

+6
-17
lines changed

3 files changed

+6
-17
lines changed

bundles/org.openhab.binding.mybmw/src/main/java/org/openhab/binding/mybmw/internal/handler/MyBMWProxy.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
import org.openhab.binding.mybmw.internal.utils.HTTPConstants;
5353
import org.openhab.binding.mybmw.internal.utils.ImageProperties;
5454
import org.openhab.core.io.net.http.HttpClientFactory;
55+
import org.openhab.core.util.StringUtils;
5556
import org.slf4j.Logger;
5657
import org.slf4j.LoggerFactory;
5758

@@ -323,12 +324,12 @@ public synchronized boolean updateToken() {
323324
/*
324325
* Step 2) Calculate values for base parameters
325326
*/
326-
String verfifierBytes = Converter.getRandomString(64);
327+
String verfifierBytes = StringUtils.getRandomAlphabetic(64).toLowerCase();
327328
String codeVerifier = Base64.getUrlEncoder().withoutPadding().encodeToString(verfifierBytes.getBytes());
328329
MessageDigest digest = MessageDigest.getInstance("SHA-256");
329330
byte[] hash = digest.digest(codeVerifier.getBytes(StandardCharsets.UTF_8));
330331
String codeChallange = Base64.getUrlEncoder().withoutPadding().encodeToString(hash);
331-
String stateBytes = Converter.getRandomString(16);
332+
String stateBytes = StringUtils.getRandomAlphabetic(16).toLowerCase();
332333
String state = Base64.getUrlEncoder().withoutPadding().encodeToString(stateBytes.getBytes());
333334

334335
MultiMap<String> baseParams = new MultiMap<String>();

bundles/org.openhab.binding.mybmw/src/main/java/org/openhab/binding/mybmw/internal/utils/Converter.java

-11
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
package org.openhab.binding.mybmw.internal.utils;
1414

1515
import java.lang.reflect.Type;
16-
import java.security.SecureRandom;
1716
import java.text.SimpleDateFormat;
1817
import java.time.LocalTime;
1918
import java.time.ZoneId;
@@ -24,7 +23,6 @@
2423
import java.util.Date;
2524
import java.util.List;
2625
import java.util.Locale;
27-
import java.util.Random;
2826
import java.util.TimeZone;
2927

3028
import org.eclipse.jdt.annotation.NonNullByDefault;
@@ -249,15 +247,6 @@ public static Vehicle getConsistentVehcile(Vehicle v) {
249247
return v;
250248
}
251249

252-
public static String getRandomString(int size) {
253-
int leftLimit = 97; // letter 'a'
254-
int rightLimit = 122; // letter 'z'
255-
Random random = new SecureRandom();
256-
257-
return random.ints(leftLimit, rightLimit + 1).limit(size)
258-
.collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append).toString();
259-
}
260-
261250
public static State getLockState(boolean lock) {
262251
if (lock) {
263252
return StringType.valueOf(Constants.LOCKED);

bundles/org.openhab.binding.mybmw/src/test/java/org/openhab/binding/mybmw/internal/handler/AuthTest.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import org.openhab.binding.mybmw.internal.utils.Constants;
4747
import org.openhab.binding.mybmw.internal.utils.Converter;
4848
import org.openhab.core.io.net.http.HttpClientFactory;
49+
import org.openhab.core.util.StringUtils;
4950
import org.slf4j.Logger;
5051
import org.slf4j.LoggerFactory;
5152

@@ -78,16 +79,14 @@ void testAuth() {
7879
AuthQueryResponse aqr = Converter.getGson().fromJson(firstResponse.getContentAsString(),
7980
AuthQueryResponse.class);
8081

81-
// String verifier_bytes = RandomStringUtils.randomAlphanumeric(64);
82-
String verifierBytes = Converter.getRandomString(64);
82+
String verifierBytes = StringUtils.getRandomAlphabetic(64).toLowerCase();
8383
String codeVerifier = Base64.getUrlEncoder().withoutPadding().encodeToString(verifierBytes.getBytes());
8484

8585
MessageDigest digest = MessageDigest.getInstance("SHA-256");
8686
byte[] hash = digest.digest(codeVerifier.getBytes(StandardCharsets.UTF_8));
8787
String codeChallenge = Base64.getUrlEncoder().withoutPadding().encodeToString(hash);
8888

89-
// String state_bytes = RandomStringUtils.randomAlphanumeric(16);
90-
String stateBytes = Converter.getRandomString(16);
89+
String stateBytes = StringUtils.getRandomAlphabetic(16).toLowerCase();
9190
String state = Base64.getUrlEncoder().withoutPadding().encodeToString(stateBytes.getBytes());
9291

9392
String authUrl = aqr.gcdmBaseUrl + BimmerConstants.OAUTH_ENDPOINT;

0 commit comments

Comments
 (0)