Quel est le meilleur moyen d'enregistrer les paramètres utilisateur dans l'application de bureau Java en toute sécurité? Par exemple, si je veux enregistrer les paramètres d'un compte FTP, quel est le meilleur moyen de le faire?
Merci
Quel est le meilleur moyen d'enregistrer les paramètres utilisateur dans l'application de bureau Java en toute sécurité? Par exemple, si je veux enregistrer les paramètres d'un compte FTP, quel est le meilleur moyen de le faire?
Merci
L' API de préférences est un bon moyen de stocker les préférences de l'utilisateur et du système. Si vous souhaitez stocker des mots de passe, vous devrez les chiffrer. Voici un bel article qui peut vous aider à démarrer.
J'ai l'habitude de stocker dans le répertoire de données utilisateur, avec les sous répertoires du nom de l'application suivie par la version de l'application.
public static String getUserDataDirectory() {
return System.getProperty("user.home") + File.separator + ".jstock" + File.separator + getApplicationVersionString() + File.separator;
}
J'avais été en utilisant le code suivant pour 3 ans. Cette méthode fonctionne très bien sous Windows, Linux ou Mac.
Veuillez noter que, dans Windows, ne jamais stocker en Program Files
, comme l'UAC dans Vista peut vous donner beaucoup de mal.
Rappelez-vous mettre un point en face de votre nom de l'application, de sorte qu'il deviendra un dossier caché dans Linux.
Une bonne chose en utilisant cette méthode, c'est que, vous n'êtes pas limité à votre auto dans le stockage de valeur primitive seulement. Au lieu de cela, vous pouvez enregistrer l'ensemble de l'état de l'objet sur le disque en utilisant xstream
Par exemple :
public static boolean toXML(Object object, File file) {
XStream xStream = new XStream();
OutputStream outputStream = null;
Writer writer = null;
try {
outputStream = new FileOutputStream(file);
writer = new OutputStreamWriter(outputStream, Charset.forName("UTF-8"));
xStream.toXML(object, writer);
}
catch (Exception exp) {
log.error(null, exp);
return false;
}
finally {
close(writer);
close(outputStream);
}
return true;
}
Le stockage d'un seul mot de passe de manière sécurisée , c'est assez difficile. Supposons que vous chiffrer le mot de passe à l'aide secrète de la clé. Puis, quand votre application démarre encore faut il que la clé secrète, où faut-il obtenir?
Si on demande à l'utilisateur alors qu'il pourrait aussi bien il suffit d'entrer le mot de passe ftp qui vous stockée dans la première place. Si il lit la clé secrète à partir de quelque part, alors vous avez besoin pour sécuriser la clé secrète, et nous sommes de retour là où nous avons commencé.
Si vous souhaitez conserver plusieurs mots de passe, puis en demandant à l'utilisateur un mot de passe unique pour certains "coffre-fort" peut être beaucoup plus amical, mais vous obtenez alors dans tous les tracas de traiter avec mot de passe a expiré.
Il existe des produits disponibles pour traiter ce moût de choses, si vous avez un sérieux besoin, alors vous avez probablement besoin de les étudier.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.