org.connid.bundles.openam.OpenAMConnection Maven / Gradle / Ivy
The newest version!
/*
* ====================
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 2011 Tirasa. All rights reserved.
*
* The contents of this file are subject to the terms of the Common Development
* and Distribution License("CDDL") (the "License"). You may not use this file
* except in compliance with the License.
*
* You can obtain a copy of the License at
* http://IdentityConnectors.dev.java.net/legal/license.txt
* See the License for the specific language governing
* permissions and limitations under the License.
*
* When distributing the Covered Code, include this
* CDDL Header Notice in each file
* and include the License file at identityconnectors/legal/license.txt.
* If applicable, add the following below this CDDL Header, with the fields
* enclosed by brackets [] replaced by your own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
* ====================
*/
package org.connid.bundles.openam;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.commons.httpclient.HttpStatus;
import org.connid.bundles.openam.http.HttpClientMethods;
import org.connid.bundles.openam.restful.RestfulClientMethods;
import org.connid.bundles.openam.utilities.UrlFactory;
import org.identityconnectors.common.logging.Log;
import org.identityconnectors.framework.common.exceptions.ConnectorException;
import org.springframework.web.client.HttpClientErrorException;
public class OpenAMConnection {
private static final Log LOG = Log.getLog(OpenAMConnection.class);
private final RestfulClientMethods restfulClient =
new RestfulClientMethods();
private final HttpClientMethods httpClientMethods =
new HttpClientMethods();
private UrlFactory urlFactory = null;
private OpenAMConnection(final OpenAMConfiguration configuration) {
urlFactory = new UrlFactory(configuration);
}
public static OpenAMConnection openConnection(final OpenAMConfiguration configuration) {
return new OpenAMConnection(configuration);
}
public String authenticate(final String username, final String password) throws HttpClientErrorException {
try {
return restfulClient.getMethod(new URI(urlFactory.authenticateUrl(username, password)));
} catch (URISyntaxException e) {
LOG.error(e, "Authentication failed. Invalid URI.");
return null;
}
}
public void create(final String parameters) {
try {
restfulClient.getMethod(new URI(urlFactory.createUrl(parameters)));
} catch (URISyntaxException e) {
LOG.error(e, "Creation failed. Invalid URI.");
throw new ConnectorException(e);
}
}
public void logout(final String token) {
restfulClient.getMethod(urlFactory.logoutUrl(token));
}
public void update(final String parameters) {
try {
restfulClient.getMethod(new URI(urlFactory.updateUrl(parameters)));
} catch (URISyntaxException e) {
LOG.error(e, "Update failed. Invalid URI.");
throw new ConnectorException(e);
}
}
public void delete(final String parameters) {
restfulClient.getMethod(urlFactory.deleteUrl(parameters));
}
public String userSearch(final String parameters) {
return restfulClient.getMethod(urlFactory.searchUrl(parameters));
}
public String search(final String parameters) throws IOException {
return httpClientMethods.get(urlFactory.searchUrl(parameters));
}
public String read(final String parameters) throws HttpClientErrorException {
return restfulClient.getMethod(urlFactory.readUrl(parameters));
}
public boolean isAlive() throws IOException {
Integer statusCode = new Integer(httpClientMethods.getMethod(urlFactory.testUrl()));
return statusCode.equals(HttpStatus.SC_OK);
}
public String isTokenValid(final String parameters) {
return restfulClient.getMethod(urlFactory.isTokenValidUrl(parameters));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy