37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos/*
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos *
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos * Copyright (c) 2014 ForgeRock AS. All Rights Reserved
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos *
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos * The contents of this file are subject to the terms
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos * of the Common Development and Distribution License
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos * (the License). You may not use this file except in
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos * compliance with the License.
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos *
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos * You can obtain a copy of the License at
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos * http://forgerock.org/license/CDDLv1.0.html
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos * See the License for the specific language governing
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos * permission and limitations under the License.
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos *
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos * When distributing Covered Code, include this CDDL
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos * Header Notice in each file and include the License file
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos * at http://forgerock.org/license/CDDLv1.0.html
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos * If applicable, add the following below the CDDL Header,
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos * with the fields enclosed by brackets [] replaced by
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos * your own identifying information:
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos * "Portions Copyrighted [year] [name of copyright owner]"
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos */
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordosimport AzureADOAuth2HttpClientFactory
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordosimport org.apache.http.auth.UsernamePasswordCredentials
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordosimport org.apache.olingo.client.api.v3.ODataClient
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordosimport org.apache.olingo.client.core.ODataClientFactory
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordosimport org.forgerock.openicf.misc.scriptedcommon.ScriptedConfiguration
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordosimport org.identityconnectors.common.logging.Log
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordosdef configuration = configuration as ScriptedConfiguration
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordosdef log = log as Log
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordosdef oauth2 = configuration.getPropertyBag().get("oauth2") as ConfigObject
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordosfinal AzureADOAuth2HttpClientFactory oauth2HCF = new AzureADOAuth2HttpClientFactory(
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos oauth2.get("authority"),
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos oauth2.get("clientId"),
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos oauth2.get("clientSecret"),
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos oauth2.get("redirectURI"),
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos oauth2.get("resourceURI"),
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos new UsernamePasswordCredentials(
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos oauth2.get("username"),
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos oauth2.get("password")));
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos//final ODataClient client = ODataClientFactory.getEdmEnabledV3("https://graph.windows.net/contoso.onmicrosoft.com/");
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordosfinal ODataClient client = ODataClientFactory.getEdmEnabledV3(configuration.getPropertyBag().get("graphServiceUrl") as String)
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordosclient.getConfiguration().setHttpClientFactory(oauth2HCF);
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordosconfiguration.propertyBag.putIfAbsent("ODataClient", client)
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordosconfiguration.releaseClosure = {
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos def c = propertyBag.get("ODataClient") as ODataClient
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos ((Closeable) c.configuration.getHttpClientFactory()).close()
37314e141b6bbe540ce20aab2d651f82cc865a24Laszlo Hordos}