public static Vault get(final Path directory, final String masterkey, final byte[] pepper) { return new VaultFactory().create(directory, masterkey, pepper); }
@Override public void callback(final Path folder, final String region, final VaultCredentials passphrase) { background(new WorkerBackgroundAction<Path>(BrowserController.this, pool, new CreateVaultWorker(region, passphrase, PasswordStoreFactory.get(), VaultFactory.get(folder, DefaultVaultRegistry.DEFAULT_MASTERKEY_FILE_NAME, DefaultVaultRegistry.DEFAULT_PEPPER)) { @Override public void cleanup(final Path vault) { reload(workdir(), Collections.singletonList(folder), Collections.singletonList(folder)); } }) ); } });
@Override public Vault load(final Path directory, final String masterkey, final byte[] pepper) throws VaultUnlockCancelException { synchronized(registry) { if(registry.contains(directory)) { return registry.find(session, directory); } final Vault vault = VaultFactory.get(directory, masterkey, pepper); if(log.isInfoEnabled()) { log.info(String.format("Loading vault %s for session %s", vault, session)); } try { registry.add(vault.load(session, prompt, keychain)); } catch(BackgroundException e) { log.warn(String.format("Failure loading vault %s. %s", vault, e.getDetail())); throw new VaultUnlockCancelException(vault, e); } return vault; } } }