in src/main/java/com/aws/sap/sample/lambda/sap/oauth/SAPOAuthHandler.java [36:103]
public void handleRequest(InputStream input, OutputStream output, Context context) throws IOException {
BufferedReader inputReader = new BufferedReader(new InputStreamReader(input));
JSONObject responseJson = new JSONObject();
String responseCode = "200";
//configProps.putAll(System.getenv());
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
try {
JSONObject responseBody = new JSONObject();
System.out.println("Got JSON Object");
//Get the event object from input
JSONObject event = (JSONObject)parser.parse(inputReader);
System.out.println("Got Event");
String bodyString = (String) event.get("body");
System.out.println("Got Body String: " + bodyString);
JSONObject body = (JSONObject)parser.parse(bodyString);
//Get the properties from event body
String action = (String) body.get("action");
System.out.println("Action is: " + action);
String scope = (String) body.get("scope");
System.out.println("Scope is: " + scope);
JSONObject propsJSON = (JSONObject)body.get("properties");
System.out.println("Got Properties JSON object");
Set<String> propKeys = propsJSON.keySet();
System.out.println("Properties is: " + propKeys.toString());
for (String p:propKeys) {
configProps.setProperty(p, (String) propsJSON.get(p));
}
logger = new ExecutionLogger(context, configProps);
System.out.println("Got logger");
String nameid = getNameId(event);
configProps.setProperty("saml_nameid", nameid);
logger.log("Step 0: Action is " + action);
if(action.equals("metadata")) {
logger.log("Step 1: Metada action requested");
responseBody.put("metadataxml", getMetaDataXML());
}else if(action.equals("accessToken")) {
logger.log("Step 1: AccessToken action requested");
responseBody.put("accessToken", getAccessToken(scope,nameid));
responseJson.put("isBase64Encoded", false);
}
responseJson.put("statusCode", responseCode);
responseJson.put("body", responseBody.toString());
}catch(Exception ex) {
//logger.log("Kaput! Error in handling this request: ",ex);
responseJson.put("statusCode", "400");
ex.printStackTrace(pw);
pw.flush();
responseJson.put("exception", sw.toString());
}
OutputStreamWriter writer = new OutputStreamWriter(output, "UTF-8");
writer.write(responseJson.toJSONString());
writer.close();
}