Implemented authentication and reading workflows over player API
Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/commit/811abb15 Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/811abb15 Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/811abb15 Branch: refs/heads/master Commit: 811abb15faef88a5c74410b830fc0e5e8ac26d6f Parents: 1ecf5be Author: larrytech7 <larrya...@gmail.com> Authored: Sat Jun 13 22:59:27 2015 +0100 Committer: larrytech7 <larrya...@gmail.com> Committed: Sat Jun 13 22:59:27 2015 +0100 ---------------------------------------------------------------------- .../activities/DashboardMainActivity.class | Bin 9992 -> 9934 bytes .../mobile/fragments/WorkflowItemFragment.class | Bin 8457 -> 8448 bytes .../TavernaPlayerAPI$Authenticator.class | Bin 0 -> 926 bytes .../mobile/tavernamobile/TavernaPlayerAPI.class | Bin 542 -> 665 bytes .../taverna/mobile/utils/WorkflowLoader.class | Bin 4570 -> 5584 bytes app/build/intermediates/dex/debug/classes.dex | Bin 1651956 -> 1653124 bytes .../res/debug/layout/fragment_login.xml | 14 ++++++--- .../intermediates/resources/resources-debug.ap_ | Bin 714300 -> 714357 bytes app/build/outputs/apk/app-debug-unaligned.apk | Bin 1434561 -> 1435074 bytes app/build/outputs/apk/app-debug.apk | Bin 1434959 -> 1435471 bytes .../mobile/tavernamobile/TavernaPlayerAPI.java | 18 +++++++++++ .../taverna/mobile/utils/WorkflowLoader.java | 31 ++++++++++++------- 12 files changed, 48 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/811abb15/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/DashboardMainActivity.class ---------------------------------------------------------------------- diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/DashboardMainActivity.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/DashboardMainActivity.class index 42e068d..4720511 100644 Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/DashboardMainActivity.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/DashboardMainActivity.class differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/811abb15/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/WorkflowItemFragment.class ---------------------------------------------------------------------- diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/WorkflowItemFragment.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/WorkflowItemFragment.class index c78f55b..2956a73 100644 Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/WorkflowItemFragment.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/WorkflowItemFragment.class differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/811abb15/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI$Authenticator.class ---------------------------------------------------------------------- diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI$Authenticator.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI$Authenticator.class new file mode 100644 index 0000000..4fa5a7e Binary files /dev/null and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI$Authenticator.class differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/811abb15/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.class ---------------------------------------------------------------------- diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.class index 053f041..11ba8b8 100644 Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.class differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/811abb15/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowLoader.class ---------------------------------------------------------------------- diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowLoader.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowLoader.class index d043040..f8a88f5 100644 Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowLoader.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowLoader.class differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/811abb15/app/build/intermediates/dex/debug/classes.dex ---------------------------------------------------------------------- diff --git a/app/build/intermediates/dex/debug/classes.dex b/app/build/intermediates/dex/debug/classes.dex index 79ad4f1..35631f7 100644 Binary files a/app/build/intermediates/dex/debug/classes.dex and b/app/build/intermediates/dex/debug/classes.dex differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/811abb15/app/build/intermediates/res/debug/layout/fragment_login.xml ---------------------------------------------------------------------- diff --git a/app/build/intermediates/res/debug/layout/fragment_login.xml b/app/build/intermediates/res/debug/layout/fragment_login.xml index 9859cc1..7845c46 100644 --- a/app/build/intermediates/res/debug/layout/fragment_login.xml +++ b/app/build/intermediates/res/debug/layout/fragment_login.xml @@ -17,9 +17,15 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" +<ScrollView + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent"> +<RelativeLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" @@ -138,4 +144,4 @@ limitations under the License. </LinearLayout> </RelativeLayout> -<!-- From: file:/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/fragment_login.xml --> \ No newline at end of file +</ScrollView><!-- From: file:/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/fragment_login.xml --> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/811abb15/app/build/intermediates/resources/resources-debug.ap_ ---------------------------------------------------------------------- diff --git a/app/build/intermediates/resources/resources-debug.ap_ b/app/build/intermediates/resources/resources-debug.ap_ index 3ae37de..2c830f0 100644 Binary files a/app/build/intermediates/resources/resources-debug.ap_ and b/app/build/intermediates/resources/resources-debug.ap_ differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/811abb15/app/build/outputs/apk/app-debug-unaligned.apk ---------------------------------------------------------------------- diff --git a/app/build/outputs/apk/app-debug-unaligned.apk b/app/build/outputs/apk/app-debug-unaligned.apk index b4a7ead..1ffe7f5 100644 Binary files a/app/build/outputs/apk/app-debug-unaligned.apk and b/app/build/outputs/apk/app-debug-unaligned.apk differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/811abb15/app/build/outputs/apk/app-debug.apk ---------------------------------------------------------------------- diff --git a/app/build/outputs/apk/app-debug.apk b/app/build/outputs/apk/app-debug.apk index cd7d840..99dc84d 100644 Binary files a/app/build/outputs/apk/app-debug.apk and b/app/build/outputs/apk/app-debug.apk differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/811abb15/app/src/main/java/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.java b/app/src/main/java/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.java index e4f353d..e4d73aa 100644 --- a/app/src/main/java/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.java +++ b/app/src/main/java/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.java @@ -1,5 +1,8 @@ package org.apache.taverna.mobile.tavernamobile; +import java.net.Authenticator; +import java.net.PasswordAuthentication; + /** * Created by root on 6/13/15. */ @@ -9,4 +12,19 @@ public class TavernaPlayerAPI { public TavernaPlayerAPI() { } + + public static class Authenticator extends java.net.Authenticator{ + private String username, password; + + public Authenticator(String username, String password) { + super(); + this.username = username; + this.password = password; + } + + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(this.username, this.password.toCharArray()); + } + } } http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/811abb15/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoader.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoader.java b/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoader.java index 198b4ba..abffa1e 100644 --- a/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoader.java +++ b/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoader.java @@ -26,8 +26,9 @@ package org.apache.taverna.mobile.utils; import android.app.Activity; import android.content.AsyncTaskLoader; import android.content.Context; +import android.util.Base64; +import android.util.Log; -import org.apache.taverna.mobile.adapters.WorkflowAdapter; import org.apache.taverna.mobile.tavernamobile.TavernaPlayerAPI; import org.apache.taverna.mobile.tavernamobile.Workflow; import org.json.JSONArray; @@ -35,15 +36,13 @@ import org.json.JSONException; import org.json.JSONObject; import java.io.BufferedReader; -import java.io.DataInputStream; -import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.net.Authenticator; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; -import java.net.URLConnection; import java.util.ArrayList; import java.util.List; @@ -65,16 +64,25 @@ public class WorkflowLoader extends AsyncTaskLoader<List<Workflow>> { userWorkflows = new ArrayList<Workflow>(); //start a network request to fetch user's workflows try { + //for password protected urls use the user's credentials + Authenticator.setDefault(new TavernaPlayerAPI.Authenticator("taverna","taverna")); + URL workflowurl = new URL(TavernaPlayerAPI.PLAYER_URL+"workflows"); HttpURLConnection connection = (HttpURLConnection) workflowurl.openConnection(); - connection.setDoInput(true); - connection.setDoOutput(true); - connection.setUseCaches(false); - connection.setRequestProperty("Accept","application/json"); + String userpass = "icep...@gmail.com" + ":" + "creationfox"; + String basicAuth = "Basic " + Base64.encodeToString(userpass.getBytes(),Base64.DEFAULT); + //new String(Base64.encode(userpass.getBytes(),Base64.DEFAULT)); + + connection.setRequestProperty ("Authorization", basicAuth); + connection.setRequestProperty("Accept", "application/json"); connection.setRequestMethod("GET"); + // connection.setDoInput(true); + // connection.setDoOutput(true); connection.connect(); //send request + Log.i("RESPONSE Code", ""+connection.getResponseCode()); + Log.i("RESPONSE Messsage", ""+connection.getResponseMessage()); + Log.i("Authorization ", ""+connection.getRequestProperty("Authorization")); -// DataInputStream dis = new DataInputStream(connection.getInputStream()); InputStream dis = connection.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(dis)); StringBuffer sb = new StringBuffer(); @@ -87,11 +95,12 @@ public class WorkflowLoader extends AsyncTaskLoader<List<Workflow>> { JSONArray jsonWorkflow = new JSONArray(sb.toString()); for(int i=0; i<jsonWorkflow.length();i++){ JSONObject js = jsonWorkflow.getJSONObject(i); - String author = js.getString("author"); + Log.i("JSON ", js.toString(2)); + //String author = js.getString("author"); String title = js.getString("title"); String description = js.getString("description"); long id = js.getLong("id"); - userWorkflows.add(new Workflow(ctx,title,author,description,id,"")); + userWorkflows.add(new Workflow(ctx,title,"Larry",description,id,"")); } } catch (MalformedURLException e) {