Allgemeine Frage zur Sicherheit von RMI
-
Ich habe in Java RMI in Erwägung gezogen und frage mich ob folgendes sicher ist:
class LoginService <- kann einfach via RMI vom Server geholt werden { public MyService getMyService (final Credentials cred); // liefert nur new MyServiceImpl() falls Credentials ok sind }
Muss ich in der MyServiceImpl jetzt ebenfalls jeder Methode die Credentials mitgeben (weil bspw. der Benutzer die MyServiceImpl irgendwoanders her erhalten hat und ihm das schon reichen würde die RMI-Aufrufe durchzuführen? Oder ist das irgendwie abgesichert?
MfG SideWinder
-
Gegenfrage, weisst du, dass RMI ein eigenes Sicherheitssystem hat?
-
Damit meinst du wohl die policy-Dateien, die bspw. das Nachladen von Klassen verbieten solange es nicht via policy-Datei explizit erlaubt ist?
Ich möchte gerne das sehr fein granulierte Rollen/Benutzer-Konzept der bestehenden Applikation verwenden und nur die Verbindung auf RMI umstellen.
Bzw. gibt es noch ein anderes Sicherheitssystem in RMI?
Dabei fällt mir jedoch ein: Ich hoffe doch, dass die Datenübertragung bei RMI auch verschlüsselt möglich ist? (Edit: Ja, offenbar via custom SocketFactory möglich).
MfG SideWinder
-
Ja, ok.
Ein bestehendes Sicherheitssystem das Rollen/Benutzer-Konzept-Unterstützt hab ich noch nicht gesehen.
-
Muss ich nun quasi selbst eine solche Session-ID einführen, oder sichert mir RMI das ab?
MfG SideWinder
-
Müsste mal selbst machen oder vorhandes benutzen. Ich glaub du solltest dir mal Spring Security http://static.springsource.org/spring-security/site/index.html ansehen.
-
Zeus schrieb:
Müsste mal selbst machen oder vorhandes benutzen. Ich glaub du solltest dir mal Spring Security http://static.springsource.org/spring-security/site/index.html ansehen.
Sieht für mich sehr nach einem Konzept für Web-Applikationen aus. Habe ich da etwas übersehen? Einen guten Link für Spring mit RMI bzw. nur für Methoden ganz ohne WebApp?
MfG SideWinder
-
Aus dem Framework hab ich für dein Anwendungsfall diese Komponenten im Blick:
Core - spring-security-core.jar
Contains core authentication and access-contol classes and interfaces, remoting support and basic provisioning APIs. Required by any application which uses Spring Security. Supports standalone applications, remote clients, method (service layer) security and JDBC user provisioning. Contains the top-level packages:
org.springframework.security.core
org.springframework.security.access
org.springframework.security.authentication
org.springframework.security.provisioning
org.springframework.security.remoting
ACL - spring-security-acl.jar
Specialized domain object ACL implementation. Used to apply security to specific domain object instances within your application. The top-level package is org.springframework.security.acls.