Upgraded credentials (commented)
git-svn-id: https://forja.rediris.es/svn/cusl6-swadroid/trunk@248 5bc14d19-1e4b-4ba2-aa50-860af135f48c
This commit is contained in:
parent
df839e773a
commit
3f43a46862
|
@ -19,6 +19,10 @@
|
||||||
|
|
||||||
package es.ugr.swad.swadroid;
|
package es.ugr.swad.swadroid;
|
||||||
|
|
||||||
|
import java.security.MessageDigest;
|
||||||
|
import java.security.NoSuchAlgorithmException;
|
||||||
|
|
||||||
|
import es.ugr.swad.swadroid.Base64;
|
||||||
import es.ugr.swad.swadroid.modules.notifications.Notifications;
|
import es.ugr.swad.swadroid.modules.notifications.Notifications;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
@ -54,6 +58,10 @@ public class Preferences extends PreferenceActivity implements OnPreferenceChang
|
||||||
* User password.
|
* User password.
|
||||||
*/
|
*/
|
||||||
private String userPassword;
|
private String userPassword;
|
||||||
|
/**
|
||||||
|
* Stars length
|
||||||
|
*/
|
||||||
|
private int STARS_LENGTH = 8;
|
||||||
/**
|
/**
|
||||||
* User password preference name.
|
* User password preference name.
|
||||||
*/
|
*/
|
||||||
|
@ -222,6 +230,39 @@ public class Preferences extends PreferenceActivity implements OnPreferenceChang
|
||||||
return stars;
|
return stars;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encrypts user password with SHA-512 and encodes it to Base64UrlSafe
|
||||||
|
* @param password Password to be encrypted
|
||||||
|
* @return Encrypted password
|
||||||
|
* @throws NoSuchAlgorithmException
|
||||||
|
*/
|
||||||
|
private String encryptPassword(String password) throws NoSuchAlgorithmException {
|
||||||
|
String p;
|
||||||
|
MessageDigest md = MessageDigest.getInstance("SHA-512");
|
||||||
|
md.update(password.getBytes());
|
||||||
|
p = new String(Base64.encodeBytes(md.digest()));
|
||||||
|
p = p.replace('+','-').replace('/','_').replace('=', ' ').replaceAll("\\s+", "").trim();
|
||||||
|
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Upgrade password encryption
|
||||||
|
* @throws NoSuchAlgorithmException
|
||||||
|
*/
|
||||||
|
public void upgradeCredentials() throws NoSuchAlgorithmException {
|
||||||
|
String stars = getStarsSequence(STARS_LENGTH);
|
||||||
|
|
||||||
|
editor = prefs.edit();
|
||||||
|
userPassword = prefs.getString(USERPASSWORDPREF, "");
|
||||||
|
userPassword = encryptPassword(userPassword);
|
||||||
|
editor.putString(USERPASSWORDPREF, userPassword);
|
||||||
|
editor.commit();
|
||||||
|
|
||||||
|
userIDPref.setSummary(prefs.getString(USERIDPREF, ""));
|
||||||
|
userPasswordPref.setSummary(stars);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initializes preferences of activity.
|
* Initializes preferences of activity.
|
||||||
* @param ctx Context of activity.
|
* @param ctx Context of activity.
|
||||||
|
@ -291,6 +332,7 @@ public class Preferences extends PreferenceActivity implements OnPreferenceChang
|
||||||
*/
|
*/
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
public boolean onPreferenceClick(Preference preference) {
|
||||||
userPassword = prefs.getString(USERPASSWORDPREF, "");
|
userPassword = prefs.getString(USERPASSWORDPREF, "");
|
||||||
|
//userPassword = encryptPassword(userPassword);
|
||||||
editor.putString(USERPASSWORDPREF, userPassword);
|
editor.putString(USERPASSWORDPREF, userPassword);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -405,7 +447,7 @@ public class Preferences extends PreferenceActivity implements OnPreferenceChang
|
||||||
|
|
||||||
if(USERPASSWORDPREF.equals(key))
|
if(USERPASSWORDPREF.equals(key))
|
||||||
{
|
{
|
||||||
String stars = getStarsSequence(((String) newValue).length());
|
String stars = getStarsSequence(STARS_LENGTH);
|
||||||
preference.setSummary(stars);
|
preference.setSummary(stars);
|
||||||
} else {
|
} else {
|
||||||
preference.setSummary((CharSequence) newValue);
|
preference.setSummary((CharSequence) newValue);
|
||||||
|
@ -420,7 +462,7 @@ public class Preferences extends PreferenceActivity implements OnPreferenceChang
|
||||||
@Override
|
@Override
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
String stars = getStarsSequence(prefs.getString(USERPASSWORDPREF, "").length());
|
String stars = getStarsSequence(STARS_LENGTH);
|
||||||
userIDPref.setSummary(prefs.getString(USERIDPREF, ""));
|
userIDPref.setSummary(prefs.getString(USERIDPREF, ""));
|
||||||
userPasswordPref.setSummary(stars);
|
userPasswordPref.setSummary(stars);
|
||||||
}
|
}
|
||||||
|
|
|
@ -232,12 +232,14 @@ public class SWADMain extends MenuExpandableListActivity {
|
||||||
if(lastVersion == 0) {
|
if(lastVersion == 0) {
|
||||||
showConfigurationDialog();
|
showConfigurationDialog();
|
||||||
dbHelper.initializeDB();
|
dbHelper.initializeDB();
|
||||||
|
//prefs.upgradeCredentials();
|
||||||
prefs.setLastVersion(currentVersion);
|
prefs.setLastVersion(currentVersion);
|
||||||
|
|
||||||
//If this is an upgrade, show upgrade dialog
|
//If this is an upgrade, show upgrade dialog
|
||||||
} else if(lastVersion < currentVersion) {
|
} else if(lastVersion < currentVersion) {
|
||||||
//showUpgradeDialog();
|
//showUpgradeDialog();
|
||||||
dbHelper.upgradeDB(this);
|
dbHelper.upgradeDB(this);
|
||||||
|
//prefs.upgradeCredentials();
|
||||||
prefs.setLastVersion(currentVersion);
|
prefs.setLastVersion(currentVersion);
|
||||||
}
|
}
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user