diff --git a/gradle.properties b/gradle.properties index b1fc090..857250d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -project_version=1.7.11 +project_version=1.7.12 base_connector_version=3.0.3 config_plugin_version=3.0.3 test_connector_version=3.0.1 diff --git a/src/main/java/com/exclamationlabs/connid/base/grafana/adapter/GrafanaDataSourceAdapter.java b/src/main/java/com/exclamationlabs/connid/base/grafana/adapter/GrafanaDataSourceAdapter.java index ef61b7d..adc44db 100644 --- a/src/main/java/com/exclamationlabs/connid/base/grafana/adapter/GrafanaDataSourceAdapter.java +++ b/src/main/java/com/exclamationlabs/connid/base/grafana/adapter/GrafanaDataSourceAdapter.java @@ -13,10 +13,7 @@ import org.identityconnectors.framework.common.objects.AttributeBuilder; import org.identityconnectors.framework.common.objects.ObjectClass; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; +import java.util.*; import static com.exclamationlabs.connid.base.connector.attribute.ConnectorAttributeDataType.BOOLEAN; import static com.exclamationlabs.connid.base.connector.attribute.ConnectorAttributeDataType.STRING; @@ -49,11 +46,32 @@ protected Set constructAttributes(GrafanaDataSource dataSource) attributes.add(AttributeBuilder.build(url.name(), dataSource.getUrl())); attributes.add(AttributeBuilder.build(basicAuth.name(), dataSource.getBasicAuth())); attributes.add(AttributeBuilder.build(basicAuthUser.name(), dataSource.getBasicAuthUser())); - attributes.add(AttributeBuilder.build(basicAuthPassword.name(), dataSource.getBasicAuthPassword())); + if ( dataSource.getBasicAuthPassword() != null && dataSource.getBasicAuthPassword().trim().length() > 0 ) + { + String encoded = Base64.getEncoder().encodeToString(dataSource.getBasicAuthPassword().getBytes()); + attributes.add(AttributeBuilder.build(basicAuthPassword.name(), "OBF:"+encoded)); + } + else + { + attributes.add(AttributeBuilder.build(basicAuthPassword.name(), dataSource.getBasicAuthPassword())); + } + + attributes.add(AttributeBuilder.build(database.name(), dataSource.getDatabase())); attributes.add(AttributeBuilder.build(uid.name(), dataSource.getUid())); attributes.add(AttributeBuilder.build(user.name(), dataSource.getUser())); - attributes.add(AttributeBuilder.build(password.name(), dataSource.getPassword())); + + if ( dataSource.getPassword() != null && dataSource.getPassword().trim().length() > 0 ) + { + String encoded = Base64.getEncoder().encodeToString(dataSource.getPassword().getBytes()); + attributes.add(AttributeBuilder.build(password.name(), "OBF:"+encoded)); + } + else + { + attributes.add(AttributeBuilder.build(password.name(), dataSource.getPassword())); + } + attributes.add(AttributeBuilder.build(dataSourceId.name(), String.valueOf(dataSource.getId()))); + if ( dataSource.getJsonData() != null ) { String json = gson.toJson(dataSource.getJsonData()); @@ -137,13 +155,38 @@ protected GrafanaDataSource constructModel(Set attributes, Set getConnectorAttributes() result.add(new ConnectorAttribute(jsonData.name(), STRING)); result.add(new ConnectorAttribute(secureJsonData.name(), STRING, NOT_READABLE, NOT_RETURNED_BY_DEFAULT, NOT_UPDATEABLE)); result.add(new ConnectorAttribute(user.name(), STRING)); + result.add(new ConnectorAttribute(database.name(), STRING)); result.add(new ConnectorAttribute(password.name(), STRING)); result.add(new ConnectorAttribute(dataSourceId.name(), STRING, NOT_UPDATEABLE, NOT_CREATABLE)); return result; diff --git a/src/main/java/com/exclamationlabs/connid/base/grafana/attribute/GrafanaDataSourceAttribute.java b/src/main/java/com/exclamationlabs/connid/base/grafana/attribute/GrafanaDataSourceAttribute.java index 8dec547..3d7a94b 100644 --- a/src/main/java/com/exclamationlabs/connid/base/grafana/attribute/GrafanaDataSourceAttribute.java +++ b/src/main/java/com/exclamationlabs/connid/base/grafana/attribute/GrafanaDataSourceAttribute.java @@ -17,5 +17,6 @@ public enum GrafanaDataSourceAttribute secureJsonData, user, password, - dataSourceId + dataSourceId, + database }