私は Java を使用した NTLM 実装に取り組んでいます。自分のマシン内の共有フォルダーにアクセスしようとしています。しかし、次の例外が発生します。
jcifs.smb.SmbAuthException: Logon failure: unknown user name or bad password.
コンピューターのプロパティからマシン名とワークグループ情報を取得しました。ここに私のコードがあります:
String folderUrl =settings.domain+";"+settings.username+":"+settings.password
NtlmPasswordAuthentication authentication = new NtlmPasswordAuthentication("${folderUrl}") ;
SmbFile readFolder = new SmbFile("smb:"+settings.filesLocation+"/",authentication) ;
そして、この行で上記の例外が発生します。
SmbFile[] listOfFiles = readFolder.listFiles() ;
これまでに試した解決策:
ローカル セキュリティ ポリシーを変更し、「ネットワーク セキュリティ: LAN Manager 認証レベル」の値を「NLM と NTLM を送信、ネゴシエートされた場合はセッション セキュリティを使用」に変更しましたが、すべて無駄でした。さらに、パスワードとドメインも変更してみました。
ノート:
- 共有フォルダを作成しましたが、これらは「ネットワーク」に共有として表示されます
- 同じネットワーク上の他のマシンから自分のマシンにアクセスできません。理由はわかりません。これが原因かもしれません。PCに入力するのに使用するのと同じ資格情報を使用して、同じネットワーク上の他のマシンから自分のマシンにアクセスしようとしたときに発生するエラーを見てください。
NTLM を使用してネットワーク パス上のこれらの共有フォルダにアプリケーションがアクセスする方法を教えてください。