rename to FileCredentialStore

This commit is contained in:
Vladimir Krivosheev
2016-08-05 19:34:05 +02:00
parent 6ae83abee3
commit a5da38bd87
5 changed files with 20 additions and 20 deletions
@@ -35,9 +35,9 @@ import java.util.Base64
import java.util.concurrent.atomic.AtomicBoolean
import javax.crypto.spec.SecretKeySpec
internal val LOG = Logger.getInstance(FilePasswordSafeProvider::class.java)
internal val LOG = Logger.getInstance(FileCredentialStore::class.java)
class FilePasswordSafeProvider @JvmOverloads constructor(keyToValue: Map<String, String>? = null, baseDirectory: Path = Paths.get(PathManager.getConfigPath()), var memoryOnly: Boolean = false) : PasswordStorage {
class FileCredentialStore(keyToValue: Map<String, String>? = null, baseDirectory: Path = Paths.get(PathManager.getConfigPath()), var memoryOnly: Boolean = false) : PasswordStorage {
private val db = ContainerUtil.newConcurrentMap<String, String>()
private val dbFile = baseDirectory.resolve("pdb")
@@ -27,16 +27,16 @@ class PasswordSafeImpl(/* public - backward compatibility */val settings: Passwo
private @Volatile var currentProvider: PasswordStorage
// it is helper storage to support set password as memory-only (see setPassword memoryOnly flag)
private val memoryHelperProvider = lazy { FilePasswordSafeProvider(emptyMap(), memoryOnly = true) }
private val memoryHelperProvider = lazy { FileCredentialStore(emptyMap(), memoryOnly = true) }
override fun isMemoryOnly() = settings.providerType == ProviderType.MEMORY_ONLY
val isNativeCredentialStoreUsed: Boolean
get() = currentProvider !is FilePasswordSafeProvider
get() = currentProvider !is FileCredentialStore
init {
if (settings.providerType == ProviderType.MEMORY_ONLY) {
currentProvider = FilePasswordSafeProvider(memoryOnly = true)
currentProvider = FileCredentialStore(memoryOnly = true)
}
else {
currentProvider = createPersistentCredentialStore()
@@ -47,16 +47,16 @@ class PasswordSafeImpl(/* public - backward compatibility */val settings: Passwo
val memoryOnly = newValue == ProviderType.MEMORY_ONLY
if (memoryOnly) {
val provider = currentProvider
if (provider is FilePasswordSafeProvider) {
if (provider is FileCredentialStore) {
provider.memoryOnly = true
provider.deleteFileStorage()
}
else {
currentProvider = FilePasswordSafeProvider(memoryOnly = true)
currentProvider = FileCredentialStore(memoryOnly = true)
}
}
else {
currentProvider = createPersistentCredentialStore(currentProvider as? FilePasswordSafeProvider)
currentProvider = createPersistentCredentialStore(currentProvider as? FileCredentialStore)
}
}
})
@@ -94,7 +94,7 @@ class PasswordSafeImpl(/* public - backward compatibility */val settings: Passwo
}
override fun save() {
(currentProvider as? FilePasswordSafeProvider)?.let { it.save() }
(currentProvider as? FileCredentialStore)?.let { it.save() }
}
fun clearPasswords() {
@@ -105,7 +105,7 @@ class PasswordSafeImpl(/* public - backward compatibility */val settings: Passwo
}
}
finally {
(currentProvider as? FilePasswordSafeProvider)?.let { it.clear() }
(currentProvider as? FileCredentialStore)?.let { it.clear() }
}
}
@@ -122,7 +122,7 @@ class PasswordSafeImpl(/* public - backward compatibility */val settings: Passwo
get() = memoryHelperProvider.value
}
private fun createPersistentCredentialStore(existing: FilePasswordSafeProvider? = null): PasswordStorage {
private fun createPersistentCredentialStore(existing: FileCredentialStore? = null): PasswordStorage {
LOG.catchAndLog {
if (isMacOsCredentialsStoreSupported && com.intellij.util.SystemProperties.getBooleanProperty("use.osx.keychain", false)) {
return MacOsCredentialStore("IntelliJ Platform")
@@ -133,5 +133,5 @@ private fun createPersistentCredentialStore(existing: FilePasswordSafeProvider?
it.memoryOnly = false
return it
}
return FilePasswordSafeProvider()
return FileCredentialStore()
}
@@ -130,7 +130,7 @@ internal class PasswordDatabaseConvertor : ApplicationLoadListener {
@Suppress("DEPRECATION")
val newDb = convertOldDb(ServiceManager.getService<PasswordDatabase>(PasswordDatabase::class.java))
if (newDb != null && newDb.isNotEmpty()) {
FilePasswordSafeProvider(newDb).save()
FileCredentialStore(newDb).save()
}
}
}
@@ -23,7 +23,7 @@ import org.junit.Test
import java.math.BigInteger
import java.util.*
class FilePasswordSafeProviderTest {
class FileCredentialStoreTest {
private val tempDirManager = TemporaryDirectory()
@Rule
@@ -33,7 +33,7 @@ class FilePasswordSafeProviderTest {
@Test
fun many() {
val baseDir = tempDirManager.newPath()
var provider = FilePasswordSafeProvider(baseDirectory = baseDir)
var provider = FileCredentialStore(baseDirectory = baseDir)
assertThat(baseDir).doesNotExist()
val random = Random()
@@ -42,7 +42,7 @@ class FilePasswordSafeProviderTest {
}
provider.save()
provider = FilePasswordSafeProvider(baseDirectory = baseDir)
provider = FileCredentialStore(baseDirectory = baseDir)
provider.deleteFileStorage()
@@ -58,7 +58,7 @@ class FilePasswordSafeProviderTest {
@Test
fun test() {
val baseDir = tempDirManager.newPath()
var provider = FilePasswordSafeProvider(baseDirectory = baseDir)
var provider = FileCredentialStore(baseDirectory = baseDir)
assertThat(baseDir).doesNotExist()
assertThat(provider.getPassword("foo")).isNull()
@@ -91,7 +91,7 @@ class FilePasswordSafeProviderTest {
assertThat(pdbPwdFile).isRegularFile()
assertThat(pdbPwdTmpFile).doesNotExist()
provider = FilePasswordSafeProvider(baseDirectory = baseDir)
provider = FileCredentialStore(baseDirectory = baseDir)
assertThat(provider.getPassword("foo")).isNull()
assertThat(provider.getPassword("am")).isEqualTo("pass2")
@@ -55,7 +55,7 @@ internal class MasterPasswordMigrationTest {
</State>"""))
assertThat(passwordSafe).isNotEmpty
val provider = FilePasswordSafeProvider(passwordSafe)
val provider = FileCredentialStore(passwordSafe)
assertThat(provider.getPassword("com.intellij.ide.passwordSafe.impl.providers.masterKey.MasterKeyPasswordSafeTest/TEST")).isEqualTo("test")
}
@@ -84,7 +84,7 @@ internal class MasterPasswordMigrationTest {
</State>"""))
}
assertThat(passwordSafe).isNotEmpty
val provider = FilePasswordSafeProvider(passwordSafe)
val provider = FileCredentialStore(passwordSafe)
assertThat(provider.getPassword("com.intellij.ide.passwordSafe.impl.providers.masterKey.MasterKeyPasswordSafeTest/TEST")).isEqualTo("test")
}