try with resources in CredentialStore
This commit is contained in:
parent
bfa61d56af
commit
f5faa8fc4d
|
@ -16,7 +16,6 @@ import im.conversations.android.xmpp.sasl.HashedToken;
|
||||||
import im.conversations.android.xmpp.sasl.SaslMechanism;
|
import im.conversations.android.xmpp.sasl.SaslMechanism;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.io.OutputStreamWriter;
|
import java.io.OutputStreamWriter;
|
||||||
|
@ -80,7 +79,7 @@ public class CredentialStore {
|
||||||
this.set(account, modifiedCredential);
|
this.set(account, modifiedCredential);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setFastToken(
|
public synchronized void setFastToken(
|
||||||
final Account account, final HashedToken.Mechanism mechanism, final String token)
|
final Account account, final HashedToken.Mechanism mechanism, final String token)
|
||||||
throws GeneralSecurityException, IOException {
|
throws GeneralSecurityException, IOException {
|
||||||
final Credential credential = getOrEmpty(account);
|
final Credential credential = getOrEmpty(account);
|
||||||
|
@ -98,7 +97,8 @@ public class CredentialStore {
|
||||||
this.set(account, modifiedCredential);
|
this.set(account, modifiedCredential);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void resetFastToken(final Account account) throws GeneralSecurityException, IOException {
|
public synchronized void resetFastToken(final Account account)
|
||||||
|
throws GeneralSecurityException, IOException {
|
||||||
final Credential credential = getOrEmpty(account);
|
final Credential credential = getOrEmpty(account);
|
||||||
final Credential modifiedCredential =
|
final Credential modifiedCredential =
|
||||||
new Credential(
|
new Credential(
|
||||||
|
@ -114,7 +114,8 @@ public class CredentialStore {
|
||||||
this.set(account, modifiedCredential);
|
this.set(account, modifiedCredential);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPinnedMechanism(final Account account, final SaslMechanism mechanism)
|
public synchronized void setPinnedMechanism(
|
||||||
|
final Account account, final SaslMechanism mechanism)
|
||||||
throws GeneralSecurityException, IOException {
|
throws GeneralSecurityException, IOException {
|
||||||
final String pinnedMechanism = mechanism.getMechanism();
|
final String pinnedMechanism = mechanism.getMechanism();
|
||||||
final String pinnedChannelBinding;
|
final String pinnedChannelBinding;
|
||||||
|
@ -139,7 +140,7 @@ public class CredentialStore {
|
||||||
this.set(account, modifiedCredential);
|
this.set(account, modifiedCredential);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void resetPinnedMechanism(final Account account)
|
public synchronized void resetPinnedMechanism(final Account account)
|
||||||
throws GeneralSecurityException, IOException {
|
throws GeneralSecurityException, IOException {
|
||||||
final Credential credential = getOrEmpty(account);
|
final Credential credential = getOrEmpty(account);
|
||||||
final Credential modifiedCredential =
|
final Credential modifiedCredential =
|
||||||
|
@ -181,19 +182,23 @@ public class CredentialStore {
|
||||||
|
|
||||||
private Map<String, Credential> load() throws GeneralSecurityException, IOException {
|
private Map<String, Credential> load() throws GeneralSecurityException, IOException {
|
||||||
final EncryptedFile encryptedFile = getEncryptedFile();
|
final EncryptedFile encryptedFile = getEncryptedFile();
|
||||||
final FileInputStream inputStream = encryptedFile.openFileInput();
|
try (final FileInputStream inputStream = encryptedFile.openFileInput()) {
|
||||||
final Type type = new TypeToken<Map<String, Credential>>() {}.getType();
|
final Type type = new TypeToken<Map<String, Credential>>() {}.getType();
|
||||||
return GSON.fromJson(new InputStreamReader(inputStream), type);
|
return GSON.fromJson(new InputStreamReader(inputStream), type);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void store(final Map<String, Credential> store)
|
private void store(final Map<String, Credential> store)
|
||||||
throws GeneralSecurityException, IOException {
|
throws GeneralSecurityException, IOException {
|
||||||
final File file = getCredentialStoreFile();
|
final File file = getCredentialStoreFile();
|
||||||
file.delete();
|
if (file.delete()) {
|
||||||
|
// Log.d(Config.LOGTAG,"delete old credential file: "+file.getAbsolutePath());
|
||||||
|
}
|
||||||
final EncryptedFile encryptedFile = getEncryptedFile(file);
|
final EncryptedFile encryptedFile = getEncryptedFile(file);
|
||||||
try (final FileOutputStream outputStream = encryptedFile.openFileOutput()) {
|
try (final OutputStreamWriter writer =
|
||||||
GSON.toJson(store, new OutputStreamWriter(outputStream));
|
new OutputStreamWriter(encryptedFile.openFileOutput())) {
|
||||||
outputStream.flush();
|
GSON.toJson(store, writer);
|
||||||
|
writer.flush();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
4
src/main/java/im/conversations/android/xmpp/Entity.java
Normal file
4
src/main/java/im/conversations/android/xmpp/Entity.java
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
package im.conversations.android.xmpp;
|
||||||
|
|
||||||
|
public class Entity {
|
||||||
|
}
|
Loading…
Reference in a new issue