diff --git a/org.hl7.fhir.utilities/src/main/java/org/hl7/fhir/utilities/npm/PackageClient.java b/org.hl7.fhir.utilities/src/main/java/org/hl7/fhir/utilities/npm/PackageClient.java index d2412fcc7..28a88cc9f 100644 --- a/org.hl7.fhir.utilities/src/main/java/org/hl7/fhir/utilities/npm/PackageClient.java +++ b/org.hl7.fhir.utilities/src/main/java/org/hl7/fhir/utilities/npm/PackageClient.java @@ -176,6 +176,8 @@ public class PackageClient { webAccessor.withToken(server.getToken()); } else if (server.getAuthenticationMode() == HTTPAuthenticationMode.BASIC) { webAccessor.withBasicAuth(server.getUsername(), server.getPassword()); + } else if (server.getAuthenticationMode() == HTTPAuthenticationMode.APIKEY) { + webAccessor.withApiKey(server.getApiKey()); } HTTPResult res = webAccessor.get(source, accept); res.checkThrowException(); diff --git a/org.hl7.fhir.utilities/src/main/java/org/hl7/fhir/utilities/npm/PackageServer.java b/org.hl7.fhir.utilities/src/main/java/org/hl7/fhir/utilities/npm/PackageServer.java index 3a2ae8010..896126bd9 100644 --- a/org.hl7.fhir.utilities/src/main/java/org/hl7/fhir/utilities/npm/PackageServer.java +++ b/org.hl7.fhir.utilities/src/main/java/org/hl7/fhir/utilities/npm/PackageServer.java @@ -7,7 +7,6 @@ import java.util.stream.Collectors; import javax.annotation.Nullable; import org.hl7.fhir.utilities.http.HTTPAuthenticationMode; -import org.hl7.fhir.utilities.http.SimpleHTTPClient; import org.hl7.fhir.utilities.settings.FhirSettings; import org.hl7.fhir.utilities.settings.ServerDetailsPOJO; @@ -27,10 +26,11 @@ public class PackageServer { serverType = PackageServerType.FHIR; } + @Getter private String url; @Getter - private HTTPAuthenticationMode authenticationMode; + private HTTPAuthenticationMode authenticationMode; @Getter private PackageServerType serverType; @@ -43,9 +43,11 @@ public class PackageServer { @Getter private String token; - public String getUrl() { - return url; - } + + @Getter + private String apiKey; + + public static final String PRIMARY_SERVER = "https://packages.fhir.org"; public static final String SECONDARY_SERVER = "https://packages2.fhir.org/packages"; @@ -73,7 +75,9 @@ public class PackageServer { ) .withUsername(pojo.getUsername()) .withPassword(pojo.getPassword()) - .withToken(pojo.getToken()); + .withToken(pojo.getToken()) + .withApiKey(pojo.getApikey()); + } private static boolean isPackageServer(String serverType) { @@ -129,6 +133,7 @@ public class PackageServer { packageServer.username = this.username; packageServer.password = this.password; packageServer.token = this.token; + packageServer.apiKey = this.apiKey; return packageServer; } @@ -161,4 +166,10 @@ public class PackageServer { packageServer.token = token; return packageServer; } + + public PackageServer withApiKey(String apiKey) { + PackageServer packageServer = this.copy(); + packageServer.apiKey = apiKey; + return packageServer; + } } \ No newline at end of file diff --git a/org.hl7.fhir.utilities/src/test/java/org/hl7/fhir/utilities/http/ManagedWebAccessAuthTests.java b/org.hl7.fhir.utilities/src/test/java/org/hl7/fhir/utilities/http/ManagedWebAccessAuthTests.java index f57d93988..ced8783b2 100644 --- a/org.hl7.fhir.utilities/src/test/java/org/hl7/fhir/utilities/http/ManagedWebAccessAuthTests.java +++ b/org.hl7.fhir.utilities/src/test/java/org/hl7/fhir/utilities/http/ManagedWebAccessAuthTests.java @@ -164,7 +164,7 @@ public class ManagedWebAccessAuthTests { return new ServerDetailsPOJO( server.url("").toString(), "basic", - "dummyServerType", + "fhir", DUMMY_USERNAME, DUMMY_PASSWORD, null, null); @@ -183,7 +183,7 @@ public void testTokenAuthFromSettings() throws IOException, InterruptedException return new ServerDetailsPOJO( server.url("").toString(), "token", - "dummyServerType", + "fhir", null, null, DUMMY_TOKEN, null); @@ -202,7 +202,7 @@ public void testTokenAuthFromSettings() throws IOException, InterruptedException return new ServerDetailsPOJO( server.url("").toString(), "apikey", - "dummyServerType", + "fhir", null, null, null, DUMMY_API_KEY);