From 0e6dbd9bc963cdae5e0090348f07729fef0b668d Mon Sep 17 00:00:00 2001 From: lsiepel Date: Sat, 28 Oct 2023 14:39:27 +0200 Subject: [PATCH] adapt to core StringUtils (#15784) Signed-off-by: Leo Siepel --- .../binding/mybmw/internal/handler/MyBMWProxy.java | 5 +++-- .../binding/mybmw/internal/utils/Converter.java | 11 ----------- .../binding/mybmw/internal/handler/AuthTest.java | 7 +++---- 3 files changed, 6 insertions(+), 17 deletions(-) diff --git a/bundles/org.openhab.binding.mybmw/src/main/java/org/openhab/binding/mybmw/internal/handler/MyBMWProxy.java b/bundles/org.openhab.binding.mybmw/src/main/java/org/openhab/binding/mybmw/internal/handler/MyBMWProxy.java index 82014a4008000..6bc03775149e6 100644 --- a/bundles/org.openhab.binding.mybmw/src/main/java/org/openhab/binding/mybmw/internal/handler/MyBMWProxy.java +++ b/bundles/org.openhab.binding.mybmw/src/main/java/org/openhab/binding/mybmw/internal/handler/MyBMWProxy.java @@ -52,6 +52,7 @@ import org.openhab.binding.mybmw.internal.utils.HTTPConstants; import org.openhab.binding.mybmw.internal.utils.ImageProperties; import org.openhab.core.io.net.http.HttpClientFactory; +import org.openhab.core.util.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -323,12 +324,12 @@ public synchronized boolean updateToken() { /* * Step 2) Calculate values for base parameters */ - String verfifierBytes = Converter.getRandomString(64); + String verfifierBytes = StringUtils.getRandomAlphabetic(64).toLowerCase(); String codeVerifier = Base64.getUrlEncoder().withoutPadding().encodeToString(verfifierBytes.getBytes()); MessageDigest digest = MessageDigest.getInstance("SHA-256"); byte[] hash = digest.digest(codeVerifier.getBytes(StandardCharsets.UTF_8)); String codeChallange = Base64.getUrlEncoder().withoutPadding().encodeToString(hash); - String stateBytes = Converter.getRandomString(16); + String stateBytes = StringUtils.getRandomAlphabetic(16).toLowerCase(); String state = Base64.getUrlEncoder().withoutPadding().encodeToString(stateBytes.getBytes()); MultiMap baseParams = new MultiMap(); diff --git a/bundles/org.openhab.binding.mybmw/src/main/java/org/openhab/binding/mybmw/internal/utils/Converter.java b/bundles/org.openhab.binding.mybmw/src/main/java/org/openhab/binding/mybmw/internal/utils/Converter.java index 5b1047c91bc87..672a9bb836e13 100644 --- a/bundles/org.openhab.binding.mybmw/src/main/java/org/openhab/binding/mybmw/internal/utils/Converter.java +++ b/bundles/org.openhab.binding.mybmw/src/main/java/org/openhab/binding/mybmw/internal/utils/Converter.java @@ -13,7 +13,6 @@ package org.openhab.binding.mybmw.internal.utils; import java.lang.reflect.Type; -import java.security.SecureRandom; import java.text.SimpleDateFormat; import java.time.LocalTime; import java.time.ZoneId; @@ -24,7 +23,6 @@ import java.util.Date; import java.util.List; import java.util.Locale; -import java.util.Random; import java.util.TimeZone; import org.eclipse.jdt.annotation.NonNullByDefault; @@ -249,15 +247,6 @@ public static Vehicle getConsistentVehcile(Vehicle v) { return v; } - public static String getRandomString(int size) { - int leftLimit = 97; // letter 'a' - int rightLimit = 122; // letter 'z' - Random random = new SecureRandom(); - - return random.ints(leftLimit, rightLimit + 1).limit(size) - .collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append).toString(); - } - public static State getLockState(boolean lock) { if (lock) { return StringType.valueOf(Constants.LOCKED); diff --git a/bundles/org.openhab.binding.mybmw/src/test/java/org/openhab/binding/mybmw/internal/handler/AuthTest.java b/bundles/org.openhab.binding.mybmw/src/test/java/org/openhab/binding/mybmw/internal/handler/AuthTest.java index 52f05bd57c5e7..5563919a0992f 100644 --- a/bundles/org.openhab.binding.mybmw/src/test/java/org/openhab/binding/mybmw/internal/handler/AuthTest.java +++ b/bundles/org.openhab.binding.mybmw/src/test/java/org/openhab/binding/mybmw/internal/handler/AuthTest.java @@ -46,6 +46,7 @@ import org.openhab.binding.mybmw.internal.utils.Constants; import org.openhab.binding.mybmw.internal.utils.Converter; import org.openhab.core.io.net.http.HttpClientFactory; +import org.openhab.core.util.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -78,16 +79,14 @@ void testAuth() { AuthQueryResponse aqr = Converter.getGson().fromJson(firstResponse.getContentAsString(), AuthQueryResponse.class); - // String verifier_bytes = RandomStringUtils.randomAlphanumeric(64); - String verifierBytes = Converter.getRandomString(64); + String verifierBytes = StringUtils.getRandomAlphabetic(64).toLowerCase(); String codeVerifier = Base64.getUrlEncoder().withoutPadding().encodeToString(verifierBytes.getBytes()); MessageDigest digest = MessageDigest.getInstance("SHA-256"); byte[] hash = digest.digest(codeVerifier.getBytes(StandardCharsets.UTF_8)); String codeChallenge = Base64.getUrlEncoder().withoutPadding().encodeToString(hash); - // String state_bytes = RandomStringUtils.randomAlphanumeric(16); - String stateBytes = Converter.getRandomString(16); + String stateBytes = StringUtils.getRandomAlphabetic(16).toLowerCase(); String state = Base64.getUrlEncoder().withoutPadding().encodeToString(stateBytes.getBytes()); String authUrl = aqr.gcdmBaseUrl + BimmerConstants.OAUTH_ENDPOINT;