From 1c01664a90781edf36503e59f65beda68329467d Mon Sep 17 00:00:00 2001 From: Jakub Koudelka Date: Thu, 27 Oct 2022 19:59:09 +0200 Subject: [PATCH] Added support for Bearer token in rest connector Signed-off-by: Jakub Koudelka --- .../polygon/rest/AbstractRestConfiguration.java | 2 +- .../polygon/rest/AbstractRestConnector.java | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) 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) {