You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by ia...@apache.org on 2015/07/27 12:05:50 UTC
[13/18] incubator-taverna-mobile git commit: fix user login into
myexperiment. Watch status code of 307, 301, 302 for redirects
fix user login into myexperiment. Watch status code of 307, 301,302 for redirects
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/bce87110
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/bce87110
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/bce87110
Branch: refs/heads/master
Commit: bce871108eb9206b33163a4021faa2e3fcf1e566
Parents: 22e8de5
Author: larrytech7 <la...@gmail.com>
Authored: Wed Jul 22 23:04:46 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Wed Jul 22 23:04:46 2015 +0100
----------------------------------------------------------------------
.../mobile/activities/LoginActivity.java | 41 +++++++++++++++-----
1 file changed, 31 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/bce87110/app/src/main/java/org/apache/taverna/mobile/activities/LoginActivity.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/activities/LoginActivity.java b/app/src/main/java/org/apache/taverna/mobile/activities/LoginActivity.java
index 7048554..c50f5bb 100644
--- a/app/src/main/java/org/apache/taverna/mobile/activities/LoginActivity.java
+++ b/app/src/main/java/org/apache/taverna/mobile/activities/LoginActivity.java
@@ -141,6 +141,8 @@ public class LoginActivity extends ActionBarActivity {
private class LoginTask extends AsyncTask<String, Void, String>{
private Context context;
private ProgressDialog pd;
+ String cookie;
+ String userurl;
private LoginTask(Context context) {
this.context = context;
@@ -168,31 +170,49 @@ public class LoginActivity extends ActionBarActivity {
con = (HttpURLConnection) url.openConnection();
String userName = params[0];
String password = params[1];
+ boolean redirect = false;
String authentication = userName + ":" + password;
con.setRequestMethod("GET");
con.setRequestProperty("Authorization", "Basic " + Base64.encodeToString(authentication.getBytes(), Base64.DEFAULT));
con.setInstanceFollowRedirects(true);
-
+ HttpURLConnection.setFollowRedirects(true);
con.connect();
- response = String.valueOf(con.getResponseCode());
- //response values are:
- //401 for an unauthorized or invalid credential and 200 for a valid and authorized user
- System.out.println("url = "+con.getURL());
- System.out.println("content-type = "+con.getContentType());
- System.out.println("content encoding "+con.getContentEncoding());
- System.out.println("date"+con.getDate());
- System.out.println("" + response);
- System.out.println(""+con.getResponseMessage());
+ int status = con.getResponseCode();
+ response = String.valueOf(status);
+ if(status != HttpURLConnection.HTTP_OK){
+ if (status == HttpURLConnection.HTTP_MOVED_PERM ||
+ status == HttpURLConnection.HTTP_MOVED_TEMP ||
+ status == HttpURLConnection.HTTP_SEE_OTHER || status == 307){
+ redirect = true;
+ }
+
+ }
+ System.out.println("Status code: "+status);
+ if(redirect) {
+ // get redirect url from "location" header field
+ String newUrl = con.getHeaderField("Location");
+ this.userurl = newUrl;
+ // get the cookie needed, for login
+ String cookies = con.getHeaderField("Set-Cookie");
+ this.cookie = cookies;
+ // open the new connection again
+ con = (HttpURLConnection) new URL(newUrl).openConnection();
+ con.setRequestProperty("Cookie", cookies);
+ System.out.println("Redirect to URL : " + newUrl);
+ con.connect();
+ }
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
StringBuilder sb = new StringBuilder();
String s = "";
while((s = br.readLine())!= null ){
sb.append(s);
}
+ br.close();
System.out.println("data: "+sb.toString());
con.disconnect();
+
return response;
} catch (MalformedURLException e) {
@@ -213,6 +233,7 @@ public class LoginActivity extends ActionBarActivity {
Toast.makeText(getActivity(), getActivity().getString(R.string.auth_err), Toast.LENGTH_LONG).show();
break;
case 200:
+ case 307:
this.context.startActivity(new Intent(this.context, DashboardMainActivity.class));
getActivity().overridePendingTransition(R.anim.abc_slide_in_bottom, R.anim.abc_slide_out_top);
getActivity().finish();