5

Javaアプリを使用してデータベースとファイルを操作するサーバーがあります。アプリを起動すると、次を使用してサーバーへのファイル アクセスに関するレポートを作成します。

public static boolean folderExists(String folderPath) {
    File folderToCheck = new File(folderPath);
    return folderToCheck.exists();
}

アプリを起動するたびに (コンピューターを再起動した後)、サーバーがオンになっているにもかかわらず、誤った応答が返されます。その理由は、別のユーザーとして認証を行う必要があるためです。私がしていることは、ユーザー名/パスワードを求められている Windows を介してサーバーにアクセスすることです。その後、サーバーへのファイル アクセスに関する真の応答を取得します。

WindowsではなくJava を介して認証ユーザー名/パスワードを与える方法はありますか?

ありがとうございました

4

2 に答える 2

3

Windows の「ネイティブ」Java IO (java.io.File など) では、JVM プロセスを実行しているユーザーのセキュリティ コンテキストが常に継承されます。たとえば、正しい資格情報を使用して Java アプリを Windows サービスとして実行できます。

JCIFS プロジェクトはCIFS (Windows SMB ファイル サーバー プロトコル) を実装し、ユーザー名/パスワードを直接指定できるようにします。

例については、 APIを参照してください。

于 2011-01-19T15:55:45.867 に答える
1

Windows-Call を使用せずに Java によるファイル アクセスを許可する方法はないと確信しています。

呼び出すことはできますcacls file.log /e /t /p Everyone:fが、これは言語に依存します。

同様の問題がありました: SID しか知らない場合、Windows でファイル ACL を変更するにはどうすればよいですか?

Java7 では、これを行う方法があるかもしれません。

于 2011-01-19T12:55:26.557 に答える