From ddd675caf2fdd1fa9d725b65768487cd4e060b5c Mon Sep 17 00:00:00 2001 From: Jens Reimann Date: Thu, 23 Jan 2020 17:52:14 +0100 Subject: [PATCH] Allow setting auth token --- .../hono/demo/common/Registration.java | 6 ++++-- .../hono/demo/common/RegistrationV1.java | 19 ++++++++++++++++--- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/simulator-common/src/main/java/de/dentrassi/hono/demo/common/Registration.java b/simulator-common/src/main/java/de/dentrassi/hono/demo/common/Registration.java index 0234d6d..ccfc36d 100644 --- a/simulator-common/src/main/java/de/dentrassi/hono/demo/common/Registration.java +++ b/simulator-common/src/main/java/de/dentrassi/hono/demo/common/Registration.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2019 Red Hat Inc and others. + * Copyright (c) 2019, 2020 Red Hat Inc and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v2.0 * which accompanies this distribution, and is available at @@ -58,11 +58,13 @@ public static Optional fromEnv(final String tenantId) { .map(Version::valueOf) .orElse(Version.V1); + final String token = System.getenv("DEVICE_REGISTRY_TOKEN"); + System.out.format("Device Registry - Version: %s, URL: %s%n", version, devRegUrl); switch (version) { case V1: - return of(new RegistrationV1(tenantId, parse(devRegUrl))); + return of(new RegistrationV1(tenantId, token, parse(devRegUrl))); default: return of(new RegistrationLegacy(tenantId, parse(devRegUrl))); } diff --git a/simulator-common/src/main/java/de/dentrassi/hono/demo/common/RegistrationV1.java b/simulator-common/src/main/java/de/dentrassi/hono/demo/common/RegistrationV1.java index 1376f5f..9c37e3d 100644 --- a/simulator-common/src/main/java/de/dentrassi/hono/demo/common/RegistrationV1.java +++ b/simulator-common/src/main/java/de/dentrassi/hono/demo/common/RegistrationV1.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2017, 2019 Red Hat Inc and others. + * Copyright (c) 2017, 2020 Red Hat Inc and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v2.0 * which accompanies this distribution, and is available at @@ -20,6 +20,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.common.net.HttpHeaders; + import okhttp3.HttpUrl; import okhttp3.Request; import okhttp3.RequestBody; @@ -32,9 +34,17 @@ public class RegistrationV1 extends AbstractRegistration { private final HttpUrl registrationUrl; private final HttpUrl credentialsUrl; - public RegistrationV1(final String tenantId, final HttpUrl deviceRegistryUrl) { + private final String authzString; + + public RegistrationV1(final String tenantId, String token, final HttpUrl deviceRegistryUrl) { super(tenantId); + if (token != null && !token.isBlank()) { + this.authzString = String.format("Bearer %s", token); + } else { + this.authzString = null; + } + this.registrationUrl = deviceRegistryUrl .newBuilder() .addPathSegment("devices") @@ -63,6 +73,7 @@ public void device(final String deviceId, final String username, .addPathSegment(this.tenantId) .addPathSegment(deviceId) .build()) + .addHeader(HttpHeaders.AUTHORIZATION, this.authzString) .get() .build()).execute()) { @@ -83,6 +94,7 @@ public void device(final String deviceId, final String username, .addPathSegment(this.tenantId) .addPathSegment(deviceId) .build()) + .addHeader(HttpHeaders.AUTHORIZATION, this.authzString) .post(RequestBody.create(MT_JSON, "{}" /* empty object */)) .build()).execute()) { @@ -110,7 +122,8 @@ public void device(final String deviceId, final String username, .addPathSegment(this.tenantId) .addPathSegment(deviceId) .build()) - .put(RequestBody.create(MT_JSON, encode(new CommonCredential[] { pc }))) + .addHeader(HttpHeaders.AUTHORIZATION, this.authzString) + .put(RequestBody.create(MT_JSON, encode(new CommonCredential[] {pc}))) .build()) .execute()) {