SMB

SMB2

SMB3

CIFS

Pure Java SMB Client

jNQ™

jNQ™ brings SMB file sharing to any Java application based on Java 1.6 platform or higher.

Built upon the NQE™ technology, it is the only Java SMB solution currently available that supports all SMB dialects, up to the latest SMBv3.1.1. jNQ™ Client is a pure-Java library available through its API.

Java developers can now ensure complete file sharing security with end-to-end encryption offered by the SMB 3.1.1 dialect. As the only Java SMB solution carrying full support for the SMBv3.1.1 specifications, jNQ thus protects the users, their products and their customers. The security offered by jNQ™ has become essential after the Wannacry and Petya cyber-attacks, which took advantage of the vulnerability of the older SMB dialects. Using SMB 3.1.1 is essential to prevent such malicious attacks by means of message signing, encryption, Active Directory and Kerberos authentications and pre-logon integrity.

In addition to security, jNQ™ also brings the Java community up to date with the latest SMB protocols. Microsoft has disabled SMBv1 protocol by default from Windows 10 RS3 (September 2017) due to safety reasons and low performance outcome. SMBv1 cannot therefore communicate with the latest Windows versions.

You can download the white paper on jNQ™ here.

jNQ™ Architecture

jNQ™ is available through a comprehensive yet intuitive API:

JNQ ™: A Pure Java SMB Client Architecture

jNQ™ functionalities:

  • Compliant with all relevant Microsoft specifications
  • Name resolution functionality by means of NetBIOS, WINS, DNS
  • Security: jNQ™ is a tightly secured system offering:
  • Authentication with LM, NTLM, LMv2, NTLMv2, NTLMSSP, SPNEGO and Kerberos
  • Domain (AD) authentication
  • SMB encryption
  • Message signing
  • Pre-logon integrity
  • File and folder operations: create, open, rename, info, setting exclusive access
  • File operations: read, write, read async, write async
  • Network browsing support
  • DFS
  • RPC support: SAMR, LSA, WINREG, SRVSVC, DSSETUP. All of the above are extendable. A generic DCERPC framework can be used for developing more RPCs
  • Transparent fail-over (support of persistent and durable handles)

jNQ™ highlights:

  • Supports all SMB dialects up to SMB 3.1.1
  • SMB client software library available through its API
  • Written in pure Java, jNQ™ works in any Java environment, starting from 1.6
  • Optimized reads and writes
  • Multi-threaded and highly async

Acquiring the commercial, non-GPL, jNQ™ network stack off-the-shelf allows Visuality Systems customers to save time and money on expensive R&D, get access to the latest SMB dialects and stay focused on their core technology.

jNQ™ Code examples

Mount

PasswordCredentials cr = new PasswordCredentials("userName", "password", "domain");
Mount mt = new Mount("IpAddress","ShareName", cr);

Open, read, write and delete file

PasswordCredentials cr = new PasswordCredentials("userName", "password", "domain");
Mount mt = new Mount("IpAddress","ShareName", cr);
Params pr = new File.Params(File.ACCESS_WRITE, File.SHARE_FULL,
                                File.DISPOSITION_OPEN, false);
File file = new File(mt, "text.txt", pr);
Buffer buff = new Buffer(DATASIZE);
// read DATASIZE from the begginig of the file.
file.read(buff);
// write the buff from the offset DATASIZE.
file.write(buff);
// mark the file for delete.
file.deleteOnClose();
// close the file.
file.close();                                

Delete file by name

PasswordCredentials cr = new PasswordCredentials("userName", "password", "domain");
Mount mt = new Mount("IpAddress","ShareName", cr);
File.delete(mt, "text.txt");

Browsing

PasswordCredentials cr = new PasswordCredentials("userName", "password", "domain");
Mount mt = new Mount("IpAddress","ShareName", cr);
Directory dir = new Directory(mt, "dir1");
Directory.Entry entry;
System.out.println(DIR + " scan:");
do {
    entry = dir.next();
    if (null != entry)
        System.out.println(entry.name + " : size = " + entry.info.eof);
} while (entry != null);

Follow Us

News

  September 25, 2017

Visuality Systems has announced the release of the commercial Pure JAVA SMB Beta version named jNQ that supports all SMB dialects up to the latest SMB3.1.1

 

May 15, 2017

The WannaCry Ransomware cyber-attack succeeded due to exploit the vulnerability of non-encrypted SMB versions – SMB1/SMB2. Moving to SMB3.1.1 has become a MUST.

See Link

 

March 27, 2017

The VxWorks version of NQE 2.00 is now released.

 

December 04, 2016

Visuality Systems has released NQE™ 2.00, features the latest SMB 3.1.1 support.

 

August 10, 2016

The Visuality Systems iNQ application is now available in AppStore. Visuality Systems’ SMB (CIFS) app, can be downloaded and will enable both Client and Server file sharing between an iOS-based smart device and a Win/MAC/Linux PC.

 

April 11, 2016

Visuality Systems and Microsoft expand Server Message Block collaboration to storage systems.

See Link

 

April 01, 2016

Visuality Systems has announced the release of its NQ™ Storage 1.00.