package org.intellij.sonar.configuration; import com.google.common.base.Throwables; import com.intellij.ide.passwordSafe.PasswordSafe; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.ui.Messages; import com.intellij.util.ui.UIUtil; public final class PasswordManager { private static final Logger LOG = Logger.getInstance(PasswordManager.class); public static void storePassword(final String key,final String value) { UIUtil.invokeAndWaitIfNeeded( (Runnable) () -> { try { PasswordSafe.getInstance().storePassword(null,PasswordManager.class,key,value); } catch (Exception e) { Messages.showErrorDialog("Cannot store password\n"+Throwables.getStackTraceAsString(e),"Error"); } } ); } private static String password; public static String loadPassword(final String key) { UIUtil.invokeAndWaitIfNeeded( (Runnable) () -> { try { password = PasswordSafe.getInstance().getPassword(null,PasswordManager.class,key); } catch (Exception e) { Messages.showErrorDialog("Cannot load password\n"+Throwables.getStackTraceAsString(e),"Error"); } } ); return password; } }