in commons-vfs2-sandbox/src/main/java/org/apache/commons/vfs2/provider/smb/SmbFileObject.java [72:110]
private SmbFile createSmbFile(final FileName fileName)
throws MalformedURLException, SmbException, FileSystemException {
final SmbFileName smbFileName = (SmbFileName) fileName;
final String path = smbFileName.getUriWithoutAuth();
UserAuthenticationData authData = null;
SmbFile file;
try {
authData = UserAuthenticatorUtils.authenticate(getFileSystem().getFileSystemOptions(),
SmbFileProvider.AUTHENTICATOR_TYPES);
NtlmPasswordAuthentication auth = null;
if (authData != null) {
auth = new NtlmPasswordAuthentication(
UserAuthenticatorUtils.toString(UserAuthenticatorUtils.getData(authData,
UserAuthenticationData.DOMAIN, UserAuthenticatorUtils.toChar(smbFileName.getDomain()))),
UserAuthenticatorUtils
.toString(UserAuthenticatorUtils.getData(authData, UserAuthenticationData.USERNAME,
UserAuthenticatorUtils.toChar(smbFileName.getUserName()))),
UserAuthenticatorUtils
.toString(UserAuthenticatorUtils.getData(authData, UserAuthenticationData.PASSWORD,
UserAuthenticatorUtils.toChar(smbFileName.getPassword()))));
}
// if auth == null SmbFile uses default credentials
// ("jcifs.smb.client.domain", "?"), ("jcifs.smb.client.username", "GUEST"),
// ("jcifs.smb.client.password", BLANK);
// ANONYMOUS=("","","")
file = new SmbFile(path, auth);
if (file.isDirectory() && !file.toString().endsWith("/")) {
file = new SmbFile(path + "/", auth);
}
return file;
} finally {
UserAuthenticatorUtils.cleanup(authData); // might be null
}
}