public void handleRequest()

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();

	}