kieselsteini
23-11-2006, 00:29
Hallo Java Freunde.
Ich möchte eine Client-Server Applikation mit RMI programmieren. Der User soll sich mit dem Client-Programm am Server einloggen können. Je nach Userlevel bekommt der User mehr oder weniger Rechte auf dem Server. Ich habe aus diesem Grund auf der Serverseite eine Login-Klasse programmiert, instanziert und freigegeben. Leider habe ich nun das Problem, dass für jeden Client der andockt die selbe Instanz der Klasse Login verwendet wird und ich so serverseitig ja keine Kontrolle darüber habe was der User darf oder nicht. Serverseitig verwende ich folgenden Code um die Klasse LoginImpl die das Interface Login implementiert anzumelden.
RemoteServer.setLog(System.out);
Registry registry = LocateRegistry.getRegistry();
LoginImpl login = new LoginImpl();
Login loginStub = (Login)UnicastRemoteObject.exportObject(login, 0);
registry.rebind("Login", loginStub);
System.out.println("Login angemeldet.");
Nun ist meine Frage. Kann ich vielleicht für jeden Client eine eigene Instanz der Klasse erzeugen?? Wie würdet ihr das programmieren? Ich habe schon in diversen Foren gesucht aber keine Lösung gefunden. Vielleicht bietet sich ja auch eine andere Programmiertechnik an....
Vielen Dank für Eure Hilfe!
Gruß, kieselsteini
Ich möchte eine Client-Server Applikation mit RMI programmieren. Der User soll sich mit dem Client-Programm am Server einloggen können. Je nach Userlevel bekommt der User mehr oder weniger Rechte auf dem Server. Ich habe aus diesem Grund auf der Serverseite eine Login-Klasse programmiert, instanziert und freigegeben. Leider habe ich nun das Problem, dass für jeden Client der andockt die selbe Instanz der Klasse Login verwendet wird und ich so serverseitig ja keine Kontrolle darüber habe was der User darf oder nicht. Serverseitig verwende ich folgenden Code um die Klasse LoginImpl die das Interface Login implementiert anzumelden.
RemoteServer.setLog(System.out);
Registry registry = LocateRegistry.getRegistry();
LoginImpl login = new LoginImpl();
Login loginStub = (Login)UnicastRemoteObject.exportObject(login, 0);
registry.rebind("Login", loginStub);
System.out.println("Login angemeldet.");
Nun ist meine Frage. Kann ich vielleicht für jeden Client eine eigene Instanz der Klasse erzeugen?? Wie würdet ihr das programmieren? Ich habe schon in diversen Foren gesucht aber keine Lösung gefunden. Vielleicht bietet sich ja auch eine andere Programmiertechnik an....
Vielen Dank für Eure Hilfe!
Gruß, kieselsteini