Angemeldeten Systembenutzer ermitteln

Status
Nicht offen für weitere Antworten.

foobar

Top Contributor
Hi,

hat jemand eine Idee wie man aus Java den aktuell angemeldeten Systembenutzer ermitteln kann, der gerade das Programm ausführt? Wenn ich System.getProperty("user.name") verwende ist das nicht besonders sicher, da man diesen Wert über java -Duser.name manipulieren kann. Gibt es noch ne andere Möglichkeit oder kennt jemand eine API, die sowas ermöglicht?

Viele Grüße,
foobar
 

foobar

Top Contributor
Danke für die Tips, aber ich habe immer noch nicht das richtige gefunden.
Ich brauche eine API, die mir auch alle verfügbaren User des Systems auflistet. Am besten direkt mit allen Details wie Homedir etc. Kennt jemand sowas?
 
T

tuxedo

Gast
Du könntest manipulationsversucht mit KOmmandozeilenoptionen versuchen zu umgehen in dem du mit diversen Tools aus deiner Jar ein Executable machst... Dann wird dein Programm ausschließlich mit den Argumenten gestartet die du zuvor definiert hast.

Tools um eine Jar in eine EXE zu packen: SuFu oder Google
 

Wildcard

Top Contributor
@JPKI
Was soll daran WIndowsspezifisch sein? Haben andere Betriebsysteme etwa keine Benutzer?

@foobar
Deine zweite Anforderung deckt sich nicht mit der ersten.
Für dein erstes Problem könntest du folgendes Versuchen:
user.home Abfragen und versuchen dort zu schreiben. Wenn das funktioniert ist der User vermutlich der für den er sich ausgibt.
Zum Zweiten:
Du könntest user.home abfragen, ins Parent Verzeichnis wechseln und dort die Verzeichnisse auslesen.

Beides wird nicht in allen Fällen funktionieren, aber mehr fällt mir gerade nicht ein.
Vielleicht solltest du auch erwähnen für welches Betriebssystem es gedacht ist.
 

kleiner_held

Top Contributor
eine Idee die ich grad hatte:
Code:
public class XYZ
{
    public static void main(String[] args)
    {
        System.out.println("My user name:");
        ABC.main(args);
        System.out.println("Fork VM user name:");
        try
        {
            System.out.println(check());
        } 
        catch (Exception e)
        {
            e.printStackTrace();
        }        
    }

   public static String check() throws Exception
   {
       ProcessBuilder pb = new ProcessBuilder(
               System.getProperty("java.home")+"/bin/java",
               "-cp",
               System.getProperty("java.class.path"),
               ABC.class.getName());
       Process p = pb.start();

       StringBuilder output = new StringBuilder();
       char[] buffer = new char[100];
       BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
       
       for (int count = reader.read(buffer); count > -1; count = reader.read(buffer))
       {
           output.append(buffer, 0, count);
       }
       
       p.waitFor();
       
       return output.toString();
   }
   
   public static class ABC
   {
       public static void main(String[] args)
       {
           System.out.println(System.getProperty("user.name"));
       }
   }
}

kann man sicherlich auch manipulieren, hilft aber wenigstens gegen ein einfaches -Duser.name und sollte OS unabhängig sein.
 

foobar

Top Contributor
Danke für eure Ideen :)

Also das ganze ist eine Eclipse RCP-Anwendung, die primär unter Windows laufen soll und Linux laufen soll. MacOS X ist aber auch nicht ausgeschlossen.
Eclipse RCP hat ja auch nen eigenen nativen Starter dabei, da muß ich mal forschen in wie weit man da etwas konfigurieren kann. Da ich ja aber sowieso eine API für das Auslesen der Benutzer brauche, werde ich um JNI nicht rum kommen. Denn bisher habe ich noch keine API gefunden, die soetwas in Java für Windows, Linux und Mac zur Verfügung stellt.
Wir möchten in unserer Anwendung dem User bzw. Administrator der Software eben die Möglichkeit geben einem User aus unserer Userverwaltung einen Systemuser zu zu weisen. Damit man sich, wenn ein Systemuser vorhanden ist, nicht wiederholt anmelden muß. Deshalb brauche ich eine API, die mir plattformunabhängig alle Benutzer auflistet, damit ich diese dann in meiner Verwaltung zuweisen kann.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Am System angemeldeten Benutzer abfragen Allgemeine Java-Themen 11
T angemeldeten usernamen herausfinden Allgemeine Java-Themen 4
I Druckerauflösung per JNA ermitteln Allgemeine Java-Themen 3
Kiki01 Häufigster Buchstabe lässt sich nicht ermitteln Allgemeine Java-Themen 30
S Verwendet Programmiersprache aus Quellcode - Datei ermitteln Allgemeine Java-Themen 6
B Dateistart ermitteln Allgemeine Java-Themen 14
MiMa Geldbetrag mit regex ermitteln. Allgemeine Java-Themen 14
S Alle Dateinamen ermitteln Allgemeine Java-Themen 22
S Marker aus String ermitteln Allgemeine Java-Themen 5
B Mail: Nicht vorhandener Empfänger ermitteln Allgemeine Java-Themen 4
D javassist API Klasse in MethodCall ermitteln Allgemeine Java-Themen 8
J Größe einer CD ermitteln Allgemeine Java-Themen 10
C Ermitteln ob Zeitumstellung war Allgemeine Java-Themen 37
KeexZDeveoper Nächstgelegenden Wert ermitteln Allgemeine Java-Themen 5
D Best Practice Die niedrigste Differenz zwischen zwei Listen ermitteln. Allgemeine Java-Themen 10
L Wachstumsordnung der Ausführungszeit ermitteln Allgemeine Java-Themen 7
MiMa MP3 Bitrate ermitteln Allgemeine Java-Themen 7
Aruetiise Interface Position durch JButton ermitteln Allgemeine Java-Themen 5
L Ermitteln der Anzahl an Lösungen von quatratischen Gleichungen (Sieb von Atkin) Allgemeine Java-Themen 1
L Java Version aus Tomcat ermitteln Allgemeine Java-Themen 3
F Content-Disposition ermitteln über URL Allgemeine Java-Themen 2
O MVC - wo Liste der ComboBox-Items ermitteln Allgemeine Java-Themen 3
F Zeit ermitteln Allgemeine Java-Themen 2
J ermitteln der Anzahl der Monate Allgemeine Java-Themen 7
F Swing selektierte Komponente ermitteln Allgemeine Java-Themen 4
S Einfache Methode die Groesse eines Objekts zu ermitteln? Allgemeine Java-Themen 12
E Ermitteln einer eindeutigen ID eines Objekts möglich? Allgemeine Java-Themen 17
L Jsp: Vorherige Webseite ermitteln Allgemeine Java-Themen 4
K Annotations der aufrufenden Methode ermitteln Allgemeine Java-Themen 11
S per Mausklick Position ermitteln Allgemeine Java-Themen 8
T HTML Tag Position mittels Pattern ermitteln Allgemeine Java-Themen 7
K Datum ermitteln Allgemeine Java-Themen 4
R Array Schnittmenge performant ermitteln Allgemeine Java-Themen 8
M Klassen in vielen Jars ermitteln Allgemeine Java-Themen 2
c_sidi90 Routine zum ermitteln des Standardablageverzeichnisses Allgemeine Java-Themen 2
R Windows ermitteln ob Administratorrechte vorhanden Allgemeine Java-Themen 17
E Java Browser ermitteln? Allgemeine Java-Themen 6
F Pfad der laufenden JAR ermitteln (mit Archivnamen) Allgemeine Java-Themen 2
E Java Version Details ermitteln Allgemeine Java-Themen 5
E Performace/Ausführungszeit von Methoden ermitteln Allgemeine Java-Themen 4
J Anwendungen ermitteln ? Allgemeine Java-Themen 5
Iron Monkey Lautstärkeregelung ermitteln Allgemeine Java-Themen 2
A Reisezeiten ermitteln Allgemeine Java-Themen 9
Z Position/Größe von Windows-Fenstern ermitteln Allgemeine Java-Themen 12
S Konstruktor ermitteln Allgemeine Java-Themen 3
Iron Monkey Anzahl der Monate ermitteln Allgemeine Java-Themen 17
multiholle Aufrufer einer Funktion ermitteln Allgemeine Java-Themen 13
FoolMoon Elegante Möglichkeit die kleinste Zahl zu ermitteln. Allgemeine Java-Themen 7
T Pfad Anwendungsdaten unter Windows ermitteln Allgemeine Java-Themen 3
D Häufigkeit eines Zeichens ermitteln Allgemeine Java-Themen 5
H2SO3- Pixel länge von String ermitteln Allgemeine Java-Themen 4
D Parametername ermitteln Allgemeine Java-Themen 10
T Nicht verwendete Klassen in Projekten ermitteln? Allgemeine Java-Themen 2
data89 [Kurze Frage] Ähnlichkeit zweier Strings ermitteln Allgemeine Java-Themen 19
T zu Beginn der main: Heap space ermitteln und hochsetzen Allgemeine Java-Themen 11
M Grösse von BorderLayout.CENTER ermitteln Allgemeine Java-Themen 8
G Ermitteln des aufrufenden Objekts Allgemeine Java-Themen 5
G Zeigeranzahl ermitteln Allgemeine Java-Themen 10
S E-Mail-Links: geklickten Link ermitteln Allgemeine Java-Themen 4
D Ahängige Bibliotheken (JARs) ermitteln Allgemeine Java-Themen 6
G restlichen freien Speicher ermitteln? Allgemeine Java-Themen 3
S Hintergrundname eines Buttons ermitteln Allgemeine Java-Themen 3
T Eigene PID ermitteln! Allgemeine Java-Themen 3
M Aus Anzahl Tagen Datum ermitteln Allgemeine Java-Themen 8
S Nicht aufgerufene Methoden in Eclipse ermitteln Allgemeine Java-Themen 18
G größten gemeinsamen Teiler ermitteln Allgemeine Java-Themen 11
V Image laden - URL über ClassLoader ermitteln Allgemeine Java-Themen 2
J zeit überscheidungen ermitteln Allgemeine Java-Themen 6
G PPI von Monitor ermitteln Allgemeine Java-Themen 9
Y Mit Java Betriebssystem ermitteln Allgemeine Java-Themen 6
J Kann eigene Klasse nicht ermitteln Allgemeine Java-Themen 4
O Inhalt vom JTextfield im DebugMode ermitteln? Allgemeine Java-Themen 2
A Jahr ermitteln Allgemeine Java-Themen 2
A Installierte Runtime ermitteln Allgemeine Java-Themen 3
M Nummer eine Componente in JScrollPane ermitteln Allgemeine Java-Themen 4
C Pixelanzahl eines Strings ermitteln Allgemeine Java-Themen 12
G genauen Typ einer generischen Klasse zur Laufzeit ermitteln Allgemeine Java-Themen 2
J Speicherverbrauch des Systems ermitteln Allgemeine Java-Themen 4
M Zeit eines rechners im netzwerk ermitteln Allgemeine Java-Themen 6
F Implementierte Interfaces ermitteln Allgemeine Java-Themen 6
M Bibliotheksname zur Laufzeit ermitteln (Classloader) Allgemeine Java-Themen 7
P Java installationsverzeichnis ermitteln, wie? Allgemeine Java-Themen 4
C RTF - Dateipfad ermitteln Allgemeine Java-Themen 4
U Arbeitsspeicher ermitteln? Allgemeine Java-Themen 18
W java.io.file Originalziel bei .lnk ermitteln? Allgemeine Java-Themen 5
T OutputStream - Prozente ermitteln Allgemeine Java-Themen 3
M Den Pfad ermitteln aus dem die .jar Datei gestartet wurde Allgemeine Java-Themen 2
I Anwendungspfad ermitteln Allgemeine Java-Themen 4
A Reflection - Variablen innerhalb einer Methode ermitteln Allgemeine Java-Themen 9
S Programmname ermitteln Allgemeine Java-Themen 6
W Beziehungen zwischen Usern ermitteln Allgemeine Java-Themen 2
vogella Version von Java ermitteln Allgemeine Java-Themen 2
F JRE Version ermitteln Allgemeine Java-Themen 2
G Dateigröße ermitteln Allgemeine Java-Themen 4
H Speicheverbrauch einer Datenstruktur ermitteln Allgemeine Java-Themen 29
C Generic Type ermitteln Allgemeine Java-Themen 3
R Menge an Bytes eines OutputStreams ermitteln. Allgemeine Java-Themen 6
R Fileendung ermitteln Allgemeine Java-Themen 2
G datentyp ermitteln Allgemeine Java-Themen 8
K Java Version ermitteln (über System.getProperty hinaus) Allgemeine Java-Themen 6

Ähnliche Java Themen


Oben