5

リモートで Windows マシンに接続して、このマシンからファイルを取得しようとしています。これは私のコードです、

 path = path.replace(":","");
        path = path.replace("\\","/");
        String smbpath="smb://"+host+":445/"+path; //c/alon2.txt";

        NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(user+":"+password);
        SmbFile smbFile = new SmbFile(smbpath,auth);

        SmbFileInputStream input = new SmbFileInputStream(smbFile);
        Files.copy(input, destPath.toPath());
        System.out.println("completed fetching file");
        return destPath;

そして、「プレーンテキストのパスワードが無効になっています」という例外が発生しました。jcifs.Config.setProperty("jcifs.smb.client.disablePlainTextPasswords","true"); それは機能しません。サーバーでsmbサードパーティを無効にしたくありません。何か案が?

java.lang.RuntimeException: jcifs.smb.SmbComTreeConnectAndX.writeParameterWordsWireFormat(SmbComTreeConnectAndX.java:129) でプレーン テキストのパスワードが無効になっています。 AndXServerMessageBlock.java:166) で jcifs.smb.AndXServerMessageBlock.encode(AndXServerMessageBlock.java:65) で jcifs.smb.SmbTransport.doSend(SmbTransport.java:439) で jcifs.util.transport.Transport.sendrecv(Transport.java) :67) jcifs.smb.SmbTransport.send(SmbTransport.java:655) で jcifs.smb.SmbSession.sessionSetup(SmbSession.java:316) で jcifs.smb.SmbSession.send(SmbSession.java:218) で jcifs .smb.SmbTree.treeConnect(SmbTree.java:176) at jcifs.smb.SmbSession.logon(SmbSession.java:147) com.hp.autopass.usagehub.service.util.osutils.NetBiosConnection.authenticate(NetBiosConnection.java:47) の jcifs.smb.SmbSession.logon(SmbSession.java:140) com.hp.autopass.usagehub で.service.NetBiosConnectionTest.authenticateTest(NetBiosConnectionTest.java:34)、sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド)、sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)、sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl) .java:43) org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) で org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) で org.junit org.junit.internal.runners の .runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)。org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) での states.InvokeMethod.evaluate(InvokeMethod.java:17) org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) でorg.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) で org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) で org.junit.runners.ParentRunner$3.run(ParentRunner.java: 290) org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) で org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) で org.junit.runners.ParentRunner.access$000(ParentRunner) .java:58) で org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) で org.junit.runners.ParentRunner.run(ParentRunner.java:363) で org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67)

4

1 に答える 1

5

jcifs.Config.setProperty("jcifs.smb.client.disablePlainTextPasswords","false"); 平文パスワードを有効にするために使用する必要があります。コードでは、このフラグを として設定しますtrue

于 2015-06-23T14:15:55.100 に答える