diff --git a/connector-rest/src/main/java/com/evolveum/polygon/rest/AbstractRestConfiguration.java b/connector-rest/src/main/java/com/evolveum/polygon/rest/AbstractRestConfiguration.java index eb7934d..2c6295b 100644 --- a/connector-rest/src/main/java/com/evolveum/polygon/rest/AbstractRestConfiguration.java +++ b/connector-rest/src/main/java/com/evolveum/polygon/rest/AbstractRestConfiguration.java @@ -26,7 +26,7 @@ public class AbstractRestConfiguration extends AbstractConfiguration { public enum AuthMethod { - NONE, BASIC, TOKEN + NONE, BASIC, TOKEN, BEARER_TOKEN } private String serviceAddress = null; diff --git a/connector-rest/src/main/java/com/evolveum/polygon/rest/AbstractRestConnector.java b/connector-rest/src/main/java/com/evolveum/polygon/rest/AbstractRestConnector.java index e9768e3..cf5e503 100644 --- a/connector-rest/src/main/java/com/evolveum/polygon/rest/AbstractRestConnector.java +++ b/connector-rest/src/main/java/com/evolveum/polygon/rest/AbstractRestConnector.java @@ -106,6 +106,9 @@ public void access(char[] clearChars) { case TOKEN: break; + case BEARER_TOKEN: + break; + default: throw new IllegalArgumentException("Unknown authentication method " + getConfiguration().getAuthMethod()); @@ -155,7 +158,8 @@ public CloseableHttpClient getHttpClient() { */ public CloseableHttpResponse execute(HttpUriRequest request) { try { - if (AbstractRestConfiguration.AuthMethod.TOKEN.name().equals(getConfiguration().getAuthMethod())) { + if (AbstractRestConfiguration.AuthMethod.TOKEN.name().equals(getConfiguration().getAuthMethod()) || + AbstractRestConfiguration.AuthMethod.BEARER_TOKEN.name().equals(getConfiguration().getAuthMethod())) { final StringBuilder token = new StringBuilder(); if (getConfiguration().getTokenValue() != null) { @@ -167,7 +171,12 @@ public void access(char[] chars) { }); } - request.setHeader(getConfiguration().getTokenName(), token.toString()); + if (AbstractRestConfiguration.AuthMethod.TOKEN.name().equals(getConfiguration().getAuthMethod())) { + request.setHeader(getConfiguration().getTokenName(), token.toString()); + } else { + request.setHeader("Authorization", "Bearer " + token.toString()); + } + } return getHttpClient().execute(request); } catch (IOException e) {