From 51f1c0978bec9f20420bf148fbbca6617875ba41 Mon Sep 17 00:00:00 2001 From: Bernd Weymann Date: Mon, 7 Nov 2022 18:48:48 +0100 Subject: [PATCH] [mercedesme] New API Migration (#13670) * adjust servers and scope * ensure IPv4 address for callback Signed-off-by: Bernd Weymann --- .../org/openhab/binding/mercedesme/internal/Constants.java | 5 +++-- .../mercedesme/internal/config/AccountConfiguration.java | 2 +- .../openhab/binding/mercedesme/internal/server/Utils.java | 1 + .../org/openhab/binding/mercedesme/ConfigurationTest.java | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/Constants.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/Constants.java index 55fd210f5..0c616598c 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/Constants.java +++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/Constants.java @@ -48,8 +48,8 @@ public class Constants { public static final String GROUP_LOCATION = "location"; public static final String GROUP_IMAGE = "image"; - public static final String MB_AUTH_URL = "https://id.mercedes-benz.com/as/authorization.oauth2"; - public static final String MB_TOKEN_URL = "https://id.mercedes-benz.com/as/token.oauth2"; + public static final String MB_AUTH_URL = "https://ssoalpha.dvb.corpinter.net/v1/auth"; + public static final String MB_TOKEN_URL = "https://ssoalpha.dvb.corpinter.net/v1/token"; public static final String CALLBACK_ENDPOINT = "/mb-callback"; public static final String OAUTH_CLIENT_NAME = "#byocar"; @@ -64,6 +64,7 @@ public class Constants { // https://developer.mercedes-benz.com/products/vehicle_status/docs public static final String SCOPE_STATUS = "mb:vehicle:mbdata:vehiclestatus"; public static final String SCOPE_OFFLINE = "offline_access"; + public static final String SCOPE_OPENID = "openid"; public static final String BASE_URL = "https://api.mercedes-benz.com/vehicledata/v2"; public static final String ODO_URL = BASE_URL + "/vehicles/%s/containers/payasyoudrive"; diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/config/AccountConfiguration.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/config/AccountConfiguration.java index 6c4c43c04..8f647b12a 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/config/AccountConfiguration.java +++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/config/AccountConfiguration.java @@ -40,7 +40,7 @@ public class AccountConfiguration { // https://developer.mercedes-benz.com/products/electric_vehicle_status/docs#_required_scopes public String getScope() { StringBuffer sb = new StringBuffer(); - sb.append(SCOPE_OFFLINE); + sb.append(SCOPE_OPENID).append(SPACE).append(SCOPE_OFFLINE); if (odoScope) { sb.append(SPACE).append(SCOPE_ODO); } diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/Utils.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/Utils.java index c9545dfde..852021a15 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/Utils.java +++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/Utils.java @@ -61,6 +61,7 @@ public class Utils { } public static String getCallbackIP() throws SocketException { + // https://stackoverflow.com/questions/901755/how-to-get-the-ip-of-the-computer-on-linux-through-java // https://stackoverflow.com/questions/1062041/ip-address-not-obtained-in-java for (Enumeration ifaces = NetworkInterface.getNetworkInterfaces(); ifaces .hasMoreElements();) { diff --git a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/ConfigurationTest.java b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/ConfigurationTest.java index 727146706..69ed1a0f7 100644 --- a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/ConfigurationTest.java +++ b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/ConfigurationTest.java @@ -36,7 +36,7 @@ class ConfigurationTest { void testScope() { AccountConfiguration ac = new AccountConfiguration(); assertEquals( - "offline_access mb:vehicle:mbdata:payasyoudrive mb:vehicle:mbdata:vehiclestatus mb:vehicle:mbdata:vehiclelock mb:vehicle:mbdata:fuelstatus mb:vehicle:mbdata:evstatus", + "openid offline_access mb:vehicle:mbdata:payasyoudrive mb:vehicle:mbdata:vehiclestatus mb:vehicle:mbdata:vehiclelock mb:vehicle:mbdata:fuelstatus mb:vehicle:mbdata:evstatus", ac.getScope()); }