Prerequisites:
Install Apache HTTP Client (v4.5.6) and GSON (v2.8.2) libraries and their dependencies in your class path before attempting to build and run the provided sample code .
Set the SERVER_IP_ADDRESS constant to the value of your Oracle ILOM SP IP address before compiling the sample code.
Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
/ package com.oracle.ssm.ilomrestapi.client; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import java.util.ArrayList; import java.util.List; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSession; import org.apache.http.auth.AuthScope; import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.entity.ContentType; import org.apache.http.entity.StringEntity; import org.apache.http.HeaderIterator; import org.apache.http.HttpEntity; import org.apache.http.NameValuePair; import org.apache.http.client.CredentialsProvider; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPatch; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpDelete; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.conn.ssl.TrustSelfSignedStrategy; import org.apache.http.impl.client.BasicCredentialsProvider; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.ssl.SSLContexts; import org.apache.http.util.EntityUtils; public class IlomRestApiClient { public static final String SERVER_IP_ADDRESS = <IP_address>; public static final String SERVER_PORT = "443"; public static final String ILOM_ROOT_PATH = "/rest/v1"; public static final String ILOM_ROOT_URI = "https://" + SERVER_IP_ADDRESS + ":" + SERVER_PORT + ILOM_ROOT_PATH; public static final String URI_PATH_LOGIN = "/login"; public static final String ILOM_URI_LOGIN = ILOM_ROOT_URI + URI_PATH_LOGIN; public static final String URI_PATH_LOGOUT = "/logout"; public static final String ILOM_URI_LOGOUT = ILOM_ROOT_URI + URI_PATH_LOGOUT; public static final String URI_PATH_SYSTEM = "/System"; public static final String ILOM_URI_SYSTEM = ILOM_ROOT_URI + URI_PATH_SYSTEM; public static final String URI_PATH_SP_USERS = "/SP/users"; public static final String ILOM_URI_SP_USERS = ILOM_ROOT_URI + URI_PATH_SP_USERS; public static final String URI_PATH_ELWOOD_USER = "/Elwood"; public static final String ILOM_URI_ELWOOD_USER = ILOM_URI_SP_USERS + URI_PATH_ELWOOD_USER; public static final String ACCEPT_HEADER = "Accept"; public static final String CONTENT_TYPE_HEADER = "Content-Type"; public static final String JSON_MEDIA_TYPE = "application/json"; public static final String TOKEN_HEADER = "X-Rest-Token"; private String token; private CloseableHttpClient getHttpClient(boolean useCreds) throws Exception { SSLContext sslContext = SSLContexts.custom() .loadTrustMaterial(new TrustSelfSignedStrategy()) .build(); HostnameVerifier hostNameVerifier = new HostnameVerifier() { public boolean verify(String hostname, SSLSession session) { return true; } }; SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(sslContext, new String[] { "TLSv1.2" }, null, hostNameVerifier); if (useCreds) { CredentialsProvider credsProvider = new BasicCredentialsProvider(); credsProvider.setCredentials( new AuthScope(SERVER_IP_ADDRESS, Integer.parseInt(SERVER_PORT)), new UsernamePasswordCredentials("root", "changeme")); return HttpClients.custom() .setDefaultCredentialsProvider(credsProvider) .setSSLSocketFactory(socketFactory) .build(); } else { return HttpClients.custom() .setSSLSocketFactory(socketFactory) .build(); } }