smbj
smbj copied to clipboard
STATUS_LOGON_FAILURE (0xc000006d)
I see that issue 454 appears to be another instance of this. I'm following that report to verify possible unescaped characters in password. The customer is remote and we don't have direct communication.
- We've tested using 2 hostnames for the same server. Connection succeeds with both
- We've tested using upper and lower case domain and username with no success.
Customer reported info: Samba version 4.8.3. server max protocol = SMB3 server min protocol = LANMAN1 Authentication - server is connected to AD using centrify.
ConnectionInfo:
INFO [com.hierynomus.smbj.connection.Connection] - Successfully connected to: server1.company.com
Connection established.
remote host name: server1.company.com
connection info: ConnectionInfo{
serverGuid=75616b72-3062-3430-4545-000000000000,
serverName='server1.company.com',
negotiatedProtocol=NegotiatedProtocol{dialect=SMB_2_1, maxTransactSize=8388608, maxReadSize=8388608, maxWriteSize=8388608},
clientGuid=161a2176-bb4e-49b5-4545-2b7a6bee37ef,
clientCapabilities=[SMB2_GLOBAL_CAP_DFS],
serverCapabilities=[SMB2_GLOBAL_CAP_DFS, SMB2_GLOBAL_CAP_LEASING, SMB2_GLOBAL_CAP_LARGE_MTU],
clientSecurityMode=0,
serverSecurityMode=1,
server='null'
}`
Authentication:
`[com.hierynomus.smbj.auth.NtlmAuthenticator] - Initialized Authentication of <Username> using NTLM
[com.hierynomus.smbj.connection.Connection] - Granted 1 (out of 1) credits to SMB2_SESSION_SETUP with message id << 1 >>
[com.hierynomus.smbj.transport.tcp.direct.DirectTcpTransport] - Writing packet SMB2_SESSION_SETUP with message id << 1 >>
[com.hierynomus.protocol.commons.concurrent.Promise] - Awaiting << 1 >>
[com.hierynomus.smbj.transport.PacketReader] - Received packet com.hierynomus.mssmb2.SMB2PacketData@3a081950
[com.hierynomus.smbj.connection.Connection] - Server granted us 1 credits for com.hierynomus.mssmb2.SMB2PacketData@3a081950, now available: 1 credits
[com.hierynomus.protocol.commons.concurrent.Promise] - Setting << 1 >> to `SMB2_SESSION_SETUP with message id << 1 >>`
[com.hierynomus.smbj.connection.Connection] - More processing required for authentication of <Username> using com.hierynomus.smbj.auth.NtlmAuthenticator@7cf10a6f
[com.hierynomus.smbj.auth.NtlmAuthenticator] - Received token: a1 ... 00
[com.hierynomus.asn1.ASN1InputStream] - Read ASN.1 object: ASN1TaggedObject[ASN1Tag[CONTEXT_SPECIFIC,CONSTRUCTED,1],<unknown>]
[com.hierynomus.asn1.ASN1InputStream] - Read ASN.1 object: ASN1TaggedObject[ASN1Tag[CONTEXT_SPECIFIC,CONSTRUCTED,0],<unknown>]
[com.hierynomus.asn1.ASN1InputStream] - Read ASN.1 object: ASN1TaggedObject[ASN1Tag[CONTEXT_SPECIFIC,CONSTRUCTED,1],<unknown>]
[com.hierynomus.asn1.ASN1InputStream] - Read ASN.1 object: ASN1TaggedObject[ASN1Tag[CONTEXT_SPECIFIC,CONSTRUCTED,2],<unknown>]
[com.hierynomus.asn1.ASN1InputStream] - Read ASN.1 object: ASN1Sequence[[ASN1TaggedObject[ASN1Tag[CONTEXT_SPECIFIC,CONSTRUCTED,0],<unknown>], ASN1TaggedObject[ASN1Tag[CONTEXT_SPECIFIC,CONSTRUCTED,1],<unknown>], ASN1TaggedObject[ASN1Tag[CONTEXT_SPECIFIC,CONSTRUCTED,2],<unknown>]]]
[com.hierynomus.asn1.ASN1InputStream] - Read ASN.1 object: ASN1Enumerated[1]
[com.hierynomus.asn1.ASN1InputStream] - Read ASN.1 object: ASN1ObjectIdentifier[1.3.6.1.4.1.311.2.2.10]
[com.hierynomus.asn1.ASN1InputStream] - Read ASN.1 object: ASN1OctetString[[78, ... 0]]
[com.hierynomus.ntlm.messages.NtlmChallenge] - Windows version = WindowsVersion[WINDOWS_MAJOR_VERSION_6, WINDOWS_MINOR_VERSION_1, 0, NTLMSSP_REVISION_W2K3]
[com.hierynomus.smbj.auth.NtlmAuthenticator] - Received NTLM challenge from: <DOMAIN>
[com.hierynomus.smbj.connection.Connection] - Granted 1 (out of 1) credits to SMB2_SESSION_SETUP with message id << 2 >>
[com.hierynomus.smbj.transport.tcp.direct.DirectTcpTransport] - Writing packet SMB2_SESSION_SETUP with message id << 2 >>
[com.hierynomus.protocol.commons.concurrent.Promise] - Awaiting << 2 >>
[com.hierynomus.smbj.transport.PacketReader] - Received packet com.hierynomus.mssmb2.SMB2PacketData@37479732
[com.hierynomus.smbj.connection.Connection] - Server granted us 1 credits for com.hierynomus.mssmb2.SMB2PacketData@37479732, now available: 1 credits
[com.hierynomus.protocol.commons.concurrent.Promise] - Setting << 2 >> to `SMB2_SESSION_SETUP with message id << 2 >>`
com.hierynomus.mssmb2.SMBApiException: STATUS_LOGON_FAILURE (0xc000006d): Authentication failed for '<Username>' using com.hierynomus.smbj.auth.NtlmAuthenticator@7cf10a6f
at com.hierynomus.smbj.connection.Connection.authenticate(Connection.java:182)
Is it possible that we need to consider enhancing our SMBClient?
new SMBClient(SmbConfig.builder() .withSocketFactory(new KeepAliveSocketFactory()) .withSoTimeout(0, TimeUnit.SECONDS) .withTimeout(operationTimeout, TimeUnit.SECONDS) .build());
User reports that there are no special characters in password. We're investigating the SmbConfig.
Is there anything in this ConnectionInfo that would indicate a need to change our SmbConfig?
INFO [com.hierynomus.smbj.connection.Connection] - Successfully connected to: server1.company.com Connection established. remote host name: server1.company.com connection info: ConnectionInfo{ serverGuid=75616b72-3062-3430-4545-000000000000, serverName='server1.company.com', negotiatedProtocol=NegotiatedProtocol{dialect=SMB_2_1, maxTransactSize=8388608, maxReadSize=8388608, maxWriteSize=8388608}, clientGuid=161a2176-bb4e-49b5-4545-2b7a6bee37ef, clientCapabilities=[SMB2_GLOBAL_CAP_DFS], serverCapabilities=[SMB2_GLOBAL_CAP_DFS, SMB2_GLOBAL_CAP_LEASING, SMB2_GLOBAL_CAP_LARGE_MTU], clientSecurityMode=0, serverSecurityMode=1, server='null' }
My current thoughts are
- .withDfsEnabled(true)
- .withSigningRequired(true)
The DFS would not lead to a LOGON_FAILURE status, unless you're redirected to a server you don't have access to.
Op do 20 jun. 2019 om 18:53 schreef Bill Stephens <[email protected]
:
User reports that there are no special characters in password. We're investigating the SmbConfig.
Is there anything in this ConnectionInfo that would indicate a need to change our SmbConfig? INFO [com.hierynomus.smbj.connection.Connection] - Successfully connected to: server1.company.com Connection established. remote host name: server1.company.com connection info: ConnectionInfo{ serverGuid=75616b72-3062-3430-4545-000000000000, serverName=' server1.company.com', negotiatedProtocol=NegotiatedProtocol{dialect=SMB_2_1, maxTransactSize=8388608, maxReadSize=8388608, maxWriteSize=8388608}, clientGuid=161a2176-bb4e-49b5-4545-2b7a6bee37ef, clientCapabilities=[SMB2_GLOBAL_CAP_DFS], serverCapabilities=[SMB2_GLOBAL_CAP_DFS, SMB2_GLOBAL_CAP_LEASING, SMB2_GLOBAL_CAP_LARGE_MTU], clientSecurityMode=0, serverSecurityMode=1, server='null' }
My current thoughts are
- .withDfsEnabled(true)
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/hierynomus/smbj/issues/478?email_source=notifications&email_token=AAA4XI4XLVYQSZBATKKT37TP3OYYVA5CNFSM4HYXE6V2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYF7ZPA#issuecomment-504102076, or mute the thread https://github.com/notifications/unsubscribe-auth/AAA4XI7DGSX2MH7NHPIFUYTP3OYYVANCNFSM4HYXE6VQ .
According to the MS-ERREF specification the STATUS_LOGON_FAILURE indicates:
| 0xC000006D STATUS_LOGON_FAILURE | The attempted logon is invalid. This is either due to a bad username or authentication information. |
|---|
@hierynomus Yes. This is what we've identified as well. My guess at this point is that it's caused by Chrome's spec change to AutoComplete, which is grabbing an incorrect password.
We're still stuck. What we've noticed that when using smbclient to connect, the user is not providing a workgroup or a domain and the connection is working.
What we see via cli:
smbclient //<hostname>/<share> --user=<username>
> Enter SAMBA\<username>'s password:
- What is the equivalent use of AuthenticationContext for this? We've tried null for domain.
- The "SAMBA" domain in the password response is surprising. That's not the domain that we've been told to expect.
Did you try „SAMBA“ or „.“ for the domain?
@ecki @hierynomus We've tried null, "", SAMBA and the actual user domain (presented here as SMBUSER) and upper/lower case unsuccessfully.
I have no idea why we're having such issues with getting this to work. Is there anything obvious here?
I've finally obtained some server / conf details...
Client Server: Red Hat Enterprise Linux in version 7.6 SMB Server: Red Hat Enterprise Linux in version 7.6 Samba: 4.8.3
smb.conf snippet:
[global]
security = ADS
workgroup = SMBUSER
client ipc signing = auto
...
client NTLMv2 auth = yes
[MBT]
path = /opt/marketing
writeable = yes
browseable = yes
guest ok = yes
follow symlinks = yes
Did you try “.“ or (as your config snippet suggests) “SMBUSER“ or the hostname?
I guess on the samba side there should be something in the logs why it rejected the login. Maybe you need to crank up the log level there.
The reason will be obvious once it is discovered :)
Hi, I am using this library to login to the shared location in my scheduled job. The code runs fine except a few times where it throws the error STATUS_LOGON_FAILURE (0xc000006d). The username, password, and domain all are same for each run. Unable to find a failure pattern to debug the same.
Hi,
I am still facing the intermittent issue of getting authentication failed. Need some information in this reagrd
Why it is showing com.hierynomus.mssmb2.SMBApiException: STATUS_LOGON_FAILURE (0xc000006d): Even i am giving right domian / password / username I have tried it with both UPPERCASE and lowercase
Does SMBJ can be tested on my own laptop by making folder sharable
Please help urgent required
public class smbjcls {
private static final String SHARE_DOMAIN = " anchor.abcdef.com";
private static final String SHARE_USER = "pqr.xyz";
private static final String SHARE_PASSWORD = "SmsStadium302017";
private static final String SHARE_SRC_DIR = "E:\\share\\source";
private static final String SHARE_DST_DIR = "E:\\reciever\\destination";
public static void main(String[] args) {
SmbConfig config = SmbConfig.builder().withTimeout(1200, TimeUnit.SECONDS)
.withTimeout(1200, TimeUnit.SECONDS)
.withSoTimeout(1800, TimeUnit.SECONDS)
.build();
SMBClient client = new SMBClient(config);
try {
Connection connection = client.connect("192.***.*.**"); // For example: 123.123.123.123
System.out.println("Connection is created1");
AuthenticationContext ac = new AuthenticationContext(SHARE_USER, SHARE_PASSWORD.toCharArray(), SHARE_DOMAIN);
System.out.println("AuthenticationContext is created2");
Session session = connection.authenticate(ac); //The java string toCharArray() method converts the given string into a sequence of characters.
System.out.println("Session is created3");
// Connect to a shared folder
DiskShare share = (DiskShare) session.connectShare(SHARE_SRC_DIR);
//Connect to a share on the remote machine over the authenticated session.
System.out.println("Session is created4");
String folder = SHARE_SRC_DIR + SHARE_DST_DIR;
String dstRoot = "The local folder path to save"; // For example: D:/smd2/
for (FileIdBothDirectoryInformation f : share.list(SHARE_DST_DIR, "*.mp4")) {
String filePath = folder + f.getFileName();
String dstPath = dstRoot + f.getFileName();
FileOutputStream fos = new FileOutputStream(dstPath);
BufferedOutputStream bos = new BufferedOutputStream(fos);
if (share.fileExists(filePath)) {
System.out.println("Downloading file:" + f.getFileName());
File smbFileRead = share.openFile(filePath, EnumSet.of(AccessMask.GENERIC_READ), null, SMB2ShareAccess.ALL, SMB2CreateDisposition.FILE_OPEN, null);
InputStream in = smbFileRead.getInputStream();
byte[] buffer = new byte[4096];
int len = 0;
while ((len = in.read(buffer, 0, buffer.length)) != -1) {
bos.write(buffer, 0, len);
}
bos.flush();
bos.close();
System.out.println("File Download Successful");
System.out.println("==========================");
} else {
System.out.println("File does not exist");
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (client != null) {
client.close();
}
}
}
}
Output===> 1948 [main] INFO com.hierynomus.smbj.connection.Connection - Successfully connected Connection is created1 AuthenticationContext is created2 com.hierynomus.mssmb2.SMBApiException: STATUS_LOGON_FAILURE (0xc000006d): Authentication failed for 'ABHAY.GUPTA' using com.hierynomus.smbj.auth.NtlmAuthenticator@2833cc44 at com.hierynomus.smbj.connection.Connection.authenticate(Connection.java:194) at test.smbjcls.main(smbjcls.java:106) 7303 [main] INFO com.hierynomus.smbj.SMBClient - Going to close all remaining connections 7315 [main] INFO com.hierynomus.smbj.connection.Connection - Closed connection to 192.168.1.18 7331 [Packet Reader for 192...] INFO com.hierynomus.smbj.transport.PacketReader - Thread[Packet Reader for 192.168.1.18,5,main] stopped.
Please answer
Does SMBJ can be tested by sharing a folder present in that same smbj commiting laptop by making folder sharable
Yes you can test it on your notebook, why not.
Btw: Your shares are wrong, you only need to specify the name of the share, not a drive or directory. But this is not yet a problem, your error happens earlier.
The reason why your SMB server rejects the connection is hard to tell. Are you sure the domain name and username and password are correct? Do you see any reasons in the Windows event log?
Yes ecki
@AbhayGpta A word of advice:
- Don't spam all the issues with this. Please create a separate issue with your problem.
- I don't work for you, you don't pay me. This means that you're not entitled to some kind of premium support. We're all volunteers that put in after work hours to work on code.
Now to your issue:
- What have you tried
- There are plethora of people who have it working, and there are numerous integration tests that connect to an actual SMB server. Chances are high you've made a (small) mistake.
- Have you looked at the server side logging, it might shed some clue as to why your credentials are being rejected.
STATUS_LOGON_FAILUREmeans that your credentials were rejected. So even if you think you're typing them in correctly, there probably is something missing/wrong. Did you put in\\in your domain, try removing that.
Hi there, I encountered a same situation with the message STATUS_LOGON_FAILURE (0xc000006d)
After some investigation I found out that the username was too long.
The username that was provided was 22 characters and apparently Windows uses only the first 20 of that in the SMB connection. I saw this by investigating the details of the share. So when I used the adjusted username and the same password, the connection was established.
I do not know if it applies to all windows versions but at least it was the answer to my issue.
I checked and saw the cut-off usernames using the following winrs command: winrs -r:fullyqualifiedservername -u:username@domain -p:password icacls d:\myshare
I am not sure if you can or should do anything about this in the smbj code. You could consider adding a warning when something fails and the username is longer than 20.
Hopes this helps others when dealing with this issue, which can take some time to discover.
Hi, I'm facing a similar problem here. I get an NT_STATUS_LOGON_FAILURE error while trying to connect to a WINDOWS 2008 SERVER R2 with both SMB1 and SMB2.1 activated. No problems connecting with samba's smbclient (SMB2.1) or jcifs.org (SMB1) ...
Maybe this is due to have SMB1 and SMB2.1 simultaneously runnig? Do you think that activating SmbConfig.MultiProtocolNegotiation might help?
@palevi67 How long is the username? you might be hitting the above problem. Otherwise, you need to obtain the server log, as that contains the actual problem.
It's seven chars long, I don't think that's the problem. Thought the server isn't under my control, I will ask the administrator for the log.
The administrator says there's no relevant smb messages in the server event viewer. But I have found what the problem was. The client is a thin client device than didn't have it's clock on time (it was some point in year 2000). After configuring NTP correctly, the NT_STATUS_LOGON_FAILURE error went away!
@palevi67 Good find. Should make a FAQ entry for that one!
Hi everyone I am facing with authentication problem too but in my case app works in all emulators regardless of android version of them but after updating android version of my samsung s6 tab lite to 11 i started to get error like this: com.hierynomus.ms smb2.SMB ApiException: STATUS_LOGON_FAILURE (0xc000006d): Program started to see my password wrong and didn't work but when i switch to other devices it works normally. Please help.
Can you elaborate „see my password wrong“?
On my tablet with android version 11, it gives an error that the wrong password is entered, but it does not give such an error on other devices with low android version.
Do you mean you get the mentioned exception STATUS_LOGON_FAILURE (0xc000006d) or anything in addition or instead? Also what is logged on the server and what server do you contact.
i'm in the same trouble.
i'm testing smb protocol like below.
one is using jcifs-ng 2.1.6 and that WORKS.
another is using smbj 0.11.3 that DOESN'T WORK and got STATUS_LOGIN_FAILURE.
both using same account, and same server (server is macos catalina file sharing).
one fact is that using smbj 0.10.0, the authentication test below HAS WORKED. so modification after version 0.10.0 might cause this issue.
i have no choice but to use 0.10.0, but 0.10.0 causes #584 ...
/**
* works, thaks jcifs-ng
*/
@Test
void test_cifs() throws Exception {
String username = System.getenv("TEST_SMB_ACCOUNT");
String password = System.getenv("TEST_SMB_PASSWORD");
String host = System.getenv("TEST_SMB_HOST");
String domain = System.getenv("TEST_SMB_DOMAIN");
String path = System.getenv("TEST_SMB_PATH");
String url = "smb://" + host + path;
System.err.println(url);
NtlmPasswordAuthenticator auth = new NtlmPasswordAuthenticator(domain, username, password);
CIFSContext context = SingletonContext.getInstance().withCredentials(auth);
SmbFile smbFile = new SmbFile(url, context);
System.err.println(smbFile.getPath() + ", " +
LocalDateTime.ofInstant(Instant.ofEpochMilli(smbFile.getLastModified()), TimeZone.getDefault().toZoneId()));
smbFile.close();
context.close();
}
/**
* smbj
*/
@Test
void test_smbj() throws Exception {
String username = System.getenv("TEST_SMB_ACCOUNT");
String password = System.getenv("TEST_SMB_PASSWORD");
String host = System.getenv("TEST_SMB_HOST");
String domain = System.getenv("TEST_SMB_DOMAIN");
String path = System.getenv("TEST_SMB_PATH");
try (SMBClient client = new SMBClient();
Connection connection = client.connect(host)) {
AuthenticationContext ac = new AuthenticationContext(username, password.toCharArray(), domain);
Session session = connection.authenticate(ac);
// Connect to Share
try (DiskShare share = (DiskShare) session.connectShare(path)) {
for (FileIdBothDirectoryInformation f : share.list("path2")) {
System.out.println("File : " + f.getFileName());
}
}
}
}
it's no problem for me because jcifs-ng works fine.
but diversity saves the world, right?
Can you grab a pcap file with jcifs-ng working and one with smbj failing? Then I can investigate and try to fix the problem.
Thanks!
Came here when I was having this problem and it ended up that I didn't have the domain added to the username. Hard to spot that problem.
using the patch, my program works!
it seems not necessary to add builder.withDialects(SMB2Dialect.SMB_2_1, SMB2Dialect.SMB_2_0_2)
- smb server is mac catalina
- client is java8 on mac
java version "1.8.0_291"
Java(TM) SE Runtime Environment (build 1.8.0_291-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode)
- patch to bdaff88119c007d1d2092e353ab223a5ed562c4f
$ git diff issue-698
diff --git a/src/main/java/com/hierynomus/mssmb2/messages/SMB2SessionSetup.java b/src/main/java/com/hierynomus/mssmb2/messages/SMB2SessionSetup.java
index 1a02091..41f1bdd 100644
--- a/src/main/java/com/hierynomus/mssmb2/messages/SMB2SessionSetup.java
+++ b/src/main/java/com/hierynomus/mssmb2/messages/SMB2SessionSetup.java
@@ -57,7 +57,7 @@ public class SMB2SessionSetup extends SMB2Packet {
buffer.putUInt16(structureSize); // StructureSize (2 bytes)
putFlags(buffer); // Flags (1 byte)
buffer.putByte(securityMode); // SecurityMode (1 byte)
- buffer.putUInt32(clientCapabilities & 0xFF); // Capabilities (4 bytes)
+ buffer.putUInt32(clientCapabilities & 0x01); // Capabilities (4 bytes)
buffer.putReserved4(); // Channel (4 bytes)
buffer.putUInt16(SMB2PacketHeader.STRUCTURE_SIZE + 25 - 1); // SecurityBufferOffset (2 bytes) (header structure size + Session setup structure size - 1)
buffer.putUInt16((securityBuffer != null) ? securityBuffer.length : 0); // SecurityBufferLength (2 bytes)
diff --git a/src/main/java/com/hierynomus/ntlm/messages/NtlmNegotiate.java b/src/main/java/com/hierynomus/ntlm/messages/NtlmNegotiate.java
index c12dac5..010b53b 100644
--- a/src/main/java/com/hierynomus/ntlm/messages/NtlmNegotiate.java
+++ b/src/main/java/com/hierynomus/ntlm/messages/NtlmNegotiate.java
@@ -50,10 +50,10 @@ public class NtlmNegotiate extends NtlmPacket {
// DomainNameFields (8 bytes)
buffer.putUInt16(0x0); // DomainNameLen (2 bytes)
buffer.putUInt16(0x0); // DomainNameMaxLen (2 bytes)
- buffer.putUInt32(0x20); // DomainNameBufferOffset (4 bytes)
+ buffer.putUInt32(0x0); // DomainNameBufferOffset (4 bytes)
// WorkstationFields (8 bytes)
buffer.putUInt16(0x0); // WorkstationLen (2 bytes)
buffer.putUInt16(0x0); // WorkstationMaxLen (2 bytes)
- buffer.putUInt32(0x20); // WorkstationBufferOffset (4 bytes)
+ buffer.putUInt32(0x0); // WorkstationBufferOffset (4 bytes)
}
}
diff --git a/src/main/java/com/hierynomus/smbj/auth/NtlmAuthenticator.java b/src/main/java/com/hierynomus/smbj/auth/NtlmAuthenticator.java
index bf8f1b5..005fc78 100644
--- a/src/main/java/com/hierynomus/smbj/auth/NtlmAuthenticator.java
+++ b/src/main/java/com/hierynomus/smbj/auth/NtlmAuthenticator.java
@@ -124,8 +124,8 @@ public class NtlmAuthenticator implements Authenticator {
// If NTLM v2 is used, KeyExchangeKey MUST be set to the given 128-bit SessionBaseKey value.
// MIC (16 bytes) provided if in AvPairType is key MsvAvFlags with value & 0x00000002 is true
- Object msAvTimestamp = serverNtlmChallenge.getTargetInfo().getAvPairObject(AvId.MsvAvTimestamp);
- if (msAvTimestamp != null) {
+ Object msvAvFlags = serverNtlmChallenge.getTargetInfo().getAvPairObject(AvId.MsvAvFlags);
+ if (msvAvFlags instanceof Long && ((long) msvAvFlags & 0x00000002) > 0) {
// MIC should be calculated
NtlmAuthenticate resp = new NtlmAuthenticate(new byte[0], ntlmv2Response,
context.getUsername(), context.getDomain(), workStationName, sessionkey, EnumWithValue.EnumUtils.toLong(negotiateFlags),
~~and #584 still occurs even after patch this.~~ -> fixed
smbj 0.12.2 has already been patched part No.2, No.3 of diffs in my previous post. in my env smbj 0.12.2 works well.
env
- smbj 0.12.2
- commons-vfs2-smb patched
- apache-commons-vfs2 2.9.0
- macos 13.5.2
- java -version
java version "1.8.0_341"
Java(TM) SE Runtime Environment (build 1.8.0_341-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.341-b10, mixed mode)
- smb server macos 10.15.7 19H2026