0 0

jcifs 无法访问xp共享目录问题 jcifs.smb.SmbAuthException:20

此代码访问win server下的共享目录没有问题,但是我在自己的xp机器上新建的共享目录,代码访问时出错。
别人访问我的共享目录可以访问。
administrator:admin2006@lude 用户名:密码@主机名 均没错。
有遇到过这个错误的朋友吗? 是xp不允许这么访问吗,还是需要什么设置?
注意:绝对不是用户名和密码错误。

代码如下
public static void main(String[] arg){
		String str = "smb://administrator:admin2006@lude/MediaRoot$/65/84/Event658476/1_1_0912306215.jpg";
		SmbFileInputStream sfis;
		try {
			sfis = new SmbFileInputStream(str);
			SmbFile fromFile = new SmbFile(str);
			long len = fromFile.length();
			byte[] data = new byte[(int)len];
			sfis.read(data);
			BASE64Encoder be = new BASE64Encoder();
			System.out.print(be.encode(data));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}


异常信息:
jcifs.smb.SmbAuthException: Logon failure: unknown user name or bad password.
	at jcifs.smb.SmbSession.sessionSetup(SmbSession.java:273)
	at jcifs.smb.SmbSession.send(SmbSession.java:225)
	at jcifs.smb.SmbTree.treeConnect(SmbTree.java:147)
	at jcifs.smb.SmbFile.connect(SmbFile.java:791)
	at jcifs.smb.SmbFile.connect0(SmbFile.java:761)
	at jcifs.smb.SmbFile.open0(SmbFile.java:816)
	at jcifs.smb.SmbFile.open(SmbFile.java:845)
	at jcifs.smb.SmbFileInputStream.<init>(SmbFileInputStream.java:69)
	at jcifs.smb.SmbFileInputStream.<init>(SmbFileInputStream.java:62)
	at jcifs.smb.SmbFileInputStream.<init>(SmbFileInputStream.java:49)
	at cn.com.egova.dti.dao.AdjunctManager.main(AdjunctManager.java:188)
2010年1月21日 17:03

4个答案 按时间排序 按投票排序

0 0

win7:
gpedit.msc -> Windows设置 -> 安全设置 -> 本地策略 -> 安全选项 ->
网络访问:本地帐号的共享和安全模型  修改成 经典-对本地用户进行身份验证,不改变其本来身份(已验证)
xp:
听说是取消系统的简单共享(未验证)

2015年10月23日 10:16
0 0

我以前也试过这样登录失败,第二天就能登录成功了。
JCIFS是很不稳定的。


如果是域登录可以这样

//DOMAIN_IP 		域名服务(其实域名和域名服务器IP可以,不过用IP解析速度快很多。)
//DOMAIN_NAME		域名
//LOGIN_NAME		用户名
//PASSWORD		密码


UniAddress dc = UniAddress.getByName(DOMAIN_IP);
NtlmPasswordAuthentication authentication = new NtlmPasswordAuthentication(DOMAIN_NAME, LOGIN_NAME, PASSWORD);
SmbSession.logon(dc, authentication);

SmbFile remoteFile = new SmbFile(fileURL,  authentication);
//........接下来的会写代码的都会啦~~~


2010年1月21日 20:00
0 0

这个是我写的例子

package org;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileInputStream;
import jcifs.smb.SmbFileOutputStream;

public class Smbtest {
	public static void smbGet(String remoteUrl, String localDir) {
		InputStream in = null;
		OutputStream out = null;
		try {
			SmbFile remoteFile = new SmbFile(remoteUrl);
			if (remoteFile == null) {
				System.out.println("共享文件不存在");
				return;
			}
			String fileName = remoteFile.getName();
			File localFile = new File(localDir + File.separator + fileName);
			in = new BufferedInputStream(new SmbFileInputStream(remoteFile));
			out = new BufferedOutputStream(new FileOutputStream(localFile));
			byte[] buffer = new byte[1024];
			while (in.read(buffer) != -1) {
				out.write(buffer);
				buffer = new byte[1024];
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				out.close();
				in.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	public static void smbPut(String remoteUrl, String localFilePath) {
		InputStream in = null;
		OutputStream out = null;
		try {
			File localFile = new File(localFilePath);
			System.out.println("bbbbbbbb");
			String fileName = localFile.getName();
			SmbFile remoteFile = new SmbFile(remoteUrl + "/" + fileName);
			
			in = new BufferedInputStream(new FileInputStream(localFile));
			out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile));
			byte[] buffer = new byte[1024];
			while (in.read(buffer) != -1) {
				out.write(buffer);
				buffer = new byte[1024];
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				out.close();
				in.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

	public static void main(String[] args) {
		smbPut("smb://administrator:@192.168.2.137/aaa","c:/1.zip");
		smbGet("smb://administrator:@192.168.2.137/aaa/1.zip","d:/");
	}

}

2010年1月21日 17:54
0 0

如果你得机器在域里那就没法子了 域里就会出这个问题。

2010年1月21日 17:52

相关推荐

    jcifs-1.3.19.jar

    jcifs-1.3.19.jar 包,用于SMB协议 ,以实现远程读取文件。jcifs-1.3.19.jar 包,用于SMB协议 ,以实现远程读取文件。

    jcifs-1.3.12.zip

    通过jcifs实现java访问网络共享文件 jcifs 是 cifs(common internet file system) java的实现 smb (service message block) to be cifs jcifs 是一个开源项目 可从http://jcifs.samba.org/下载 SmbFileInputStream...

    使用smbj.jar访问共享文件夹,解决SMB2/SMB3共享文件夹访问的问题

    使用smbj.jar访问共享文件夹,支持SMB2/SMB3,用于解决使用jcifs.jar不支持SMB2/SMB3的问题

    jcifs:JCIFS是一个开放源代码客户端库,该库以100%Java实现CIFSSMB网络协议

    JCIFS是一个开放源代码客户端库,该库以100%Java实现了CIFS / SMB网络协议。 从版本2.x开始,此项目从派生而来,现有的jcifs代码被合并为smb1 。 版本 使用Maven &lt;groupId&gt;org.codelibs &lt;artifactId&gt;jcifs ...

    jcifs java远程访问

    提供java远程访问的方法,类似File

    jcifs-1.3.17.jar

    &lt;param-name&gt;jcifs.smb.client.domain 域名 &lt;param-name&gt;jcifs.netbios.wins 域服务器的IP &lt;param-name&gt;jcifs.util.loglevel &lt;param-value&gt;0 &lt;param-name&gt;jcifs.smb....

    jcifs-ng:jCIFS库的清理和改进版本

    jcifs-ng jCIFS库的清理和改进版本 最新稳定版本: &lt;groupId&gt;eu.agno3.jcifs &lt;artifactId&gt;jcifs-ng &lt;version&gt;2.1.5 2.0系列现已停产。 变化 支持SMB2(2.02协议级别),部分支持SMB3 删除全局状态 允许按上...

    Shunra.VE.SMB.Editon.4.1.with.KeyGen

    Shunra.VE.SMB.Editon可以模拟一个广域网链接,模拟链路带宽、延时、丢包率、抖动等等网络链路参数。帮助用户观察在特定网络链路环境下,应用软件、网络状况的使用情况。

    jcifs-1.3.3.jar

    读取网络共享文件夹数据。 用法:String host = "192.168.xxx.xxx"; String username = "username"; String password = "password"; //samba服务器上的文件 String filePath = "/a/b/xxx.pdf"; String demo1...

    超详细!java访问windows共享目录并下载文件

    java调用cmd命令实现访问windows共享目录(需不需要密码均可),然后根据指定文件路径下载文件到我们自己配置的本地目录,main函数为测试代码

    smb协议访问带用户名密码的共享文件夹

    它紧密地遵循CIFS规范(是Microsoft Windows平台标准文件共享协议),支持Unicode,命令管道,批处理,线程化调用者的IO复用,加密认证,完整事务,域/工作组/主机/共享/文件枚举,NetBIOS 套接字和名称服务,smb://...

    jCIFS Filesystem:将jCIFS包装为Java文件系统-开源

    该库是Java 7文件系统,用于通过网络访问CIFS / SMB资源。 在内部,它使用jCIFS并将库隐藏在java.nio.file.Path接口及其朋友的后面。 请从http://jcifs.samba.org/下载最新版本的jCIFS。 您只需使用Paths.get(new ...

    JAVA SMB共享文件夹操作文件jar支持smb2、smb3.rar

    JAVA SMB共享文件夹操作文件jar支持smb2、smb3.rar

    java操作网络共java-smb2

    java操作网络共享 smb2协议 使用smbj.jar访问共享文件夹,解决SMB2/SMB3共享文件夹访问 使用smbj.jar访问共享文件夹,支持SMB2/SMB3,用于解决使用jcifs.jar不支持SMB2/SMB3的问题

    操作系统安全:samba匿名访问配置(实验二).docx

    公共匿名类共享目录的配置(即匿名账户访问共享目录或文件) # vim /etc/samba/smb.conf #设置smb.conf配置文件 图5:设置smb.conf配置文件 [global] workgroup = WORKGROUP #设置主机工作组 server string = Samba ...

    一键解决Windows10访问局域网的问题.rar

    一键解决Windows10访问局域网的问题,确定执行?任意将继续,否则请关闭... 添加smb访问组件 部署映像服务和管理工具 版本: 10.0.18362.1 映像版本: 10.0.18362.778 程序包功能列表 : Microsoft-Windows-...

    破解版mdbdriver.jar

    SMB/CIFS URL to a file located on a SMB/CIFS server (e.g.: MS Windows share or Samba server, syntax: smb://[user:password@]hostname/share/[dirpath/]mdbfile): jdbc:jstels:mdb:smb://your_server/your_...

    jcifs-1.2.25.jar

    JCIFS is an Open Source client library that implements the CIFS/SMB networking protocol in 100% Java. CIFS is the standard file sharing protocol on the Microsoft Windows platform (e.g. Map Network ...

Global site tag (gtag.js) - Google Analytics