12 mars 2008

Tips: API Java de connection à un répertoire partagé Windows

L'API Java ne permet pas en natif de se connecter à des répertoires partagés windows en utilisant une URL du type \\192.168.1.1\shared\dir\file.xml. Il existe une API Java prévue à cet effet JCIFS.

L'avantage c'est que cette API est simple d'utilisation, l'idée est de créer un objet SmbFile, puis à partir de cet objet, il suffit de récupérer le stream (InputStream ou OutputStream) nécessaire afin de lire ou bien d'écrire le fichier. Voilà un petit exemple d'illustration montrant comment lire un fichier sécurisé par login et mot de passe:


String domain = ...; // Assign domain with targeted domain
String user = ...; // Assign user with user name
String password = ...; // Assign password with user password
String url = ...; // Assign url with smb file url (ie: smb://192.168.1.1/shared/dir/file.xml)

NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(domain, user, password);
SmbFile smbFile = new SmbFile(url, iAuth);
InputStream is = smbFile.getInputStream();
// Do work with the InputStream
TestJcifs.java

Pour en savoir plus rendez-vous sur le site officiel de JCIFS : http://jcifs.samba.org.