/* * Licensed Materials - Property of IBM * © Copyright IBM Corporation 2015. All Rights Reserved. */ package com.ibm.mil.readyapps.telco.utils; import android.app.Activity; import android.util.Log; import com.worklight.wlclient.api.WLFailResponse; import com.worklight.wlclient.api.WLProcedureInvocationData; import com.worklight.wlclient.api.WLRequestOptions; import com.worklight.wlclient.api.WLResponse; import com.worklight.wlclient.api.challengehandler.ChallengeHandler; import org.json.JSONException; public class TelcoChallengeHandler extends ChallengeHandler { private static final String DEMO_USERNAME = "user1"; private static final String DEMO_PASSWORD = "password1"; private static final String TELCO_AUTH_REALM = "AdapterAuthenticationRealm"; private static final String TELCO_AUTH_ADAPTER = "AuthenticationAdapter"; private static final String TELCO_AUTH_METHOD = "submitAuthentication"; private WLResponse cachedResponse; public TelcoChallengeHandler() { super(TELCO_AUTH_REALM); } @Override public void onFailure(WLFailResponse response) { submitFailure(response); } @Override public void onSuccess(WLResponse response) { submitSuccess(response); } @Override public boolean isCustomResponse(WLResponse response) { try { if (response != null && response.getResponseJSON() != null && !response.getResponseJSON().isNull("authRequired") && response.getResponseJSON().getBoolean("authRequired")) { return true; } } catch (JSONException e) { e.printStackTrace(); } return false; } @Override public void handleChallenge(WLResponse response) { cachedResponse = response; /* This is where a developer would traditionally have code to spawn a login activity */ Log.i("TEST", "HANDLE CHALLENGE EXECUTED"); submitLogin(Activity.RESULT_OK, DEMO_USERNAME, DEMO_PASSWORD, false); } private void submitLogin(int resultCode, String userName, String password, boolean back) { if (resultCode != Activity.RESULT_OK || back) { submitFailure(cachedResponse); } else { Object[] parameters = new Object[]{userName, password}; WLProcedureInvocationData invocationData = new WLProcedureInvocationData (TELCO_AUTH_ADAPTER, TELCO_AUTH_METHOD); invocationData.setParameters(parameters); WLRequestOptions options = new WLRequestOptions(); options.setTimeout(30000); submitAdapterAuthentication(invocationData, options); Log.i("TEST", "SUBMIT LOGIN"); } } }