diff options
| author | cyBerta <richy@cyborgsociety.org> | 2013-12-20 20:25:48 +0100 | 
|---|---|---|
| committer | cyBerta <richy@cyborgsociety.org> | 2013-12-20 20:25:48 +0100 | 
| commit | 31e0ee7819ff6e852bc40f66858f0ac02659bf04 (patch) | |
| tree | 85969d750a2473a95603e07f256681ca46c746cd | |
| parent | 8bc035e5785b8a14c26cdb6ab409242b66554992 (diff) | |
| parent | c500f60c9188c938b550b8741ca9a4f4939429e4 (diff) | |
Merge branch 'feature/token-based-auth' into develop
Conflicts:
	src/se/leap/bitmaskclient/ConfigurationWizard.java
	src/se/leap/bitmaskclient/Dashboard.java
	src/se/leap/bitmaskclient/ProviderAPI.java
	src/se/leap/bitmaskclient/ProviderListFragment.java
| -rw-r--r-- | src/se/leap/bitmaskclient/ConfigurationWizard.java | 6 | ||||
| -rw-r--r-- | src/se/leap/bitmaskclient/Dashboard.java | 2 | ||||
| -rw-r--r-- | src/se/leap/bitmaskclient/LeapSRPSession.java | 11 | ||||
| -rw-r--r-- | src/se/leap/bitmaskclient/ProviderAPI.java | 18 | ||||
| -rw-r--r-- | src/se/leap/bitmaskclient/ProviderListFragment.java | 16 | 
5 files changed, 47 insertions, 6 deletions
| diff --git a/src/se/leap/bitmaskclient/ConfigurationWizard.java b/src/se/leap/bitmaskclient/ConfigurationWizard.java index a4d8599f..694dbf7c 100644 --- a/src/se/leap/bitmaskclient/ConfigurationWizard.java +++ b/src/se/leap/bitmaskclient/ConfigurationWizard.java @@ -189,9 +189,9 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn  	//	resetOldConnection();
  	    ProviderItem selected_provider = getProvider(id);
  	    int provider_index = getProviderIndex(id);
 -	    startProgressBar(provider_index);
 -	    provider_list_fragment.hideAllBut(provider_index); -	    setUpProvider(selected_provider.providerMainUrl(), true); +	    startProgressBar(provider_index); +		provider_list_fragment.hideAllBut(provider_index);
 +		setUpProvider(selected_provider.providerMainUrl(), true);
      }
      @Override
 diff --git a/src/se/leap/bitmaskclient/Dashboard.java b/src/se/leap/bitmaskclient/Dashboard.java index 7f898a67..01a9c20a 100644 --- a/src/se/leap/bitmaskclient/Dashboard.java +++ b/src/se/leap/bitmaskclient/Dashboard.java @@ -88,6 +88,7 @@ public class Dashboard extends Activity implements LogInDialog.LogInDialogInterf  	//    mProgressBar = (ProgressBar) findViewById(R.id.eipProgress);  	//	eipStatus = (TextView) findViewById(R.id.eipStatus); +  	    mProgressBar = (ProgressBar) findViewById(R.id.eipProgress);  		ConfigHelper.setSharedPreferences(getSharedPreferences(SHARED_PREFERENCES, MODE_PRIVATE)); @@ -465,4 +466,5 @@ public class Dashboard extends Activity implements LogInDialog.LogInDialogInterf  		startService(eip_intent);  	} +  } diff --git a/src/se/leap/bitmaskclient/LeapSRPSession.java b/src/se/leap/bitmaskclient/LeapSRPSession.java index 14a8bff2..0849f777 100644 --- a/src/se/leap/bitmaskclient/LeapSRPSession.java +++ b/src/se/leap/bitmaskclient/LeapSRPSession.java @@ -35,9 +35,12 @@ import org.jboss.security.srp.SRPParameters;   */  public class LeapSRPSession { +	private static String token = ""; +	  	final public static String SALT = "salt";  	final public static String M1 = "M1";  	final public static String M2 = "M2"; +	final public static String TOKEN = "token";  	private SRPParameters params;  	private String username; @@ -312,6 +315,14 @@ public class LeapSRPSession {  		boolean valid = Arrays.equals(M2, myM2);  		return valid;  	} +	 +	protected static void setToken(String token) { +		LeapSRPSession.token = token; +	} +	 +	protected static String getToken() { +		return token; +	}  	/**  	 * @return a new SHA-256 digest. diff --git a/src/se/leap/bitmaskclient/ProviderAPI.java b/src/se/leap/bitmaskclient/ProviderAPI.java index 2a1cd29b..cc94edff 100644 --- a/src/se/leap/bitmaskclient/ProviderAPI.java +++ b/src/se/leap/bitmaskclient/ProviderAPI.java @@ -27,6 +27,7 @@ import java.net.CookieManager;  import java.net.CookiePolicy;  import java.net.MalformedURLException;  import java.net.SocketTimeoutException; +import java.net.URISyntaxException;  import java.net.URL;  import java.net.URLConnection;  import java.net.URLEncoder; @@ -343,6 +344,9 @@ public class ProviderAPI extends IntentService {  			session_idAndM2.put(ConfigHelper.SESSION_ID_COOKIE_KEY, session_id_cookie.getName());  			session_idAndM2.put(ConfigHelper.SESSION_ID_KEY, session_id_cookie.getValue());*/  			session_idAndM2.put(LeapSRPSession.M2, ConfigHelper.trim(M2_not_trimmed)); +			CookieHandler.setDefault(null); // we don't need cookies anymore +			String token = json_response.getString(LeapSRPSession.TOKEN); +			LeapSRPSession.setToken(token);  		}  		return session_idAndM2;  	} @@ -516,6 +520,8 @@ public class ProviderAPI extends IntentService {  			provider_url = new URL(string_url);  			URLConnection url_connection = provider_url.openConnection();  			url_connection.setConnectTimeout(seconds_of_timeout*1000); +			if(!LeapSRPSession.getToken().isEmpty()) +				url_connection.addRequestProperty(LeapSRPSession.TOKEN, LeapSRPSession.getToken());  			json_file_content = new Scanner(url_connection.getInputStream()).useDelimiter("\\A").next();  		} catch (MalformedURLException e) {  			json_file_content = formatErrorMessage(R.string.malformed_url); @@ -551,6 +557,8 @@ public class ProviderAPI extends IntentService {  			HttpsURLConnection urlConnection =  					(HttpsURLConnection)url.openConnection();  			urlConnection.setSSLSocketFactory(getProviderSSLSocketFactory()); +			if(!LeapSRPSession.getToken().isEmpty()) +				urlConnection.addRequestProperty(LeapSRPSession.TOKEN, LeapSRPSession.getToken());  			json_file_content = new Scanner(urlConnection.getInputStream()).useDelimiter("\\A").next();  		} catch (CertificateException e) {  			// TODO Auto-generated catch block @@ -670,6 +678,7 @@ public class ProviderAPI extends IntentService {  			int responseCode = urlConnection.getResponseCode();  			broadcast_progress(progress++); +			LeapSRPSession.setToken("");  			Log.d("logout", Integer.toString(responseCode));  		} catch (ClientProtocolException e) {  			// TODO Auto-generated catch block @@ -710,11 +719,14 @@ public class ProviderAPI extends IntentService {  		try {  			String type_of_certificate = task.getString(ConfigurationWizard.TYPE_OF_CERTIFICATE);  			JSONObject provider_json = ConfigHelper.getJsonFromSharedPref(Provider.KEY); -			URL provider_main_url = new URL(provider_json.getString(Provider.API_URL)); -			String new_cert_string_url = provider_main_url.toString() + "/" + provider_json.getString(Provider.API_VERSION) + "/" + EIP.CERTIFICATE; +			String provider_main_url = provider_json.getString(Provider.API_URL); +			URL new_cert_string_url = new URL(provider_main_url + "/" + provider_json.getString(Provider.API_VERSION) + "/" + EIP.CERTIFICATE);  			boolean danger_on = ConfigHelper.getBoolFromSharedPref(ProviderItem.DANGER_ON); -			String cert_string = downloadWithProviderCA(new_cert_string_url, true); +//<<<<<<< HEAD +//			String cert_string = downloadWithProviderCA(new_cert_string_url, true); +//======= +			String cert_string = downloadWithProviderCA(new_cert_string_url.toString(), danger_on);  			if(!cert_string.isEmpty()) {  				if(ConfigHelper.checkErroneousDownload(cert_string)) {  					String reason_to_fail = provider_json.getString(ERRORS); diff --git a/src/se/leap/bitmaskclient/ProviderListFragment.java b/src/se/leap/bitmaskclient/ProviderListFragment.java index 501da609..f074e665 100644 --- a/src/se/leap/bitmaskclient/ProviderListFragment.java +++ b/src/se/leap/bitmaskclient/ProviderListFragment.java @@ -156,6 +156,14 @@ public class ProviderListFragment extends ListFragment {          // Notify the active callbacks interface (the activity, if the
          // fragment is attached to one) that an item has been selected.
          mCallbacks.onItemSelected(ProviderListContent.ITEMS.get(position).name());
 +//<<<<<<< HEAD +//======= +        
 +        for(int item_position = 0; item_position < listView.getCount(); item_position++) {
 +        	if(item_position != position)
 +        		content_adapter.hide(item_position);
 +        }
 +//>>>>>>> feature/token-based-auth      }
      @Override
 @@ -198,6 +206,7 @@ public class ProviderListFragment extends ListFragment {      }
      public void hideAllBut(int position) {
 +//<<<<<<< HEAD      	int real_count = content_adapter.getCount();
      	for(int i = 0; i < real_count;)
      		if(i != position) {
 @@ -207,6 +216,13 @@ public class ProviderListFragment extends ListFragment {      		} else {
      			i++;
      		}
 +//======= +/*    	for(int i = 0; i < content_adapter.getCount(); i++)
 +    		if(i != position)
 +    			content_adapter.hide(i);
 +    		else
 +    			content_adapter.unHide(i);
 +*///>>>>>>> feature/token-based-auth      }
      public void unhideAll() {
 | 
