updates for ManagedWebAccess
This commit is contained in:
parent
a510a6d1aa
commit
4911f4fef8
|
@ -28,7 +28,7 @@ import org.hl7.fhir.r4.utils.ToolingExtensions;
|
||||||
import org.hl7.fhir.utilities.Utilities;
|
import org.hl7.fhir.utilities.Utilities;
|
||||||
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
||||||
import org.hl7.fhir.utilities.http.HTTPResult;
|
import org.hl7.fhir.utilities.http.HTTPResult;
|
||||||
import org.hl7.fhir.utilities.http.SimpleHTTPClient;
|
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
||||||
import org.hl7.fhir.utilities.json.model.JsonElement;
|
import org.hl7.fhir.utilities.json.model.JsonElement;
|
||||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||||
import org.hl7.fhir.utilities.json.parser.JsonParser;
|
import org.hl7.fhir.utilities.json.parser.JsonParser;
|
||||||
|
@ -395,10 +395,7 @@ public class ICD11Generator {
|
||||||
|
|
||||||
|
|
||||||
private JsonObject fetchJson(String source) throws IOException {
|
private JsonObject fetchJson(String source) throws IOException {
|
||||||
SimpleHTTPClient http = new SimpleHTTPClient();
|
HTTPResult res = ManagedWebAccess.builder().withAccept("application/json").withHeader("API-Version", "v2").withHeader("Accept-Language", "en").get(source);
|
||||||
http.addHeader("API-Version", "v2");
|
|
||||||
http.addHeader("Accept-Language", "en");
|
|
||||||
HTTPResult res = http.get(source, "application/json");
|
|
||||||
res.checkThrowException();
|
res.checkThrowException();
|
||||||
return JsonParser.parseObject(res.getContent());
|
return JsonParser.parseObject(res.getContent());
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,6 @@ import org.hl7.fhir.utilities.VersionUtilities;
|
||||||
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
||||||
import org.hl7.fhir.utilities.http.HTTPResult;
|
import org.hl7.fhir.utilities.http.HTTPResult;
|
||||||
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
||||||
import org.hl7.fhir.utilities.http.SimpleHTTPClient;
|
|
||||||
|
|
||||||
public class TerminologyCacheManager {
|
public class TerminologyCacheManager {
|
||||||
|
|
||||||
|
@ -156,11 +155,10 @@ public class TerminologyCacheManager {
|
||||||
// post it to
|
// post it to
|
||||||
String url = "https://tx.fhir.org/post/tx-cache/" + ghOrg + "/" + ghRepo + "/" + ghBranch + ".zip";
|
String url = "https://tx.fhir.org/post/tx-cache/" + ghOrg + "/" + ghRepo + "/" + ghBranch + ".zip";
|
||||||
System.out.println("Sending tx-cache to " + url + " (" + Utilities.describeSize(bs.toByteArray().length) + ")");
|
System.out.println("Sending tx-cache to " + url + " (" + Utilities.describeSize(bs.toByteArray().length) + ")");
|
||||||
SimpleHTTPClient http = new SimpleHTTPClient();
|
|
||||||
http.setAuthenticationMode(SimpleHTTPClient.AuthenticationMode.BASIC);
|
HTTPResult res = ManagedWebAccess.builder()
|
||||||
http.setUsername(token.substring(0, token.indexOf(':')));
|
.withBasicAuth(token.substring(0, token.indexOf(':')), token.substring(token.indexOf(':') + 1))
|
||||||
http.setPassword(token.substring(token.indexOf(':') + 1));
|
.withAccept("application/zip").put(url, bs.toByteArray(), null);
|
||||||
HTTPResult res = http.put(url, "application/zip", bs.toByteArray(), null); // accept doesn't matter
|
|
||||||
if (res.getCode() >= 300) {
|
if (res.getCode() >= 300) {
|
||||||
System.out.println("sending cache failed: " + res.getCode());
|
System.out.println("sending cache failed: " + res.getCode());
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -34,7 +34,6 @@ import org.hl7.fhir.utilities.Utilities;
|
||||||
import org.hl7.fhir.utilities.VersionUtilities;
|
import org.hl7.fhir.utilities.VersionUtilities;
|
||||||
import org.hl7.fhir.utilities.http.HTTPResult;
|
import org.hl7.fhir.utilities.http.HTTPResult;
|
||||||
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
||||||
import org.hl7.fhir.utilities.http.SimpleHTTPClient;
|
|
||||||
import org.hl7.fhir.utilities.json.model.JsonArray;
|
import org.hl7.fhir.utilities.json.model.JsonArray;
|
||||||
import org.hl7.fhir.utilities.json.model.JsonElement;
|
import org.hl7.fhir.utilities.json.model.JsonElement;
|
||||||
import org.hl7.fhir.utilities.json.model.JsonElementType;
|
import org.hl7.fhir.utilities.json.model.JsonElementType;
|
||||||
|
|
|
@ -29,7 +29,6 @@ import org.hl7.fhir.utilities.VersionUtilities;
|
||||||
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
||||||
import org.hl7.fhir.utilities.http.HTTPResult;
|
import org.hl7.fhir.utilities.http.HTTPResult;
|
||||||
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
||||||
import org.hl7.fhir.utilities.http.SimpleHTTPClient;
|
|
||||||
|
|
||||||
public class TerminologyCacheManager {
|
public class TerminologyCacheManager {
|
||||||
|
|
||||||
|
@ -157,11 +156,10 @@ public class TerminologyCacheManager {
|
||||||
// post it to
|
// post it to
|
||||||
String url = "https://tx.fhir.org/post/tx-cache/"+ghOrg+"/"+ghRepo+"/"+ghBranch+".zip";
|
String url = "https://tx.fhir.org/post/tx-cache/"+ghOrg+"/"+ghRepo+"/"+ghBranch+".zip";
|
||||||
System.out.println("Sending tx-cache to "+url+" ("+Utilities.describeSize(bs.toByteArray().length)+")");
|
System.out.println("Sending tx-cache to "+url+" ("+Utilities.describeSize(bs.toByteArray().length)+")");
|
||||||
SimpleHTTPClient http = new SimpleHTTPClient();
|
HTTPResult res = ManagedWebAccess.builder()
|
||||||
http.setAuthenticationMode(SimpleHTTPClient.AuthenticationMode.BASIC);
|
.withBasicAuth(token.substring(0, token.indexOf(':')), token.substring(token.indexOf(':') + 1))
|
||||||
http.setUsername(token.substring(0, token.indexOf(':')));
|
.withAccept("application/zip").put(url, bs.toByteArray(), null);
|
||||||
http.setPassword(token.substring(token.indexOf(':')+1));
|
|
||||||
HTTPResult res = http.put(url, "application/zip", bs.toByteArray(), null); // accept doesn't matter
|
|
||||||
if (res.getCode() >= 300) {
|
if (res.getCode() >= 300) {
|
||||||
System.out.println("sending cache failed: "+res.getCode());
|
System.out.println("sending cache failed: "+res.getCode());
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
package org.hl7.fhir.utilities.http;
|
||||||
|
|
||||||
|
public enum HTTPAuthenticationMode {
|
||||||
|
NONE,
|
||||||
|
BASIC,
|
||||||
|
TOKEN
|
||||||
|
}
|
|
@ -5,7 +5,6 @@ import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
import org.hl7.fhir.utilities.TextFile;
|
import org.hl7.fhir.utilities.TextFile;
|
||||||
import org.hl7.fhir.utilities.Utilities;
|
import org.hl7.fhir.utilities.Utilities;
|
||||||
import org.hl7.fhir.utilities.http.SimpleHTTPClient.HTTPResultException;
|
|
||||||
|
|
||||||
public class HTTPResult {
|
public class HTTPResult {
|
||||||
private int code;
|
private int code;
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
package org.hl7.fhir.utilities.http;
|
||||||
|
|
||||||
|
public class HTTPResultException extends Exception{
|
||||||
|
public final int httpCode;
|
||||||
|
|
||||||
|
public final String message;
|
||||||
|
|
||||||
|
public final String url;
|
||||||
|
public final String logPath;
|
||||||
|
|
||||||
|
public HTTPResultException(int httpCode, String message, String url, String logPath) {
|
||||||
|
this.httpCode = httpCode;
|
||||||
|
this.message = message;
|
||||||
|
this.url = url;
|
||||||
|
this.logPath = logPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMessage() {
|
||||||
|
return "Invalid HTTP response "+httpCode+" from "+url+" ("+message+") (" + (
|
||||||
|
logPath != null ? "Response in " + logPath : "No response content")
|
||||||
|
+ ")";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -40,6 +40,7 @@ import java.io.InputStream;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import org.hl7.fhir.utilities.Utilities;
|
import org.hl7.fhir.utilities.Utilities;
|
||||||
|
|
||||||
|
@ -57,9 +58,9 @@ import org.hl7.fhir.utilities.Utilities;
|
||||||
public class ManagedWebAccess {
|
public class ManagedWebAccess {
|
||||||
|
|
||||||
public interface IWebAccessor {
|
public interface IWebAccessor {
|
||||||
HTTPResult get(String url, String accept, String userAgent, String authenticationHeader) throws IOException;
|
HTTPResult get(String url, String accept, Map<String, String> headers) throws IOException;
|
||||||
HTTPResult post(String url, byte[] bytes, String contentType, String accept, String userAgent, String authenticationHeader) throws IOException;
|
HTTPResult post(String url, byte[] bytes, String contentType, String accept, Map<String, String> headers) throws IOException;
|
||||||
HTTPResult put(String url, byte[] bytes, String contentType, String accept, String userAgent, String authenticationHeader) throws IOException;
|
HTTPResult put(String url, byte[] bytes, String contentType, String accept, Map<String, String> headers) throws IOException;
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum WebAccessPolicy {
|
public enum WebAccessPolicy {
|
||||||
|
@ -82,7 +83,7 @@ public class ManagedWebAccess {
|
||||||
ManagedWebAccess.accessPolicy = accessPolicy;
|
ManagedWebAccess.accessPolicy = accessPolicy;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean inAllowedPaths(String pathname) {
|
static boolean inAllowedPaths(String pathname) {
|
||||||
if (allowedDomains.isEmpty()) {
|
if (allowedDomains.isEmpty()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -102,63 +103,29 @@ public class ManagedWebAccess {
|
||||||
ManagedWebAccess.userAgent = userAgent;
|
ManagedWebAccess.userAgent = userAgent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static IWebAccessor getAccessor() {
|
||||||
|
return accessor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ManagedWebAccessBuilder builder() {
|
||||||
|
return new ManagedWebAccessBuilder(userAgent);
|
||||||
|
}
|
||||||
|
|
||||||
public static HTTPResult get(String url) throws IOException {
|
public static HTTPResult get(String url) throws IOException {
|
||||||
return get(url, null, null, null);
|
return builder().get(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static HTTPResult get(String url, String accept) throws IOException {
|
public static HTTPResult get(String url, String accept) throws IOException {
|
||||||
return get(url, accept, null, null);
|
return builder().withAccept(accept).get(url);
|
||||||
}
|
|
||||||
|
|
||||||
public static HTTPResult get(String url, String accept, String userAgent, String authenticationHeader) throws IOException {
|
|
||||||
switch (accessPolicy) {
|
|
||||||
case DIRECT:
|
|
||||||
if (!inAllowedPaths(url)) {
|
|
||||||
throw new IOException("The pathname '"+url+"' cannot be accessed by policy");
|
|
||||||
}
|
|
||||||
return new SimpleHTTPClient().get(url, accept);
|
|
||||||
case MANAGED:
|
|
||||||
return accessor.get(url, accept, userAgent, authenticationHeader);
|
|
||||||
case PROHIBITED:
|
|
||||||
throw new IOException("Access the internet is not allowed by local security policy");
|
|
||||||
default:
|
|
||||||
throw new IOException("Internal Error");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static HTTPResult post(String url, byte[] content, String contentType, String accept) throws IOException {
|
public static HTTPResult post(String url, byte[] content, String contentType, String accept) throws IOException {
|
||||||
return post(url, content, contentType, accept, null, null);
|
return builder().withAccept(accept).post(url, content, contentType);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static HTTPResult post(String url, byte[] content, String contentType, String accept, String userAgent, String authenticationHeader) throws IOException {
|
|
||||||
switch (accessPolicy) {
|
public static HTTPResult put(String url, byte[] content, String contentType, String accept) throws IOException {
|
||||||
case DIRECT:
|
return builder().withAccept(accept).put(url, content, contentType);
|
||||||
if (!inAllowedPaths(url)) {
|
|
||||||
throw new IOException("The pathname '"+url+"' cannot be accessed by policy");
|
|
||||||
}
|
|
||||||
return new SimpleHTTPClient().post(url, contentType, content, accept);
|
|
||||||
case MANAGED:
|
|
||||||
return accessor.get(url, accept, userAgent, authenticationHeader);
|
|
||||||
case PROHIBITED:
|
|
||||||
throw new IOException("Access the internet is not allowed by local security policy");
|
|
||||||
default:
|
|
||||||
throw new IOException("Internal Error");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static HTTPResult put(String url, byte[] content, String contentType, String accept, String userAgent, String authenticationHeader) throws IOException {
|
|
||||||
switch (accessPolicy) {
|
|
||||||
case DIRECT:
|
|
||||||
if (!inAllowedPaths(url)) {
|
|
||||||
throw new IOException("The pathname '"+url+"' cannot be accessed by policy");
|
|
||||||
}
|
|
||||||
return new SimpleHTTPClient().put(url, contentType, content, accept);
|
|
||||||
case MANAGED:
|
|
||||||
return accessor.get(url, accept, userAgent, authenticationHeader);
|
|
||||||
case PROHIBITED:
|
|
||||||
throw new IOException("Access the internet is not allowed by local security policy");
|
|
||||||
default:
|
|
||||||
throw new IOException("Internal Error");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -0,0 +1,125 @@
|
||||||
|
package org.hl7.fhir.utilities.http;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.Base64;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
|
public class ManagedWebAccessBuilder {
|
||||||
|
|
||||||
|
private String userAgent;
|
||||||
|
private HTTPAuthenticationMode authenticationMode;
|
||||||
|
private String username;
|
||||||
|
private String password;
|
||||||
|
private String token;
|
||||||
|
private String accept;
|
||||||
|
private Map<String, String> headers = new HashMap<String, String>();
|
||||||
|
|
||||||
|
public ManagedWebAccessBuilder(String userAgent) {
|
||||||
|
this.userAgent = userAgent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ManagedWebAccessBuilder withAccept(String accept) {
|
||||||
|
this.accept = accept;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ManagedWebAccessBuilder withHeader(String name, String value) {
|
||||||
|
headers.put(name, value);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ManagedWebAccessBuilder withBasicAuth(String username, String password) {
|
||||||
|
this.authenticationMode = HTTPAuthenticationMode.BASIC;
|
||||||
|
this.username = username;
|
||||||
|
this.password = password;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ManagedWebAccessBuilder withToken(String token) {
|
||||||
|
this.authenticationMode = HTTPAuthenticationMode.TOKEN;
|
||||||
|
this.token = token;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<String, String> headers() {
|
||||||
|
Map<String, String> headers = new HashMap<String, String>();
|
||||||
|
headers.putAll(this.headers);
|
||||||
|
if (authenticationMode == HTTPAuthenticationMode.TOKEN) {
|
||||||
|
headers.put("Authorization", "Bearer " + token);
|
||||||
|
} else if (authenticationMode == HTTPAuthenticationMode.BASIC) {
|
||||||
|
String auth = username+":"+password;
|
||||||
|
byte[] encodedAuth = Base64.getEncoder().encode(auth.getBytes(StandardCharsets.UTF_8));
|
||||||
|
headers.put("Authorization", "Basic " + new String(encodedAuth));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (userAgent != null) {
|
||||||
|
headers.put("User-Agent", userAgent);
|
||||||
|
}
|
||||||
|
|
||||||
|
return headers;
|
||||||
|
}
|
||||||
|
|
||||||
|
private SimpleHTTPClient setupClient(String url) throws IOException {
|
||||||
|
if (!ManagedWebAccess.inAllowedPaths(url)) {
|
||||||
|
throw new IOException("The pathname '"+url+"' cannot be accessed by policy");
|
||||||
|
}
|
||||||
|
SimpleHTTPClient client = new SimpleHTTPClient();
|
||||||
|
if (userAgent != null) {
|
||||||
|
client.addHeader("User-Agent", userAgent);
|
||||||
|
}
|
||||||
|
if (username != null) {
|
||||||
|
client.setUsername(username);
|
||||||
|
client.setPassword(password);
|
||||||
|
client.setAuthenticationMode(authenticationMode);
|
||||||
|
}
|
||||||
|
return client;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public HTTPResult get(String url) throws IOException {
|
||||||
|
switch (ManagedWebAccess.getAccessPolicy()) {
|
||||||
|
case DIRECT:
|
||||||
|
SimpleHTTPClient client = setupClient(url);
|
||||||
|
return client.get(url, accept);
|
||||||
|
case MANAGED:
|
||||||
|
return ManagedWebAccess.getAccessor().get(url, accept, headers());
|
||||||
|
case PROHIBITED:
|
||||||
|
throw new IOException("Access to the internet is not allowed by local security policy");
|
||||||
|
default:
|
||||||
|
throw new IOException("Internal Error");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public HTTPResult post(String url, byte[] content, String contentType) throws IOException {
|
||||||
|
switch (ManagedWebAccess.getAccessPolicy()) {
|
||||||
|
case DIRECT:
|
||||||
|
SimpleHTTPClient client = setupClient(url);
|
||||||
|
return client.post(url, contentType, content, accept);
|
||||||
|
case MANAGED:
|
||||||
|
return ManagedWebAccess.getAccessor().post(url, content, contentType, accept, headers());
|
||||||
|
case PROHIBITED:
|
||||||
|
throw new IOException("Access to the internet is not allowed by local security policy");
|
||||||
|
default:
|
||||||
|
throw new IOException("Internal Error");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public HTTPResult put(String url, byte[] content, String contentType) throws IOException {
|
||||||
|
switch (ManagedWebAccess.getAccessPolicy()) {
|
||||||
|
case DIRECT:
|
||||||
|
SimpleHTTPClient client = setupClient(url);
|
||||||
|
return client.put(url, contentType, content, accept);
|
||||||
|
case MANAGED:
|
||||||
|
return ManagedWebAccess.getAccessor().put(url, content, contentType, accept, headers());
|
||||||
|
case PROHIBITED:
|
||||||
|
throw new IOException("Access to the internet is not allowed by local security policy");
|
||||||
|
default:
|
||||||
|
throw new IOException("Internal Error");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -20,11 +20,6 @@ import lombok.Setter;
|
||||||
|
|
||||||
public class SimpleHTTPClient {
|
public class SimpleHTTPClient {
|
||||||
|
|
||||||
public enum AuthenticationMode {
|
|
||||||
NONE,
|
|
||||||
BASIC,
|
|
||||||
TOKEN
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class Header {
|
public static class Header {
|
||||||
private String name;
|
private String name;
|
||||||
|
@ -45,33 +40,10 @@ public class SimpleHTTPClient {
|
||||||
private static final int MAX_REDIRECTS = 5;
|
private static final int MAX_REDIRECTS = 5;
|
||||||
private static int counter = 1;
|
private static int counter = 1;
|
||||||
|
|
||||||
public static class HTTPResultException extends Exception{
|
|
||||||
public final int httpCode;
|
|
||||||
|
|
||||||
public final String message;
|
|
||||||
|
|
||||||
public final String url;
|
|
||||||
public final String logPath;
|
|
||||||
|
|
||||||
public HTTPResultException(int httpCode, String message, String url, String logPath) {
|
|
||||||
this.httpCode = httpCode;
|
|
||||||
this.message = message;
|
|
||||||
this.url = url;
|
|
||||||
this.logPath = logPath;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getMessage() {
|
|
||||||
return "Invalid HTTP response "+httpCode+" from "+url+" ("+message+") (" + (
|
|
||||||
logPath != null ? "Response in " + logPath : "No response content")
|
|
||||||
+ ")";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<Header> headers = new ArrayList<>();
|
private List<Header> headers = new ArrayList<>();
|
||||||
|
|
||||||
@Getter @Setter
|
@Getter @Setter
|
||||||
private AuthenticationMode authenticationMode;
|
private HTTPAuthenticationMode authenticationMode;
|
||||||
|
|
||||||
@Getter @Setter
|
@Getter @Setter
|
||||||
private String username;
|
private String username;
|
||||||
|
@ -148,9 +120,9 @@ public class SimpleHTTPClient {
|
||||||
|
|
||||||
private void setAuthenticationHeader(HttpURLConnection c) {
|
private void setAuthenticationHeader(HttpURLConnection c) {
|
||||||
String authHeaderValue = null;
|
String authHeaderValue = null;
|
||||||
if (authenticationMode == AuthenticationMode.TOKEN) {
|
if (authenticationMode == HTTPAuthenticationMode.TOKEN) {
|
||||||
authHeaderValue = "Bearer " + new String(token);
|
authHeaderValue = "Bearer " + new String(token);
|
||||||
} else if (authenticationMode == AuthenticationMode.BASIC) {
|
} else if (authenticationMode == HTTPAuthenticationMode.BASIC) {
|
||||||
String auth = username+":"+password;
|
String auth = username+":"+password;
|
||||||
byte[] encodedAuth = Base64.getEncoder().encode(auth.getBytes(StandardCharsets.UTF_8));
|
byte[] encodedAuth = Base64.getEncoder().encode(auth.getBytes(StandardCharsets.UTF_8));
|
||||||
authHeaderValue = "Basic " + new String(encodedAuth);
|
authHeaderValue = "Basic " + new String(encodedAuth);
|
||||||
|
|
|
@ -44,7 +44,6 @@ import org.hl7.fhir.utilities.TextFile;
|
||||||
import org.hl7.fhir.utilities.Utilities;
|
import org.hl7.fhir.utilities.Utilities;
|
||||||
import org.hl7.fhir.utilities.http.HTTPResult;
|
import org.hl7.fhir.utilities.http.HTTPResult;
|
||||||
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
||||||
import org.hl7.fhir.utilities.http.SimpleHTTPClient;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.GsonBuilder;
|
import com.google.gson.GsonBuilder;
|
||||||
|
|
|
@ -13,7 +13,6 @@ import org.hl7.fhir.utilities.Utilities;
|
||||||
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
||||||
import org.hl7.fhir.utilities.http.HTTPResult;
|
import org.hl7.fhir.utilities.http.HTTPResult;
|
||||||
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
||||||
import org.hl7.fhir.utilities.http.SimpleHTTPClient;
|
|
||||||
import org.hl7.fhir.utilities.json.JsonException;
|
import org.hl7.fhir.utilities.json.JsonException;
|
||||||
import org.hl7.fhir.utilities.json.model.JsonArray;
|
import org.hl7.fhir.utilities.json.model.JsonArray;
|
||||||
import org.hl7.fhir.utilities.json.model.JsonBoolean;
|
import org.hl7.fhir.utilities.json.model.JsonBoolean;
|
||||||
|
|
|
@ -33,7 +33,6 @@ import org.hl7.fhir.utilities.VersionUtilities;
|
||||||
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
||||||
import org.hl7.fhir.utilities.http.HTTPResult;
|
import org.hl7.fhir.utilities.http.HTTPResult;
|
||||||
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
||||||
import org.hl7.fhir.utilities.http.SimpleHTTPClient;
|
|
||||||
import org.hl7.fhir.utilities.json.model.JsonArray;
|
import org.hl7.fhir.utilities.json.model.JsonArray;
|
||||||
import org.hl7.fhir.utilities.json.model.JsonElement;
|
import org.hl7.fhir.utilities.json.model.JsonElement;
|
||||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||||
|
|
|
@ -73,7 +73,6 @@ import org.hl7.fhir.utilities.Utilities;
|
||||||
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
||||||
import org.hl7.fhir.utilities.http.HTTPResult;
|
import org.hl7.fhir.utilities.http.HTTPResult;
|
||||||
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
||||||
import org.hl7.fhir.utilities.http.SimpleHTTPClient;
|
|
||||||
import org.hl7.fhir.utilities.json.JsonException;
|
import org.hl7.fhir.utilities.json.JsonException;
|
||||||
import org.hl7.fhir.utilities.json.model.JsonArray;
|
import org.hl7.fhir.utilities.json.model.JsonArray;
|
||||||
import org.hl7.fhir.utilities.json.model.JsonElement;
|
import org.hl7.fhir.utilities.json.model.JsonElement;
|
||||||
|
|
|
@ -21,8 +21,10 @@ import org.hl7.fhir.utilities.CommaSeparatedStringBuilder;
|
||||||
import org.hl7.fhir.utilities.TextFile;
|
import org.hl7.fhir.utilities.TextFile;
|
||||||
import org.hl7.fhir.utilities.Utilities;
|
import org.hl7.fhir.utilities.Utilities;
|
||||||
import org.hl7.fhir.utilities.VersionUtilities;
|
import org.hl7.fhir.utilities.VersionUtilities;
|
||||||
|
import org.hl7.fhir.utilities.http.HTTPAuthenticationMode;
|
||||||
import org.hl7.fhir.utilities.http.HTTPResult;
|
import org.hl7.fhir.utilities.http.HTTPResult;
|
||||||
import org.hl7.fhir.utilities.http.SimpleHTTPClient;
|
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
||||||
|
import org.hl7.fhir.utilities.http.ManagedWebAccessBuilder;
|
||||||
import org.hl7.fhir.utilities.json.model.JsonArray;
|
import org.hl7.fhir.utilities.json.model.JsonArray;
|
||||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||||
import org.hl7.fhir.utilities.json.model.JsonProperty;
|
import org.hl7.fhir.utilities.json.model.JsonProperty;
|
||||||
|
@ -174,22 +176,17 @@ public class PackageClient {
|
||||||
}
|
}
|
||||||
|
|
||||||
private InputStream fetchUrl(String source, String accept) throws IOException {
|
private InputStream fetchUrl(String source, String accept) throws IOException {
|
||||||
SimpleHTTPClient http = getSimpleHTTPClient();
|
ManagedWebAccessBuilder client = ManagedWebAccess.builder().withAccept(accept);
|
||||||
HTTPResult res = http.get(source, accept);
|
if (server.getAuthenticationMode() == HTTPAuthenticationMode.TOKEN) {
|
||||||
|
client.withToken(server.getToken());
|
||||||
|
} else if (server.getAuthenticationMode() == HTTPAuthenticationMode.BASIC) {
|
||||||
|
client.withBasicAuth(server.getUsername(), server.getPassword());
|
||||||
|
}
|
||||||
|
HTTPResult res = client.get(source);
|
||||||
res.checkThrowException();
|
res.checkThrowException();
|
||||||
return new ByteArrayInputStream(res.getContent());
|
return new ByteArrayInputStream(res.getContent());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
private SimpleHTTPClient getSimpleHTTPClient() {
|
|
||||||
SimpleHTTPClient client = new SimpleHTTPClient();
|
|
||||||
client.setAuthenticationMode(server.getAuthenticationMode());
|
|
||||||
client.setUsername(server.getUsername());
|
|
||||||
client.setPassword(server.getPassword());
|
|
||||||
client.setToken(server.getToken());
|
|
||||||
return client;
|
|
||||||
}
|
|
||||||
|
|
||||||
private JsonObject fetchJson(String source) throws IOException {
|
private JsonObject fetchJson(String source) throws IOException {
|
||||||
String src = TextFile.streamToString(fetchUrl(source, "application/json"));
|
String src = TextFile.streamToString(fetchUrl(source, "application/json"));
|
||||||
//System.out.println(src);
|
//System.out.println(src);
|
||||||
|
|
|
@ -6,6 +6,7 @@ import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
import org.hl7.fhir.utilities.http.HTTPAuthenticationMode;
|
||||||
import org.hl7.fhir.utilities.http.SimpleHTTPClient;
|
import org.hl7.fhir.utilities.http.SimpleHTTPClient;
|
||||||
import org.hl7.fhir.utilities.settings.FhirSettings;
|
import org.hl7.fhir.utilities.settings.FhirSettings;
|
||||||
import org.hl7.fhir.utilities.settings.PackageServerPOJO;
|
import org.hl7.fhir.utilities.settings.PackageServerPOJO;
|
||||||
|
@ -22,14 +23,14 @@ public class PackageServer {
|
||||||
|
|
||||||
public PackageServer(String url) {
|
public PackageServer(String url) {
|
||||||
this.url = url;
|
this.url = url;
|
||||||
authenticationMode = SimpleHTTPClient.AuthenticationMode.NONE;
|
authenticationMode = HTTPAuthenticationMode.NONE;
|
||||||
serverType = PackageServerType.FHIR;
|
serverType = PackageServerType.FHIR;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String url;
|
private String url;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private SimpleHTTPClient.AuthenticationMode authenticationMode;
|
private HTTPAuthenticationMode authenticationMode;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private PackageServerType serverType;
|
private PackageServerType serverType;
|
||||||
|
@ -76,9 +77,9 @@ public class PackageServer {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private static SimpleHTTPClient.AuthenticationMode getModeFromPOJO(PackageServerPOJO pojo) {
|
private static HTTPAuthenticationMode getModeFromPOJO(PackageServerPOJO pojo) {
|
||||||
if (pojo.getAuthenticationType().equalsIgnoreCase("basic")) return SimpleHTTPClient.AuthenticationMode.BASIC;
|
if (pojo.getAuthenticationType().equalsIgnoreCase("basic")) return HTTPAuthenticationMode.BASIC;
|
||||||
if (pojo.getAuthenticationType().equalsIgnoreCase("token")) return SimpleHTTPClient.AuthenticationMode.TOKEN;
|
if (pojo.getAuthenticationType().equalsIgnoreCase("token")) return HTTPAuthenticationMode.TOKEN;
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -103,7 +104,7 @@ public class PackageServer {
|
||||||
return packageServer;
|
return packageServer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PackageServer withAuthenticationMode( SimpleHTTPClient.AuthenticationMode mode) {
|
public PackageServer withAuthenticationMode(HTTPAuthenticationMode mode) {
|
||||||
PackageServer packageServer = this.copy();
|
PackageServer packageServer = this.copy();
|
||||||
packageServer.authenticationMode = mode;
|
packageServer.authenticationMode = mode;
|
||||||
return packageServer;
|
return packageServer;
|
||||||
|
|
|
@ -135,6 +135,12 @@ public class FhirSettings {
|
||||||
: instance.fhirSettings.getProhibitNetworkAccess();
|
: instance.fhirSettings.getProhibitNetworkAccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* See ManagedWebAccess and use that to control network access
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public static void setProhibitNetworkAccess(boolean value) {
|
public static void setProhibitNetworkAccess(boolean value) {
|
||||||
prohibitNetworkAccess = value;
|
prohibitNetworkAccess = value;
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ import javax.annotation.Nonnull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import org.hl7.fhir.exceptions.FHIRException;
|
import org.hl7.fhir.exceptions.FHIRException;
|
||||||
import org.hl7.fhir.utilities.http.SimpleHTTPClient;
|
import org.hl7.fhir.utilities.http.HTTPAuthenticationMode;
|
||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ public class BasePackageCacheManagerTests {
|
||||||
server.enqueueDummyPackage();
|
server.enqueueDummyPackage();
|
||||||
|
|
||||||
PackageServer testServer = new PackageServer(packageServerUrl)
|
PackageServer testServer = new PackageServer(packageServerUrl)
|
||||||
.withAuthenticationMode(SimpleHTTPClient.AuthenticationMode.BASIC)
|
.withAuthenticationMode(HTTPAuthenticationMode.BASIC)
|
||||||
.withServerType(PackageServer.PackageServerType.NPM)
|
.withServerType(PackageServer.PackageServerType.NPM)
|
||||||
.withUsername(MockPackageServer.DUMMY_USERNAME)
|
.withUsername(MockPackageServer.DUMMY_USERNAME)
|
||||||
.withPassword(MockPackageServer.DUMMY_PASSWORD);
|
.withPassword(MockPackageServer.DUMMY_PASSWORD);
|
||||||
|
@ -57,11 +57,11 @@ public class BasePackageCacheManagerTests {
|
||||||
String packageServerBUrl = serverB.getPackageServerUrl();
|
String packageServerBUrl = serverB.getPackageServerUrl();
|
||||||
|
|
||||||
PackageServer testServerA = new PackageServer(packageServerAUrl)
|
PackageServer testServerA = new PackageServer(packageServerAUrl)
|
||||||
.withAuthenticationMode(SimpleHTTPClient.AuthenticationMode.BASIC)
|
.withAuthenticationMode(HTTPAuthenticationMode.BASIC)
|
||||||
.withServerType(PackageServer.PackageServerType.NPM);
|
.withServerType(PackageServer.PackageServerType.NPM);
|
||||||
|
|
||||||
PackageServer testServerB = new PackageServer(packageServerBUrl)
|
PackageServer testServerB = new PackageServer(packageServerBUrl)
|
||||||
.withAuthenticationMode(SimpleHTTPClient.AuthenticationMode.BASIC)
|
.withAuthenticationMode(HTTPAuthenticationMode.BASIC)
|
||||||
.withServerType(PackageServer.PackageServerType.NPM);
|
.withServerType(PackageServer.PackageServerType.NPM);
|
||||||
|
|
||||||
basePackageCacheManager.addPackageServer(testServerA);
|
basePackageCacheManager.addPackageServer(testServerA);
|
||||||
|
|
|
@ -10,7 +10,7 @@ import java.io.InputStream;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.Base64;
|
import java.util.Base64;
|
||||||
|
|
||||||
import org.hl7.fhir.utilities.http.SimpleHTTPClient;
|
import org.hl7.fhir.utilities.http.HTTPAuthenticationMode;
|
||||||
import org.junit.jupiter.api.AfterEach;
|
import org.junit.jupiter.api.AfterEach;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
@ -41,7 +41,7 @@ public class PackageServerTest {
|
||||||
server.enqueueDummyPackage();
|
server.enqueueDummyPackage();
|
||||||
|
|
||||||
PackageServer testServer = new PackageServer(packageServerUrl)
|
PackageServer testServer = new PackageServer(packageServerUrl)
|
||||||
.withAuthenticationMode(SimpleHTTPClient.AuthenticationMode.BASIC)
|
.withAuthenticationMode(HTTPAuthenticationMode.BASIC)
|
||||||
.withServerType(PackageServer.PackageServerType.NPM)
|
.withServerType(PackageServer.PackageServerType.NPM)
|
||||||
.withUsername(MockPackageServer.DUMMY_USERNAME)
|
.withUsername(MockPackageServer.DUMMY_USERNAME)
|
||||||
.withPassword(MockPackageServer.DUMMY_PASSWORD);
|
.withPassword(MockPackageServer.DUMMY_PASSWORD);
|
||||||
|
@ -74,7 +74,7 @@ public class PackageServerTest {
|
||||||
server.enqueueDummyPackage();
|
server.enqueueDummyPackage();
|
||||||
|
|
||||||
PackageServer testServer = new PackageServer(packageServerUrl)
|
PackageServer testServer = new PackageServer(packageServerUrl)
|
||||||
.withAuthenticationMode(SimpleHTTPClient.AuthenticationMode.TOKEN)
|
.withAuthenticationMode(HTTPAuthenticationMode.TOKEN)
|
||||||
.withServerType(PackageServer.PackageServerType.NPM)
|
.withServerType(PackageServer.PackageServerType.NPM)
|
||||||
.withToken(MockPackageServer.DUMMY_TOKEN);
|
.withToken(MockPackageServer.DUMMY_TOKEN);
|
||||||
PackageClient packageClient = new PackageClient(testServer);
|
PackageClient packageClient = new PackageClient(testServer);
|
||||||
|
|
|
@ -38,7 +38,6 @@ import org.hl7.fhir.utilities.VersionUtilities;
|
||||||
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
||||||
import org.hl7.fhir.utilities.http.HTTPResult;
|
import org.hl7.fhir.utilities.http.HTTPResult;
|
||||||
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
||||||
import org.hl7.fhir.utilities.http.SimpleHTTPClient;
|
|
||||||
import org.hl7.fhir.utilities.npm.FilesystemPackageCacheManager;
|
import org.hl7.fhir.utilities.npm.FilesystemPackageCacheManager;
|
||||||
import org.hl7.fhir.utilities.npm.NpmPackage;
|
import org.hl7.fhir.utilities.npm.NpmPackage;
|
||||||
import org.hl7.fhir.utilities.turtle.Turtle;
|
import org.hl7.fhir.utilities.turtle.Turtle;
|
||||||
|
|
|
@ -36,7 +36,6 @@ import org.hl7.fhir.utilities.Utilities;
|
||||||
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
||||||
import org.hl7.fhir.utilities.http.HTTPResult;
|
import org.hl7.fhir.utilities.http.HTTPResult;
|
||||||
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
||||||
import org.hl7.fhir.utilities.http.SimpleHTTPClient;
|
|
||||||
import org.hl7.fhir.utilities.validation.ValidationMessage;
|
import org.hl7.fhir.utilities.validation.ValidationMessage;
|
||||||
import org.hl7.fhir.utilities.xhtml.XhtmlComposer;
|
import org.hl7.fhir.utilities.xhtml.XhtmlComposer;
|
||||||
import org.hl7.fhir.validation.ValidatorUtils.SourceFile;
|
import org.hl7.fhir.validation.ValidatorUtils.SourceFile;
|
||||||
|
|
|
@ -89,7 +89,6 @@ import org.hl7.fhir.utilities.VersionUtilities;
|
||||||
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
||||||
import org.hl7.fhir.utilities.http.HTTPResult;
|
import org.hl7.fhir.utilities.http.HTTPResult;
|
||||||
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
||||||
import org.hl7.fhir.utilities.http.SimpleHTTPClient;
|
|
||||||
import org.hl7.fhir.utilities.npm.CommonPackages;
|
import org.hl7.fhir.utilities.npm.CommonPackages;
|
||||||
import org.hl7.fhir.utilities.npm.FilesystemPackageCacheManager;
|
import org.hl7.fhir.utilities.npm.FilesystemPackageCacheManager;
|
||||||
import org.hl7.fhir.utilities.npm.NpmPackage;
|
import org.hl7.fhir.utilities.npm.NpmPackage;
|
||||||
|
|
|
@ -9,7 +9,6 @@ import org.hl7.fhir.utilities.Utilities;
|
||||||
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
||||||
import org.hl7.fhir.utilities.http.HTTPResult;
|
import org.hl7.fhir.utilities.http.HTTPResult;
|
||||||
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
||||||
import org.hl7.fhir.utilities.http.SimpleHTTPClient;
|
|
||||||
|
|
||||||
public class ProfileLoader {
|
public class ProfileLoader {
|
||||||
public static byte[] loadProfileSource(String src) throws FHIRException, IOException {
|
public static byte[] loadProfileSource(String src) throws FHIRException, IOException {
|
||||||
|
|
|
@ -9,7 +9,6 @@ import org.hl7.fhir.r5.elementmodel.Element;
|
||||||
import org.hl7.fhir.r5.elementmodel.JsonParser;
|
import org.hl7.fhir.r5.elementmodel.JsonParser;
|
||||||
import org.hl7.fhir.utilities.http.HTTPResult;
|
import org.hl7.fhir.utilities.http.HTTPResult;
|
||||||
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
||||||
import org.hl7.fhir.utilities.http.SimpleHTTPClient;
|
|
||||||
import org.hl7.fhir.utilities.validation.ValidationMessage;
|
import org.hl7.fhir.utilities.validation.ValidationMessage;
|
||||||
import org.hl7.fhir.utilities.validation.ValidationMessage.IssueSeverity;
|
import org.hl7.fhir.utilities.validation.ValidationMessage.IssueSeverity;
|
||||||
import org.hl7.fhir.utilities.validation.ValidationMessage.IssueType;
|
import org.hl7.fhir.utilities.validation.ValidationMessage.IssueType;
|
||||||
|
|
|
@ -76,7 +76,6 @@ import org.hl7.fhir.utilities.VersionUtilities;
|
||||||
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
||||||
import org.hl7.fhir.utilities.http.HTTPResult;
|
import org.hl7.fhir.utilities.http.HTTPResult;
|
||||||
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
import org.hl7.fhir.utilities.http.ManagedWebAccess;
|
||||||
import org.hl7.fhir.utilities.http.SimpleHTTPClient;
|
|
||||||
import org.hl7.fhir.utilities.json.JsonException;
|
import org.hl7.fhir.utilities.json.JsonException;
|
||||||
import org.hl7.fhir.utilities.json.JsonTrackingParser;
|
import org.hl7.fhir.utilities.json.JsonTrackingParser;
|
||||||
import org.hl7.fhir.utilities.json.JsonUtilities;
|
import org.hl7.fhir.utilities.json.JsonUtilities;
|
||||||
|
|
2
pom.xml
2
pom.xml
|
@ -21,7 +21,7 @@
|
||||||
<commons_compress_version>1.26.0</commons_compress_version>
|
<commons_compress_version>1.26.0</commons_compress_version>
|
||||||
<guava_version>32.0.1-jre</guava_version>
|
<guava_version>32.0.1-jre</guava_version>
|
||||||
<hapi_fhir_version>6.4.1</hapi_fhir_version>
|
<hapi_fhir_version>6.4.1</hapi_fhir_version>
|
||||||
<validator_test_case_version>1.5.7</validator_test_case_version>
|
<validator_test_case_version>1.5.8-SNAPSHOT</validator_test_case_version>
|
||||||
<jackson_version>2.17.0</jackson_version>
|
<jackson_version>2.17.0</jackson_version>
|
||||||
<junit_jupiter_version>5.9.2</junit_jupiter_version>
|
<junit_jupiter_version>5.9.2</junit_jupiter_version>
|
||||||
<junit_platform_launcher_version>1.8.2</junit_platform_launcher_version>
|
<junit_platform_launcher_version>1.8.2</junit_platform_launcher_version>
|
||||||
|
|
|
@ -21,8 +21,13 @@ restricting path access to particular directories.
|
||||||
# Network access
|
# Network access
|
||||||
|
|
||||||
The library will access the web to download needed collateral, or to access terminology resources or servers.
|
The library will access the web to download needed collateral, or to access terminology resources or servers.
|
||||||
All access is by http(s) using the Apache... library, and is controlled by the class XXXX where you can
|
All access is by http(s) using base java http library, and is controlled by the class ManagedWebAccess. You can
|
||||||
turn all network access off.
|
set the static features of this class to completely cut the library off from the
|
||||||
|
web, or provide your own web accessor, or limit the web resources accessed
|
||||||
|
to particular domains or sub-domains. See ManagedWebAccess for details.
|
||||||
|
|
||||||
|
Note that for legacy reasons, network access can also be prohibited using
|
||||||
|
FhirSettings.setProhibitNetworkAccess(), but this is deprecated.
|
||||||
|
|
||||||
# Logging
|
# Logging
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue