2016-09-12 12 views
3

私はログインしたユーザー名が必要なJavaでデスクトップアプリケーションを構築しています。 私はSystem.getProperty("user.name")を使用してユーザー名を取得しています。System.getProperty( "user.name")が偽装されないようにする方法

しかし、これは

-Duser.name=someothername 

によって

Properties p = System.getProperties(); 
    p.put("user.name", "XYZ"); 
    System.setProperties(p); 

かを使用することによって詐称することができますどのように私は、このスプーフィングまたは任意の代替は安全な方法でユーザ名でログインして取得する防ぐことができます。 デスクトップアプリケーションはプラットフォームに依存しません。

+0

どのようにユーザーを認証しますか? autheticationが成功した後、有効なユーザーであることを確認できます。 – jbin

+0

ユーザーを認証するメカニズムがあります。問題は、アプリケーションが共有マシン上で実行され、ログインしたユーザーが認証されたユーザーである状況があることです。 System.getProperty( "user.name")は詐称される可能性があるため、誤った取り扱いを避けたいと考えています。 –

答えて

5

システムプロパティは環境変数ではありません。環境変数にはSystem.getenv("USERNAME")を使用してください。 System.propertiesは、Javaコマンドラインのユーザがjava -Duser.name=someoneelseを使用して設定することができます。

関連する問題