summaryrefslogtreecommitdiffstats
path: root/mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/domain/PasswordRecord.java
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/domain/PasswordRecord.java')
-rw-r--r--mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/domain/PasswordRecord.java205
1 files changed, 0 insertions, 205 deletions
diff --git a/mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/domain/PasswordRecord.java b/mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/domain/PasswordRecord.java
deleted file mode 100644
index b2de60f3c..000000000
--- a/mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/domain/PasswordRecord.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-package org.mozilla.gecko.sync.repositories.domain;
-
-import org.mozilla.gecko.background.common.log.Logger;
-import org.mozilla.gecko.sync.ExtendedJSONObject;
-import org.mozilla.gecko.sync.Utils;
-import org.mozilla.gecko.sync.repositories.android.RepoUtils;
-
-public class PasswordRecord extends Record {
- private static final String LOG_TAG = "PasswordRecord";
-
- public static final String COLLECTION_NAME = "passwords";
- public static long PASSWORDS_TTL = -1; // Never expire passwords.
-
- // Payload strings.
- public static final String PAYLOAD_HOSTNAME = "hostname";
- public static final String PAYLOAD_FORM_SUBMIT_URL = "formSubmitURL";
- public static final String PAYLOAD_HTTP_REALM = "httpRealm";
- public static final String PAYLOAD_USERNAME = "username";
- public static final String PAYLOAD_PASSWORD = "password";
- public static final String PAYLOAD_USERNAME_FIELD = "usernameField";
- public static final String PAYLOAD_PASSWORD_FIELD = "passwordField";
-
- public PasswordRecord(String guid, String collection, long lastModified, boolean deleted) {
- super(guid, collection, lastModified, deleted);
- this.ttl = PASSWORDS_TTL;
- }
- public PasswordRecord(String guid, String collection, long lastModified) {
- this(guid, collection, lastModified, false);
- }
- public PasswordRecord(String guid, String collection) {
- this(guid, collection, 0, false);
- }
- public PasswordRecord(String guid) {
- this(guid, COLLECTION_NAME, 0, false);
- }
- public PasswordRecord() {
- this(Utils.generateGuid(), COLLECTION_NAME, 0, false);
- }
-
- public String id;
- public String hostname;
- public String formSubmitURL;
- public String httpRealm;
- // TODO these are encrypted in the passwords content provider,
- // need to figure out what we need to do here.
- public String usernameField;
- public String passwordField;
- public String encryptedUsername;
- public String encryptedPassword;
- public String encType;
-
- public long timeCreated;
- public long timeLastUsed;
- public long timePasswordChanged;
- public long timesUsed;
-
-
- @Override
- public Record copyWithIDs(String guid, long androidID) {
- PasswordRecord out = new PasswordRecord(guid, this.collection, this.lastModified, this.deleted);
- out.androidID = androidID;
- out.sortIndex = this.sortIndex;
- out.ttl = this.ttl;
-
- // Copy PasswordRecord fields.
- out.id = this.id;
- out.hostname = this.hostname;
- out.formSubmitURL = this.formSubmitURL;
- out.httpRealm = this.httpRealm;
-
- out.usernameField = this.usernameField;
- out.passwordField = this.passwordField;
- out.encryptedUsername = this.encryptedUsername;
- out.encryptedPassword = this.encryptedPassword;
- out.encType = this.encType;
-
- out.timeCreated = this.timeCreated;
- out.timeLastUsed = this.timeLastUsed;
- out.timePasswordChanged = this.timePasswordChanged;
- out.timesUsed = this.timesUsed;
-
- return out;
- }
-
- @Override
- public void initFromPayload(ExtendedJSONObject payload) {
- this.hostname = payload.getString(PAYLOAD_HOSTNAME);
- this.formSubmitURL = payload.getString(PAYLOAD_FORM_SUBMIT_URL);
- this.httpRealm = payload.getString(PAYLOAD_HTTP_REALM);
- this.encryptedUsername = payload.getString(PAYLOAD_USERNAME);
- this.encryptedPassword = payload.getString(PAYLOAD_PASSWORD);
- this.usernameField = payload.getString(PAYLOAD_USERNAME_FIELD);
- this.passwordField = payload.getString(PAYLOAD_PASSWORD_FIELD);
- }
-
- @Override
- public void populatePayload(ExtendedJSONObject payload) {
- putPayload(payload, PAYLOAD_HOSTNAME, this.hostname);
- putPayload(payload, PAYLOAD_FORM_SUBMIT_URL, this.formSubmitURL);
- putPayload(payload, PAYLOAD_HTTP_REALM, this.httpRealm);
- putPayload(payload, PAYLOAD_USERNAME, this.encryptedUsername);
- putPayload(payload, PAYLOAD_PASSWORD, this.encryptedPassword);
- putPayload(payload, PAYLOAD_USERNAME_FIELD, this.usernameField);
- putPayload(payload, PAYLOAD_PASSWORD_FIELD, this.passwordField);
- }
-
- @Override
- public boolean congruentWith(Object o) {
- if (!(o instanceof PasswordRecord)) {
- return false;
- }
- PasswordRecord other = (PasswordRecord) o;
- if (!super.congruentWith(other)) {
- return false;
- }
- return RepoUtils.stringsEqual(this.hostname, other.hostname)
- && RepoUtils.stringsEqual(this.formSubmitURL, other.formSubmitURL)
- // Bug 738347 - SQLiteBridge does not check for nulls in ContentValues.
- // && RepoUtils.stringsEqual(this.httpRealm, other.httpRealm)
- // && RepoUtils.stringsEqual(this.encType, other.encType)
- && RepoUtils.stringsEqual(this.usernameField, other.usernameField)
- && RepoUtils.stringsEqual(this.passwordField, other.passwordField)
- && RepoUtils.stringsEqual(this.encryptedUsername, other.encryptedUsername)
- && RepoUtils.stringsEqual(this.encryptedPassword, other.encryptedPassword);
- }
-
- @Override
- public boolean equalPayloads(Object o) {
- if (!(o instanceof PasswordRecord)) {
- return false;
- }
-
- PasswordRecord other = (PasswordRecord) o;
- Logger.debug("PasswordRecord", "thisRecord:" + this.toString());
- Logger.debug("PasswordRecord", "otherRecord:" + o.toString());
-
- if (this.deleted) {
- if (other.deleted) {
- // Deleted records are equal if their guids match.
- return RepoUtils.stringsEqual(this.guid, other.guid);
- }
- // One record is deleted, the other is not. Not equal.
- return false;
- }
-
- if (!super.equalPayloads(other)) {
- Logger.debug(LOG_TAG, "super.equalPayloads returned false.");
- return false;
- }
-
- return RepoUtils.stringsEqual(this.hostname, other.hostname)
- && RepoUtils.stringsEqual(this.formSubmitURL, other.formSubmitURL)
- // Bug 738347 - SQLiteBridge does not check for nulls in ContentValues.
- // && RepoUtils.stringsEqual(this.httpRealm, other.httpRealm)
- // && RepoUtils.stringsEqual(this.encType, other.encType)
- && RepoUtils.stringsEqual(this.usernameField, other.usernameField)
- && RepoUtils.stringsEqual(this.passwordField, other.passwordField)
- && RepoUtils.stringsEqual(this.encryptedUsername, other.encryptedUsername)
- && RepoUtils.stringsEqual(this.encryptedPassword, other.encryptedPassword);
- // Desktop sync never sets timeCreated so this isn't relevant for sync records.
- }
-
- @Override
- public String toString() {
- return "PasswordRecord {"
- + "lastModified: " + this.lastModified + ", "
- + "hostname null?: " + (this.hostname == null) + ", "
- + "formSubmitURL null?: " + (this.formSubmitURL == null) + ", "
- + "httpRealm null?: " + (this.httpRealm == null) + ", "
- + "usernameField null?: " + (this.usernameField == null) + ", "
- + "passwordField null?: " + (this.passwordField == null) + ", "
- + "encryptedUsername null?: " + (this.encryptedUsername == null) + ", "
- + "encryptedPassword null?: " + (this.encryptedPassword == null) + ", "
- + "encType: " + this.encType + ", "
- + "timeCreated: " + this.timeCreated + ", "
- + "timeLastUsed: " + this.timeLastUsed + ", "
- + "timePasswordChanged: " + this.timePasswordChanged + ", "
- + "timesUsed: " + this.timesUsed;
- }
-
- /**
- * A PasswordRecord is considered valid if it abides by the database
- * constraints of the PasswordsProvider (moz_logins).
- *
- * See toolkit/components/passwordmgr/storage-mozStorage.js for the
- * definitions:
- *
- * http://hg.mozilla.org/mozilla-central/file/00955d61cc94/toolkit/components/passwordmgr/storage-mozStorage.js#l98
- */
- public boolean isValid() {
- if (this.deleted) {
- return true;
- }
-
- return this.hostname != null &&
- this.encryptedUsername != null &&
- this.encryptedPassword != null &&
- this.usernameField != null &&
- this.passwordField != null;
- }
-}