Hallo Forum!
Ich habe einen Server geschrieben, der als .jar mit "server" signiert wird:
Dazu auch das Interface, welche ich jetzt mal weg lasse.
Dann habe ich noch einen Client geschrieben, der den Server per RMI nutzt:
Und zu guter Letzt noch die Policy für den Server:
Das ganze läuft soweit auch problemlos zwischen zwei verschiedenen Rechnern.
Nun ist es ja so, das jeder beliebige Client auf die Methode vom Server zugreifen kann.
Meine Frage: Ist es möglich die Methode so abzusichern, dass nur Clients, die von mir signiert sind, diese benutzen dürfen? Hab schon ein wenig im Internet gesucht aber nichts passendes dazu gefunden. Müsste ich dazu selber einen SecurityManager schreiben oder gibts es da schon etwas fertiges?
Über Eure Hilfe wäre ich sehr dankbar!
Gruß Recco
Ich habe einen Server geschrieben, der als .jar mit "server" signiert wird:
Java:
public class ServerImpl extends UnicastRemoteObject implements Server{
public ServerImpl() throws RemoteException
{
System.getProperties().put("java.security.policy","java.policy");
System.setSecurityManager(new RMISecurityManager());
try {
LocateRegistry.createRegistry(8080);
Naming.rebind("rmi://localhost:8080/Server", this);
} catch (Exception e) {
e.printStackTrace();
}
}
public String getText()
{
return "Ich bin vom Server!";
}
}
Dazu auch das Interface, welche ich jetzt mal weg lasse.
Dann habe ich noch einen Client geschrieben, der den Server per RMI nutzt:
Java:
public class Client extends JFrame{
private Server obj = null;
public Client()
{
obj = (Server)Naming.lookup("rmi://192.168.62.21:8080/Server");
System.out.println(obj.getText());
}
public static void main(String[] args)
{
Client bla = new Client();
}
}
Und zu guter Letzt noch die Policy für den Server:
Java:
keystore "file:/C:/Pfad/.keystore";
grant signedBy "server"
{
// Allow the server to connect
permission java.net.SocketPermission "*:1024-", "accept, connect, resolve";
};
Das ganze läuft soweit auch problemlos zwischen zwei verschiedenen Rechnern.
Nun ist es ja so, das jeder beliebige Client auf die Methode vom Server zugreifen kann.
Meine Frage: Ist es möglich die Methode so abzusichern, dass nur Clients, die von mir signiert sind, diese benutzen dürfen? Hab schon ein wenig im Internet gesucht aber nichts passendes dazu gefunden. Müsste ich dazu selber einen SecurityManager schreiben oder gibts es da schon etwas fertiges?
Über Eure Hilfe wäre ich sehr dankbar!
Gruß Recco
Zuletzt bearbeitet: