Я думал о том, чтобы аутентифицировать пользователей моей службы RMI следующим образом
interface RemoteService extends Remote { ... }
interface RemoteServiceProvider extends Remote { ... }
class RemoteServiceProviderImpl implements RemoteServiceProvider {
RemoteService getService(String authCode) throws RemoteException {
if (check(authCode)) return (RemoteService) UnicastRemoteObject.export(theRemoteService, 0);
else throw ...;
}
}
Однако, это, вероятно, не совсем безопасно.Я подозреваю, что когда реальный сервис export
ed, любой, кто угадает правильный порт, может получить его.
Как я могу сделать это правильно?