Create a OAuth client in OAM. Encode the username and password of the client in "username:password" format. This can be achieved from https://www.base64encode.org/ site.
Once OAuth client is created it can be checked using below command:
curl -i -H 'Authorization: Basic <Encoded Username:Password>' -H "Content-Type: application/x-www-form-urlencoded;charset=UTF-8" --request POST http://<OAM_host>:14100/ms_oauth/oauth2/endpoints/oauthservice/tokens -d 'grant_type=password&username=<OAM_Admin>&password=<OAM_Admin_Pwd>'
If the response is 200 and access token is retrieved then OAuth service is working fine.
Same access token can be retrieved using below sample code :
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import org.json.JSONObject;
import java.net.HttpURLConnection;
import java.net.URL;
public class CheckRest {
public static void main(String[] args) {
URL url;
try {
url = new URL("http://<OAM_Host>:14100/ms_oauth/oauth2/endpoints/oauthservice/tokens");
HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
httpCon.setDoOutput(true);
httpCon.setRequestMethod("POST");
httpCon.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
httpCon.setRequestProperty("Authorization","Basic b21zc2NsaWVudDpPcmFjbGUxMjM=");
httpCon.setRequestProperty("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
String urlParameters = "grant_type=password&username=<OAM_Admin>&password=<OAM_Admin_Pwd>";
// Send post request
httpCon.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(httpCon.getOutputStream());
wr.writeBytes(urlParameters);
wr.flush();
wr.close();
int responseCode = httpCon.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Post parameters : " + urlParameters);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(new InputStreamReader(
httpCon.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null)
{
response.append(inputLine);
}
in.close();
// print result
System.out.println(response.toString());
JSONObject results = new JSONObject(response.toString());
results.get("access_token");
System.out.println("access token = " + results.get("access_token"));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Once OAuth client is created it can be checked using below command:
curl -i -H 'Authorization: Basic <Encoded Username:Password>' -H "Content-Type: application/x-www-form-urlencoded;charset=UTF-8" --request POST http://<OAM_host>:14100/ms_oauth/oauth2/endpoints/oauthservice/tokens -d 'grant_type=password&username=<OAM_Admin>&password=<OAM_Admin_Pwd>'
If the response is 200 and access token is retrieved then OAuth service is working fine.
Same access token can be retrieved using below sample code :
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import org.json.JSONObject;
import java.net.HttpURLConnection;
import java.net.URL;
public class CheckRest {
public static void main(String[] args) {
URL url;
try {
url = new URL("http://<OAM_Host>:14100/ms_oauth/oauth2/endpoints/oauthservice/tokens");
HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
httpCon.setDoOutput(true);
httpCon.setRequestMethod("POST");
httpCon.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
httpCon.setRequestProperty("Authorization","Basic b21zc2NsaWVudDpPcmFjbGUxMjM=");
httpCon.setRequestProperty("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
String urlParameters = "grant_type=password&username=<OAM_Admin>&password=<OAM_Admin_Pwd>";
// Send post request
httpCon.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(httpCon.getOutputStream());
wr.writeBytes(urlParameters);
wr.flush();
wr.close();
int responseCode = httpCon.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Post parameters : " + urlParameters);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(new InputStreamReader(
httpCon.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null)
{
response.append(inputLine);
}
in.close();
// print result
System.out.println(response.toString());
JSONObject results = new JSONObject(response.toString());
results.get("access_token");
System.out.println("access token = " + results.get("access_token"));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Hi! Do you have some tutorial about how to configure this in OAM?
ReplyDeleteTks!